MVVMデザインパターン、LiveDataによるリアクティブプログラミング、リポジトリパターン、Room Persistence Libraryを使用して構築されたアンドロイド用のGitHubクライアント。
特徴:ページネーション、検索結果のキャッシング、ブックマークを追加するオプション。
コードは機能別にパッケージ化されています。データパッケージには、ローカルデータベースモデルクラス、Webサービス、および単一の真実のソースとして使用されるリポジトリが含まれています。
UIパッケージには、アプリの各画面のVIEW(アクティビティ)とVIEW MODEL(AndroidViewModel)コードが含まれています。 VIEW MODELはデータパッケージのVIEWクラスまたはMODELクラスへの参照を保持しないので、コードはモジュール化されており、画面の変更や機能の追加が容易です。
LiveDataは、アプリケーションレイヤ間の通信に使用されます。 MODELレイヤの変更は、LiveDataを介してVIEW MODELに伝播され、次にVIEWレイヤに伝播されます。
Utilsクラスには、デフォルトの検索語句、ページごとの結果、および新しいもので更新しようとする前に、結果をローカルキャッシュに保存する期間を設定できるConfiguretionインターフェイスがあります。
ソースコードはhttps://github.com/giantturtle/RepoExplorerMVVMで確認してください。