>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Kotlin

Jetpack Composeで柔軟なメディアアプリ構築を支援する仕組み:EasyBangumi事例

好きなシリーズやアニメを見たいのに、5つの異なるサイトを行き来したり、終わりないバナーを閉じたり、壊れたプレイヤーと戦わなければならない、そんな経験はありませんか?オープンソースコミュニティの開発者たちは Often、根本的な解決策として自分たちのアグリゲーターを作成します。

EasyBangumiプロジェクト(作者たちは「Clean Anime Viewing」と呼んでいます)は、単なるプレイヤーに留まりません。モダンな.techスタックに基づいて構築されたフル機能のAndroidクライアントで、異なるコンテンツソースの混沌を1つの整理されたライブラリに変換します。興味深いことに、このプロジェクトは当初、Jetpack Composeのテストとオーディオ・ビデオ技術に取り組むための訓練場として作成されました。

EasyBangumi

このオールインワンアプリの内部

EasyBangumiはモジュラー原則に基づいて動作します。アプリ自体は、プレイヤーとカタログ化のロジックを備えた空のシェルです。すべてのコンテンツはプラグインシステムを通じて流入します。これにより、作者たちは著作権問題を回避し、ユーザーに完全な自由を与えます。

このアプリにはすでに適切な機能リストが実装されています:

  • ホーム画面でのフル検索とレコメンデーション。
  • 新エピソードを追跡するための「お気に入り」システム。
  • テーマ切り替え、再生速度制御、視聴履歴を備えた高度なプレイヤー。
  • TVへのストリーミング用のCastサポート。
  • オフライン視聴用のエピソードダウンロード。
  • その場でGIFとしてビデオクリップを録画 — モバイルプレイヤーではめったに見られない楽しい機能。

技術スタックとアーキテクチャ

ソースコードを見ると、作者たちが明確にKotlinに舵を切っていることがすぐにわかります。このプロジェクトは、レガシーなXMLビューのない.modern Android開発がどのようなものかを示す素晴らしい例です。

中核となるJetpack Compose

インターフェース全体がComposeで書かれています。これにより、動的テーマと非常にスムーズなトランジションの実装が可能になりました。宣言型UIに移行したばかり라면、EasyBangumiのコードは достаточно大きなアプリケーションでのナビゲーションと状態管理がどのように organizedされているかを示しています。

プラグインシステム

開発者にとって最も価値のある部分は、「ソース」メカニズムです。アプリには組み込みのプラグインマーケットプレイスがあります。これは動的ロード 통해実装されており、アプリの更新なしに新しいソースサイトを追加できます。

| | | | |:---------------------------------:|:----------------------------------:|:----------------------------------:| | | | |

これを学ぶべき理由

アニメファンでなくても、EasyBangumiはアーキテクチャのケーススタディとして興味深いです。チュートリアルプロジェクトは often、シンプルなTodoリストや天気クライアントに留まります。ここでは、重いコンテンツとの実際の作業が見られます:

  1. データキャッシュ:インターフェースを遅くすることなく履歴とビデオ進行状況を保存する方法。
  2. ビデオ処理:カスタムUIオーバーレイを持つExoPlayer(またはMedia3)に基づくカスタムプレイヤーの実装。
  3. ネットワーク処理:サードパーティリソースの解析と制限の回避。

ちなみに、開発者たちはPC版の.launchとクラウドデータ同期を計画しています。プロジェクトがGitHubでほぼ4,000個の星を集めていることを考えると、コミュニティは активно расширять авторов。

誰がこのプロジェクトから恩恵を受けるか

第一に — 中級Android開発者です。GoogleのチュートリアルからComposeを学ぶのは一回事ですがtonsの画面、プラグイン、複雑なプレイヤーを備えた実際のアプリがそれで構築されているのを見るのは、全く異なる経験です。

第二に — 自分の好みに合わせたメディアセンターを構築したい人。コードはApache 2.0ライセンスの下でオープンしているため、forkingや自分のニーズへの適応を禁止する人はいません(たとえば、映画や教育课程的オンラインシネマ用)。

1つの注意点:READMEとインターフェースの一部は Originally中国語で書かれていますが、コード構造は透明で、パーサーを書いたことがある人ならプラグインロジックは明確です。

実際のタスクで.modern KotlinがComposeとどのように連携するかを確認したい場合は、EasyBangumiリポジトリを確認してください。

関連プロジェクト