作品 · 01
TiebaLite
軽量なサードパーティ製贴吧(Tieba)Android クライアント —— オープンソース TiebaLite をベースにした、広告のないクリーンなコミュニティ閲覧体験。Kotlin + Jetpack Compose によるモダン Android エンジニアリング。
リポジトリを見る › Codeberg ›なぜ作ったか
贴吧(Tieba)は私が最も長く使っているコミュニティですが、公式クライアントは年々重くなる一方です。起動時広告、フィードへの差し込み、尽きることのない「おすすめ」。静かにスレッドを読みたいだけなのに、まず 5 つの関門をくぐり抜けなければなりません。
アップストリームのオープンソースプロジェクト TiebaLite は「クリーンな閲覧」が可能なことを証明してくれました。しかしメンテナンスのリズムが不安定で、重要なインターフェースが壊れたまま長く放置されていました。私の動機はシンプルです:fork して、生き返らせて、自分の使い方に合わせて磨く。
難しいところ
- API との戦い:サードパーティクライアントは「公式 API がいつ変わってもおかしくない」環境にあります。署名アルゴリズムや認証フローは定期的に失效します。そこで、ネットワーク層をすべて独立モジュールに集約し、API が壊れたときはそのモジュールだけを直せば UI 層に手を入れずに済むようにしました。
- Compose 移植の境界線:アップストリームの一部ページはまだ旧 View 体系で、全部書き直すのは非現実的。最終的に「新ページは Compose、旧ページは最小限の保守」という双轨策略を取り、どんなときも動くビルドを担保しています。
現状
- 広告のないクリーンな閲覧体験。ログイン、お気に入り、スレッド閲覧など核心機能を維持
- ネットワーク層のモジュール化により、API 修正コストは「プロジェクト全体の調査」から「単一モジュールの交換」へ
- アップストリームを追いかけつつ、独自の派生ブランチを並行してメンテナンス
学んだこと
「敵対的な」プロジェクトの保守で最も大切なのは、新技術を追うことではなく、変わりやすい部分を囲い込むこと。UI はゆっくり進化してよいが、ネットワーク層はいつ殴られてもいい準備をしていなければならない。