Parallax Image

Cutls Code Archives


SNZ 2016

TheDeskを作って思う今クライアントを作る意味

カテゴリ:Mastodon, TheDesk 投稿日:2018年4月15日

こんにちはCutls Pです。
このブログ的なもの自体放置していたのですが書いてみました。

Mastodonの進化は速いです。公開から5ヶ月経ちました。この間に、TheDeskのライセンスは緩くなり、新しいクライアントやActivityPubプラットフォームが誕生し、TwitterのUserStreamが廃止されました。
この記事の内容は一部古くなっています。
2018年9月17日 14時08分追記

何の話?

TheDeskというマストドンクライアントの話です。
ダウンロード
GitHub

なぜこの記事を書いたのか

iMastとかwhalebirdとか、マストドンクライアントを作る上でブログにみんな書いてるんで自分も書いてみようとおもった。
それだけ。

TheDesk Overview

ライセンスについて

GitHubにあるコードがすべてです。
オープンソースです。
ライセンスはTheDesk LICENSE

このライセンス、一部界隈で厳しいと話題になりました。



特に改変周りについて、厳しく定義しています。
TheDeskは本当にクソザココードでも動けばいいって感じなので、
TheDeskと同じElectronでできたwhalebirdTsuruはVueとかReactとかを使ってるのに比べて可読性が悪いです。
(ちなみにTheDeskはjQueryを多用しているだけの旧世界のクライアントです)
なので、本当はオープンソースにしたくなかったという気持ちがあります。
別に商業ベースにする気は全くない(というかオープンソースSNSのクライアントに広告や課金があるのがおかしい)のですが。
あまり再頒布されたくないという意味でこのライセンスができています。
バックドアとかそういうのは全く無いという証明くらいにはなってます。

特徴

機能は日本語ウィキ見て

フットワークの軽い開発

アップデート回数は他のクライアントに比べて極めて多いです。(2018年7月くらいまでは)リリースから3ヶ月で50回以上のアプデを発行しています。

安定しないので

このクライアント、バグが多数あります。(これが驚異のアプデ回数の理由です)
利用者に言われて気づくバグが非常に多いので、おかしいなと思ったらすぐ連絡して下さい。
連絡方法

  • [email protected]にリプライ
  • GitHubのIssuesに書く
  • #Desk でさりげなくトゥートする(kirishima.cloudと繋がっている場合のみ)
  • 文字列”TheDesk”または”Desk”を含めてトゥートする(引かれるほどこまめに検索ポータルやtootsearchでエゴサしてます)
インスタンスとつながる

クライアントはインスタンスありきです。なので、インスタンスの独自機能はクライアントができる範囲で実装します。
文字数拡張はもちろん
アスタルテのBBCodeや板橋丼の限定公開機能、アイマストドンや大阪丼、けもフレ鯖の独自ロケール(ホーム→なわばりなど)対応などを実装しています。
アスタルテとアイマストドンに関しては、そこにログインしていないと使えない機能、表示されない文字列があります。

この記事を見ている人の中に独自機能満載のアクティブなAdminがいらっしゃいましたら[email protected]までお知らせください。

バージョン名

TheDeskのコードネームの人名はすべてアイドルマスターシンデレラガールズのアイドルの下の名前です。
明確な理由は特にありませんが(好きだからです)、TheDeskの前身となるCroDesk時代から採用しています。
一覧はTheDesk LICENSEのところに一緒に書いてあります。

知名度

ない

どれくらい無いかと言うと
whalebirdの作者様の
最高のmastodonクライアントを探した結果,自作した
という記事で

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

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

と書かれるくらい。
この記事の数週間前からTheDeskのLinuxバージョンはありました…

知名度欲しい?

微妙

例えば自分の作ったvotedon.はある程度知名度がある。
理由としては主にマストドンつまみ食い日記に取り上げられたことが挙げられます。

仮にTheDeskをアクティブに宣伝してインストールしてくれる人が増えたとします。
使ってみたユーザーは、何らかのバグに気づくことでしょう。
すると前述の通りエアリプのようにバグレポが飛んで来ます。

死にます。

もしもっと宣伝したいならmstdn.jpかどこかで頑張ってトゥートします。

じゃあなんで作ったの

みんな高尚な理由をもってクライアント作りに励んでいます。
前述の最高のmastodonクライアントを探した結果,自作した
でも、rinsukiさんのiOS向けMastodonクライアント「iMast」を作った話でも、主な理由は、
既存のやつが使いにくい
です。

でも、TheDeskはそのようではありません。
Web UIは十分に優秀です。
自分はkirishima.cloudくらいしか行かないのでマルチアカウント需要もありません。

ただ、昔からクライアントを作ってたってだけです。

CroudiaというSNSが2012年くらいからありました。
そこのWenUIはあまり使い勝手の良いものとは言えず、また、サーバーが貧弱なのでアクティブユーザーが10人くらいでも落ちました。
そんなときにでもAPIだけは生きていました。
なので、APIで代替できるクライアントとして、またマルチカラム対応ブラウザクライアントとして、2016年5月にCroudiaDeckが生まれました。

CroudiaDeckは死んだときの避難所程度のレベルで特に使われる事もなく、自分も他のクライアントから普通にささやいていました(注:「ささやく」は投稿の意。「トゥート」や「ツイート」と同義。英語ではwhisperと表現されていた)。
年が明けて2017年1月、Electronの存在を知ったCutls Pはデスクトップクライアントを作成しようと試みて、CroudiaDeskを作成しリリースしました。
CroDeskはシングルカラムで、UIは今のTheDeskとほぼ同じですが、APIサーバーが信用できないので全てのリクエストを自分のサーバーを経由して投げていました。
こんどのクライアントは一部ユーザーに常用されるレベルまで成長し、CroudiaDeck for mobileも作成され、穏やかなCroudiaライフが営まれるようになりました。

しかし、2017年12月末、CroudiaDeskをriot.jsで作り直そうとしているさなか、突然のCroudia閉鎖の発表。
渾身のクライアント陣も全てただの文字列になってしまいます。

2017年4月のマストドン流行は当然Croudiaにも影響を及ぼし、Croudiaの管理者(ミッシー)も「マストドンに負けないようにがんばります」という旨のささやきをしていました。

その頃、Croudiaユーザーの一人であった霧島ひなた氏がマストドンインスタンスを立ち上げました。
最後の夜(2017年12月30日。私の誕生日です。)、今までに無い流速で流れてくるPublic TL(注:マストドンのローカルに相当)は奇跡的にUIも死なぬまま管理人によってConoHa VPSの仮想サーバーがTerminateされました。

そしてその後すぐ、霧島ひなた氏のインスタンス、アスタルテ(注:当時はまだ仮称)はさながらCroudiaとなり、いつものアイコンが並ぶようになりました。

今も昔もPCクライアントは不毛だったので、CroDeskユーザーもWebUIを使ってトゥートしていました。
そして、
アイコンは一緒なのにUIが違うのはおかしい
という理由で、クライアント作成をはじめました。まだマストドンをはじめて1週間しか経っていません。
UIセットは全て同じで1月上旬より、旧CroDeskユーザーのみのクローズドβテストを行い、2018年1月13日、ある程度実用になったところでTheDeskをリリースしました。
バージョンもCroDeskの続きでした。

名称の由来

〇〇Deskにするのはほぼ確定で、どんなのがいいかと悩んでいました(MastDeskはしっくりこない)。
TheDeskは、その中で思い浮かばず思考停止した結果です。

今クライアントを作る意味


1年経った今、クライアントを作ってメジャーになることはできないです。
当然、金にもならないです。
既存のやつが使いにくい
プログラミングの勉強がしたい
この2つの理由で作る場合がほとんどだと思います。

ただ、思い通りにマストドンをしたいなら、おひとりさまインスタンスを建てるより、クライアント側をいじったほうができることは多いです。
だから、あまり高尚なことを考えずにただ自分がいいと思ったクライアントを作るってだけで動機として十分だと思います。

今後のクライアント界の展望

一番注目すべきは永遠のライバル、Twitterです。
TwitterはUserStream API(タイムラインをリアルタイムで取得するやつ)を廃止するようです。
これにより、高機能なTwitterクライアントは存在できなくなります。
おそらくTwitter Webを使ってもらって広告で儲けたいのでしょう。
すると優秀なTwitterクライアントがマストドン用に作り直されることが考えられます。

一ユーザーとしては楽しみですが、一開発者としては少し怖いです。

まだまだ若いクライアントですが、これからもTheDeskのご愛顧、よろしくお願いします。