背景
- KakaoTalkは、大韓民国に住む人なら99%以上が使っているメッセンジャー
- しかし公式クライアントはWindowsとmacOSのみをサポートしており、WebやLinuxはまったくサポートされていない(AndroidやiOSは除く)
- Wineを使って無理やり動かすことはできるが、エラーで起動できずに終了したり、深刻なバグのため実用に耐えなかったりする(チャットルームを読み込めず、大きなファイルや画像をダウンロードできない)
- そのため、Linux環境でも問題なく動作するクライアントを作ることにした
開発
- 当初はReact.jsとnw.jsを使っていた。しかしコードが過度に肥大化し、管理が難しくなってしまった(特にReactの状態管理と、nw.jsのJavaScriptコンテキストという概念は問題を引き起こしやすかった)
- この問題を解決するため、最近SolidJSとTauriへの書き直しを進めた
- 現在の状態では、ログインやチャット通知などの簡単な動作が可能
これから...
- WindowsやmacOSのKakaoTalkクライアントの動作を、可能であればすべて同じように動作するよう実装する予定
- ただし、実装しなければならない機能が非常に多く、非公開プロトコルに関する研究も数多く必要
- 貢献やフィードバックをいただけると本当にありがたいです!
17件のコメント
こういう試みは本当にいいですね。カカオがなぜ今までこういうものを自ら作らなかったのか不思議です,,,, Windows Phone向けのカカオトークアプリの担当開発者が1人だったという話を見ると、非主流プラットフォーム(Linuxが非主流というわけではありませんが..)には本当に無関心ですね
Kakaotalk Matrix Bridge
Kakaoが前向きに反応してくれることを期待しています……。こうした動きが、Kakaoがよりオープンな環境を整えるうえで良い刺激剤になればと思います。(APIを公開するとか……)
Linuxユーザーです。ただ応援します。
Kakaoがこうした努力にまで手を出す会社ではないことを願います..
私もメインでLinuxを使っているので、さっそくインストールして使ってみます〜
わあ……Linuxユーザーとしてはとてもありがたい情報ですね……! 家に帰ったら一度使ってみます。プロトコルについてはリバースエンジニアリングを行ったのではないかと思うのですが、オープンソースとして公開されたときに問題になる余地がないのか少し心配ですね。
KiwiTalkの開発方針自体は良いと思います。ただ、このような非公式クライアントは明確にカカオの運営ポリシー違反です。これに対する対策は用意されているのでしょうか?
カカオ側に否定的な影響を与えないよう、できる限りオリジナルクライアントの動作を模倣しようとしています。(バグ的な動作であっても)
ただし、KiwiTalk はカカオ側が制作または認可したクライアントではないため、必ずユーザーご自身の判断と責任のもとでご利用ください。
pidginプロトコルのプラグインを開発する予定はありませんか?
とても望ましい開発の方向性ですね
未承認のロコプロトコルを使用することによる不利益はないのでしょうか?
KiwiTalkがオリジナルクライアントと異なる動作をした場合、利用者のアカウントに不利益が生じる可能性があるため、
可能な限りオリジナルクライアントの動作と同一になるよう実装することを目標としています。ご指摘ありがとうございます!
以前は自分でビルドしないといけなくて試しにくかったのですが、
今はビルド済みのバージョンも配布されているんですね。
気になっていたので、一度使ってみようと思います
この分野には詳しくないので、ばかげた質問かもしれませんが……もしかして、Webブラウザー拡張機能の形で使うことは可能でしょうか? Windows や Mac にはネイティブクライアントがありますが、私としては Windows や Mac でも Webブラウザーで使えるならとても良いと思います。あと、Chromebook でも非常に便利に使えそうです。(もちろん Chromebook でもネイティブの Linux プログラムは実行できますが、Webベースならもっと手軽に使えそうです。)
現時点では、Linux環境での正常な利用のみを目標としています。ありがとうございます!
良さそうですね! ただ、法的な問題はないのでしょうか? つまり、もしかするとカカオトークの利用規約に関連する内容があって、プロジェクトのコントリビューターや単なる利用者のアカウントが停止されても権利を主張できなくなる、といったことはないのでしょうか……
プロジェクトの貢献者だからといって、特別に停止を回避できるわけではないと理解していますが、KiwiTalk で元のクライアントと異なる動作が発生した場合、アカウントが停止される可能性があります。
したがって、元のクライアントのバグ的な挙動までも可能な限り同一にすることを目標としています。
(Linux デバイスで正常に利用できることが目標なので)