Twitterクライアントの開発を辞める

3年くらい運用してきたTwitterクライアントがあります.

2018年6月20日に予定されているTwitterAPIのUserStream廃止に伴い,このクライアントの開発を辞めます.

理由は言うまでもなくUserStreamです. 今後はMastodonクライアントとして生まれ変わったので,そちらをよろしくお願いします.

h3poteto.hatenablog.com

今後の予定

2018-04-07

終了告知アラートを載せたアプリをAppStoreに公開します(レビュー次第なので公開の日程については前後する可能性があります). また,このタイミングで終了する旨をAppStoreの説明に記述します.

2018-06-20

AppStoreからWhalebirdを削除.予定通りにいけば,この日にTwitterAPIからUserStreamが削除されるため,UserStreamに依存した処理が全て動かなくなります. 当アプリでの影響範囲は以下のとおりです.

  1. アプリ内でのUserStream利用が不可能になる
  2. プッシュ通知が一切届かなくなる

1に関してはどう考えても無理ですね.

2に関して言うと,現状WhalebirdはRailsのサーバをバックエンドに据えて,アプリからはそこにOAuth認証かけて,RailsサーバにAPIリクエストを送っています.そして,RailsサーバはAPIリクエストをリレーしてTwitterAPI を呼んでいます.

で,そのRailsサーバでプッシュ通知用に全員分のUserStreamをwatchさせておき,通知があったらAPNsに通知を送る仕組みを作っています. そのため,UserStreamが死ぬと,この通知を監視する仕組みがすべて使えなくなります.

公開を終了しても,しばらくはそのままRailsサーバを生かしておくので,既にインストール済みの人は上記機能以外であれば今までどおり使える状態を維持します.

2018-07-20

Railsサーバを停止し,全ての機能が利用できなくなります.

理由

「なにも削除しなくとも,通知が使えなくても残しておけばいいのでは?」とも思って,だいぶ悩んだのですが…….

通知なくなったら自分で自分のアプリを使わなくなると思う

Twitterクライアントというのは,できれば1つで全てを完結してほしい. 通知はAというクライアントで受けて,リストを見るのはBで,つぶやきはCでやる,みたいな器用な使い方はしないわけです.デスクトップならまだしもiOSで. 通知がなくなった時点で,別のアプリケーションで通知を受けるように設定するだろうから,そうなったらもうWhalebirdは使わないわけです(俺が).

で,俺が使わないクライアントを俺が開発・メンテしていくのは無理です

コストも多少なりともかかっているわけでして.

コストについて

iOS版Whalebirdは有料アプリでした. これには理由があります.

  • TwitterのOAuth上限数が制定されたため
  • 人数増加に伴ってサーバ費用が増えることが見込まれたため

このクライアントを作り始めたタイミングで,TwitterサードパーティアプリケーションがOAuth認証できるユーザの上限を10万に制限しました. このため当時は,「Twitterクライアントはビジネスとしてはもう成立しない」と言われました. The Worldなんかは,この問題を,サーバを複数用意し(ClientIDも複数用意)ユーザにどのサーバでOAuthするかを選択させることで,回避してましたね.

まだ,前述のような構成のため,プッシュ通知を必要とするユーザが増えるほど,UserStreamの起動数を増やす必要があります.これは普通のウェブサービスよりよっぽどメモリを食いそうな予感がしたため,「あんまり流行ると困るな」という感覚はありました.

そういうわけで$2程度の有料アプリとして配布してきました.

実際3年運用していて,リソース上限に達するようなこともなく,それほど流行ることもなかったため,特にコストが増えるようなことはありませんでした. が,普通のウェブサービスよりは多少カネをかけました.

EC2 × 2台 + ElastiCache(Redis) × 1台 + RDS(他サービスと共用)

それでもt2.microとかを使っているんで,$40/monthくらいですかね.

使ってくれた方には感謝

開発終了を決めたタイミングでアプリを無料化しました(その時点から売上が立つのはどうも申し訳なかったので).

そのおかげでかなりダウンロードされたようです. 最終的にTwitterアカウント連携してくれた方が187人(俺のアカウントやテスト用のアカウントも含む). UserStream起動が77アカウント分です.

有料時代はだいたいUserStream常時40アカウント分くらい起動していたので,結構増えましたね.

2018年3月31日現在で,ユニット数499,売上$131でした. 運用にかかってる費用を考えると全然赤字ですが,もともとそのつもりだったので.

今までご利用いただきありがとうございました. みなさんのTwitter生活が幸せであったことを祈ります.