Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Title : Let's Preview! Jetpack Compose

mochico
October 20, 2021

Title : Let's Preview! Jetpack Compose

2021/10/20 DroidKaigi2021
https://droidkaigi.jp/2021/timetable?day=2

Jetpack ComposeによるUIをAndroid Studioに組み込まれたPreview機能を使ってスムーズにクオリティ高く構築するプラクティスを紹介します。

Summary :
・Jetpack Composeを使ったUI構築の特徴
・Compose Previewの基本的な使い方
・Previewでデプロイなしに多端末対応をスムーズにする
・複雑なデータ・画面に対応したプレビューのプラクティス
・Previewを使いこなして堅牢なUIを構築する - テストとUI構築

mochico

October 20, 2021
Tweet

More Decks by mochico

Other Decks in Technology

Transcript

  1. Jetpack Composeを使ったUI構築の特徴 • 宣⾔的UIツールキット • Functionで定義する • すべてKotlinで記述する • 状態が変わるごとにすべてのUIの更新を⾏

    う • 変更点のみを再描画する再コンポーズに描 画制御を任せてどのようなデータに応じて どのような表⽰をするのかのみ宣⾔する
  2. 様々な状態に対応する • Locale • API Level • Device model •

    画⾯サイズ • フォントサイズ • UIモード • ⾊覚異常
  3. フェイクを使ったテスト戦略 • プレビューだけでなくUnit Testでも再利⽤できる • Unit Testで実際に動作するオブジェクトを使ってテストできる • インターフェースの呼び出し回数の検証や関数単位での戻り値の偽装・確 認にはモックを使⽤する

    • フェイクを使うことで実際の動作に近い形でプレビューできるが、より堅 牢な開発のためにはピクセルレベルでテストできる画像⽐較や、バックエ ンドへのアクセスを含めたE2Eも併⽤するとよい
  4. ex. DroidKaigi2021アプリのViewModelとフェイク • CompositionLocalProvider を使って限定され たPreview⽤のComposableのスコープで ViewModelのproviderを上書きしフェイクの ViewModelを提供する • Unit

    testでフェイクの実装と本番の実装をパラ メータとして同時にテストし、フェイクの信頼 性を⾼める • → 信頼性の⾼いフェイクを実装時からプレ ビューで利⽤することで整合性をテストしなが ら開発できる https://github.com/DroidKaigi/conference-app-2021#how-to-make-fakes-viewmodel-reliable
  5. References • Jetpack Compose | Android Developers https://developer.android.com/ jetpack/compose •

    Mocks Aren't Stubs https://martinfowler.com/articles/mocksArentStubs.html • GitHub - DroidKaigi/conference-app-2021: The Official App for DroidKaigi 2021 https://github.com/DroidKaigi/conference-app-2021 • Compose tooling | Jetpack Compose | Android Developers https:// developer.android.com/jetpack/compose/tooling