最高のmastodonクライアントを探した結果,自作した

デスクトップ向けのmastodonクライアント,whalebirdを作りました. Electron製なのでLinuxでもMacでもWindowsでも動きます(たぶん).

f:id:h3poteto:20180323234814p:plain

とりあえず使いたい人へ

github.com

まだできたてホヤホヤなので,AppStoreへの登録や,debrpmパッケージの配布等はありません.githubのreleasesページから,自分のプラットフォームに合いそうなものをダウンロードしてきて解凍してください.

また,現状Mac版とLinux版しかありません. Windows版は,普段Windowsを使わなすぎて検証できていないので,載せていません.が,次のバージョンあたりからちゃんと検証して載せようと思います.

2018-03-26 16:50 追記: 先ほどバージョン0.2.0をリリースしました.このリリースよりWindows版を配布しております.どうぞご利用ください.

AppStore,debrpmも配布していく予定なのでお待ちください.

あと,価格についてですが,全プラットフォーム版を無料にするつもりです.これについては後述.

なんで作ったの?

もともと俺はiOS用のTwitterクライアントを作っていたんだけど,userstreamが廃止されるじゃない?

service.sakuraweb.com

そういうわけなので,この先Twitterクライアントを運用していくのは無理そうな気がしている. 俺のクライアントは,iOSにRemote Notificationを送るためにサーバを用意してあったので,その部分のコストは気にしないんだけど,userstreamは多用していたのでなくなるとキツイ. AccountActivityAPIはユーザ数の上限があるし,ビジネスプランは金額不明だし……ちょっと続けていく自信がない.

そしたらもうTwitterするのがあんまり楽しくないなーと思いはじめ. そういえばmastodonにアカウントを作ったきり放置していたし,こっちのほうが楽しそうなので,最近mastodonをやり始めた.

だけど,デスクトップで使えるいい感じのクライアントがなかなかない. iOS版やAndroid版は結構いいのがあるんだけど,デスクトップ版があまりにも少ない!

しかも,俺は家ではLinuxばっかり使っているので,Linuxで動くクライアントが欲しいんだけど,そんなものほとんどない.

web basedなクライアントならあるんだけど,ちょっと違うんだよなぁ. Electronもwebベースなのであまり人のことは言えないのだが,とりあえず使い勝手は全然悪かった.

というわけでElectronでmastodonクライアントを自作することにした

やる気

一通り俺がLinux上で普段遣いできるレベルまではもっていくつもり.

なんか以前「最強のTwitterクライアント戦争」ってあったじゃない?

r7kamura.hatenablog.com

あれはなかなか良さそうで,傍から見ていて楽しそうだったんだけど,ああいうノリでmastodonももっといろんなクライアントが出てきたらいいと思う. そもそも,インスタンスからしていろんなインスタンスがあるわけだし,クライアントももっと盛り上がっていきたい. っていうか最終的にやっぱりブラウザで使うよりデスクトップアプリとしてほしいんだよね(ただの趣味です).

最強のTwitterクライアントについては,成果物としてTweet○anとかを買ったのだが,それ以来一切バージョンアップされず,開発も続いていないようで. 「質の良いソフトウェアを維持するためには金は大事」っていうのには納得して「まぁそうだろう」と思って買ったのだが,金を払ったからといって維持されるわけではなかった.

俺はそんな裏切り方はしたくないし,クライアントを作るだけなら俺の方で負担する金額はほとんどないに等しいし,そういうわけですべて無料にしていくつもり(いまのところ).

特徴とかできることとか

  • Slackっぽいインターフェース
  • デスクトップ通知
  • ホーム,ローカル,連合のストリーミング更新
  • Slackっぽいキーボードショートカット
  • 複数アカウント

今のところ,

  • ホームタイムライン
  • 通知
  • ふぁぼ
  • ローカル
  • 連合

が見られるようになっている. リストについては見られるようにしていくつもりではあるが,どういう見せ方にするかは悩み中.

mastodonは性質上,絶対に複数アカウントになるだろうなーと思っていたので,複数アカウントを切り替えられるようにしてある.SlackっぽくCmdOrCtrl + 数字で切り替えられるぞ.

ただし,複数インスタンスのアカウント管理はできるようになっているが,同一インスタンス複数アカウントを作成した場合,上手く動く気がしない.これはどうしようかなぁー.

トゥートはCmdOrCtrl + nで.

CmdOrCtrl + kで移動もできる.

ただ,できないこともいっぱいあるので,以下にやりたいことを書いていく.

今後の予定と悩みどころ

近々実装予定

  • Windows版のリリース
  • TL内の画像を表示したい
  • ローカル,連合の初期タイムラインをロードしておきたい
  • ウィンドウをドラッグできるようにしたい
  • ウィンドウサイズを記憶させたい

2018-03-26 16:50 追記: 上記機能はバージョン0.2.0で実装されました

  • AppStoreでの配布
  • deb, rpmの配布
  • トゥートに画像添付をできるように
  • ストリーミングしていない場所はPull to refreshさせたい
  • ユーザプロフィール画面の作成
  • フォロー,フォロー解除機能
  • 自信のプロフィール閲覧
  • ユーザのトゥート一欄

結構できてないこと多い.

やる気次第

  • プロフィール編集
  • トゥート詳細ページ
  • トゥート詳細ページでリプライ一欄の表示
  • テーマカラーの変更
  • 表示形式のカスタマイズ(時間を相対的な表示にするか絶対時刻にするか,名前にインスタンス名を含めるか等)

絶賛悩み中

マルチカラムについてはかなり悩んでいて,twitterはマルチカラム型のクライアントを愛用している.ただ,複数アカウント切り替えとマルチカラムの相性が悪い気がしていて,今のところスマートなクライアントにはなかなか出会ったことがない. Slackがマルチカラム型ではないので,UIを結構変更することになりそうな気もしている.

最後に

まだまだ最高のmastodonクライアントには遠い. ただこれ作るのは結構楽しいので,俺にとっての最高を目指していきたいとは思っている.

どうせ実力あるエンジニアの皆様は俺のクライアントなんか使わずに自分のvimとかでmastodonできるようにしていると思うんだけど,無料なので試しにでも使ってみてください.

それとバグ等を見つけた場合は,お手数ですがissueにしていただけると治ったりすることもあると思います.

github.com