はじめに
Android歴1.5年の初級〜中級者が、JetpackComposeが浸透していくことを踏まえて学んでいきます
今回は実際のコードや仕組みというより概要やメリットの部分を知っていくといった内容になります
JetpackComposeとは
developerによると、ネイティブ UI をビルドする際に推奨される Android の最新ツールキットとのこと
以下のメリットがあるそう
- コードを削減
- 直感的
- 開発を加速させる
- パワフル
すごく魅力的なUIに使えるツール?の印象
ぱっと見スタイリッシュでカッコ良さそう
メリットについてそれぞれ見ていきます
コードを削減
以下のような意見がある
- 「同じ Button クラスで、コードのサイズが 1/10 になりました。」(Twitter)
- 「画面の大部分を占める、RecyclerView で構築された画面でもコードが大幅に削減されています。」(Monzo)
- 「アプリでリストやアニメーションを作成するのに必要な行がとても少なくって喜んでいます。機能ごとに記述するコード行がわずかで済むので、顧客に価値を提供することにより集中できるようになりました。」(Cuvva)
見る限りRecyclerViewやアニメーションが必要な場合に効果が発揮しそう
また、xmlが不要になってコードを読むのに行ったり来たりがなくなるのが良い点のよう
直感的
以下のような良い点があるとのこと
- 宣言型APIが直感的で、UIを記述さえすれば残りの処理はComposeがやってくれる
- テーマの設定を単一のkotlinファイルで行える
- ステートレスコンポーネントで保守が容易になり実装/拡張/カスタマイズが直感的にできる
- 唯一の情報源が状態についてを発信しコンポーザブルが受け取る形で状態がカプセル化できる
わかるようで深くは理解できない。。
宣言的APIとステートレスコンポーネントとコンポーザブルを理解しないといけなさそう
開発を加速させる
以下のようなことが書かれていた
- Compose↔︎Viewで相互に呼び出すことができることや、NavigationやViewModelなどのよくあるライブラリやCoroutineが機能するため導入の際の互換性が良い
- ライトモードとダークモードなど考えなくてよくなる
- 複数作成できるプレビューを使って時間の節約につながる
導入する際の障壁が少ないのと、複雑なUIに関する考えなきゃいけないことが少なくなりそう
パワフル
以下のようなことが書かれていた
- マテリアルデザイン、ダークテーマ、アニメーションなどを組み込んだ美しいアプリが作れる
- 「Compose ではアニメーションを簡単に追加できるので、色やサイズや高度の変化をアニメーション化しない理由が見当たりません。」(Monzo)
- 「何も特別なことをしなくても、静止画面を表示するのと同じようにアニメーションを作成できます。」(Square)
めちゃめちゃ画期的なUIの実装する手段が生まれた?という印象
ここだけ見るとやらない手はないのではと思ってしまうが実際問題どうなのか
まとめ
- JetpackComposeは今後ネイティブUIを作っていく上で推奨されていくであろうツールキット
- xmlが不要になってUIでアニメーションみたいなものが簡単に実装できる
- 直感的に実装が行え、プレビューを使って実装を加速してくれる
感想
JetpackComposeを学んでいく上てメリットやうまみの部分をざっくり知れて良かった。
良い部分を知ると学ぶモチベーションにも繋がるので今後も良い部分を見つけるようにしたい。
次回は
Composeコースについて見ていきたい