Googleは、“堅牢でテスト性とメンテナンス性に優れたアプリ”を設計するためのライブラリのコレクションであるAndroid Architecture Components 1.0を公開した。現時点のコンポーネントはLiftecycle、LiveData、ViewModel、Roomだが、その他も準備中だ。
Googleは“データ永続化、コンポーネントのライフサイクル管理、モジュラーアプリケーションの記述、一般的なエラーへの対策、ボイラプレートコードの削減”を支援するために、Architecture Componentsを開発した。主なコンポーネントは次のものだ。
Lifecycleは、ライフサイクルを認識し、自らの状態に基づいた動作の調整が可能なアクティビティとフラグメントを作成するためのアーキテクチャコンポーネントである。コンポーネントは初期化(initialized)、生成(created)、開始(started)、再開(resumed)、破棄(desgtroyed)など、複数の状態(state)を経ることができる。各状態イベントが起動されると、さまざまなオペレーションを行なうためにライフサイクルメソッドがコールされる。Lifecycleはコンポーネントの状態に関する情報を保持し、状態の変化を処理することで、これらのタスクからコンポーネントを解放する。よりシンプルなコードを記述して、理解しやすいものにすることが目的だ。
LiveDataは、オブザーバブルなデータを保持するクラスである。LiveDataはコンポーネントのライフサイクルを認識して、それらがあアクティブ状態であればアップデートを提供する。LiveDataはリアクティブなUI構築に推奨されている。
ViewModelは、アクティビティやフラグメントの情報を保持管理するために使用するアーキテクチャコンポーネントで、画面の回転などのさまざまなユーザアクションに対して、UIコンポーネントが再生成される時のデータを保存する。ViewModelがデータ関連のコードを保持することにより、UIコントローラの簡略化を実現する。
Roomは、データをSQLLiteに保存するためのオブジェクトマッピングレイヤで、誤っている可能性のあるクエリをコンパイル時に検証する機能を備える。データをローカルにキャッシュ可能であることから、Googleでは、直接SQLiteにアクセスせず、Roomを使用するように推奨している。RoomはLiveDataと統合されており、コンポーネントのライフサイクルの一部となっている。
現在はアルファ版であるPagedListが、新たなコンポーネントとして近く利用可能になる。PageListは、大規模なデータベースクエリの完了を待たずに、徐々にデータをロードする場合に有用である。他のアーキテクチャコンポーネントの開発も進められており、今後数週間の内に発表される予定だ。
Googleは、これらのコンポーネントの使用方法を説明したアーキテクチャガイドラインを公開している。同社ではライブラリが“製品対応”であるとして、Androidアプリケーション開発での利用を推奨している。
この記事を評価
このコンテンツのトピックは Architecture です。
関連記事:
関連記事
関連スポンサーコンテンツ
InfoQ ニュースレター
毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。 サンプルを見る
We protect your privacy.