目次
- 1この講座について
- 2イントロダクション
- 2..1Lesson 7に含まれている記事
- 3前提知識
- 4この講座で学べること
- 5概要
- 6アプリの概観
- 7タスク:開発の開始とここまでの確認
- 7.1notifyDataSetChanged()メソッドは非効率的
- 7.2DiffUtilは効率的で難しい作業をこなしてくれる
- 8タスク:DiffUtilを使ってリストをリフレッシュする
- 8.1ステップ1:SleepNightDiffCallbackを実装する
- 9タスク:ListAdapterを使ってリストを管理する
- 9.1ステップ1:アダプターにListAdapterを継承させる
- 9.2ステップ2:リストを更新し続けるためにsubmitList()を使う
- 10タスク:RecyclerViewにDataBindingを使う
- 10.1ステップ1:レイアウトファイルにデータバインディングを追加する
- 10.2ステップ2:データバインディングを使ってアイテムレイアウトをインフレートする
- 10.3ステップ3:findViewById()を置き換える
- 11タスク:バインディングアダプターを作成する
- 11.1ステップ1:バインディングアダプターを作成する
- 11.2ステップ2:SleepNightAdapterを更新する
- 11.3ステップ3:バインディングをXMLレイアウトに追加する
- 12完成済みプロジェクト
- 13まとめ
この講座について
この記事はAndroid Kotlin基礎講座の一部です。これ以外のAndroid Kotlin基礎講座(全10回)も一緒に受講することでAndroidアプリの開発手法、およびKotlinの基礎知識を学ぶことができます。全講座はAndroid Kotlin基礎講座にリスト化されていますので参考にしてください。
またこの記事ではGoogle Developers Training teamによってGoogle Codelabsに公開されているAndroid Kotlin Fundamentals courseを日本語に翻訳しつつ、筆者の考察も交えながら発信しています。オリジナルのサイト(英文)はこちら。
イントロダクション
前回の記事では、RecyclerViewを用いて睡眠データを表示するようにTrackMySleepQualityアプリを更新しました。前回のRecyclerViewを作る際に学んだ技術はデータが大きすぎないシンプルなリストを表示するRecyclerViewを作成する分には十分であると言えます。しかしながら、大きいリストを扱う際や、コードを管理しやすくするために簡素化したり、より複雑なリストや格子状データ用に拡張するためには、より効率的なRecyclerViewを作る手法も存在します。
この記事では、前回の記事から引き続きTrackMySleepQualityアプリをビルドしていきます。睡眠データのリストをより効率的に更新する方法、RecyclerViewにデータバインディングを使う方法などを学習します。(前回の記事からのアプリを持っていない方は、この記事用のスターターコードをダウンロードできます)
Lesson 7に含まれている記事
- 7.1 RecyclerViewの基礎
- 7.2 DiffUtilとRecycleViewのデータバインディング
- 7.3 RecyclerViewによるグリッドレイアウト
- 7.4 RecyclerViewのタップ処理
- 7.5 RecyclerViewのヘッダー
前提知識
- アクティビティ、フラグメント、ビューを使った基本的なUIの作り方
- フラグメント間のナビゲートおよび、safeArgsを使ってフラグメント間でデータを渡す方法
- ビューモデル、ビューモデルファクトリー、transformatison、LiveData、オブザーバーについての基礎知識
- Roomデータベースの作り方、データアクセスオブジェクト(DAO)の作り方、実体の定義のしかた
- データベースの操作、その他のロングランニングタスク用のコルーチンの使い方
- 基本的なRecyclerViewおよびAdapter、ViewHolder、アイテムレイアウトの実装方法
この講座で学べること
- DiffUtilを用いたRecyclerViewによって表示されているリストの効率的な更新方法
- RecyclerViewにデータバインディングを使う方法
- データを変換するためのバインディングアダプターの使い方
概要
- 前回の記事から引き続きTrackMySleepQualityアプリの作成
- DiffUtilを使ってリストを効率的に更新するためにSleepNightAdapterを更新する
- RecyclerView用のデータバインディングの実装、データ変換用にバインディングアダプターを利用
コメント