All set for Jetpack Compose?

f:id:sokume:20210630172754p:plain

モバイルアプリグループでおもにAndroidアプリ開発している@sokumeです。

Android エンジニアの皆さん、Jetpack Composeへの準備はバッチリでしょうか。
2019年にJetpack Composeの発表があり、2021年7月にはJetpack Composeバージョン1.0がリリースされるとGoogle I/O 2021 Developers Keynoteの中で発表がありました。
この記事では、リリース目前となったJetpack Composeバージョン1.0に向けて、Jetpack Composeに関する情報をまとめて行きます。

開発環境

Jetpack Composeβ版は、Android Studio Preview releaseのBeta build(2021/6/30 時点でArctic Fox(2020.3.1) Beta4で利用が可能です。Android Studio Stable版では利用できない点に注意してください。
7月のJetpack Compose1.0リリース時に、Android Studio Stable版でも利用可能なバージョンがでるような噂は聞きますが正式な発表は無いので、しばらくはAndroid Studio Preview releaseを利用する対応になるかもしれません。

最新の開発環境に関する情報は以下をチェック。
Android Studio でJetpack Composeを使用する

Jetpack Composeを知る

まずはComposeの思想をチェックしましょう。 どの記載内容も大事ですが、まず理解しておきたい点は以下と思っています。

@ComposableアノテーションのついたComposable関数の役割

これまでAndroidで開発されてきた方は、作成してきたカスタムViewをイメージしながら考えると実装イメージが付きやすいかもしれないです。
Composable関数の説明として副作用はありません副作用なしでUIを記述しますという説明が出てきます。ここの副作用入力情報に対して結果が一致しない不確定な要素と考えるとわかりやすいでしょうか。
Composable関数は入力値に対して、表示される結果は常に同じ結果になるUIである必要があるという考え方が必要になりそうです。

Composable関数の再コンポーズ

再コンポーズはComposable関数が、入力データを判断し必要があれば再描画される事を指します。
再コンポーズはアニメーション実行中など、頻繁に呼び出される可能性があるので、パフォーマンスの大きい動作(他のViewに影響のある値の変更)などは、Composable関数で実行しない工夫が最適なパフォーマンスの維持に繋がりそうですね。
これまでのListViewのようなレイアウトを組む場合には、適切に再コンポーズをさせるための実装が必要になります。

Jetpack Composeを学ぶ

順序良く学ぶにはJetpack Compose Pathwayがベストでしょう。
上で記載している内容も出てきます。レイアウトの方法、アニメーションや画面遷移といった基本的な情報を順序良く学ぶことができます。
すべて完了すると、Google Developers Badge ももらえるので、集めている方は是非取り組んでください。

f:id:sokume:20210630173506p:plain

Jetpack Compose を読む

既にJetpack Compose で書かれたコードを読むというのも実装を知るための近道でしょう。
以下のGitHubに公式のJetpack Compose のサンプルアプリがあります。自分の作りたいアプリのデザインをイメージして探すと、実装のイメージが湧きそうですね。

github.com

Jetpack Compose を書く

Jetpack Compose を使ったアプリを作りたいが、どんなアプリをつくってみようと思っている場合には、2021年の3月〜4月に行われたAndroid Dev Challengeに挑戦してみるのはどうでしょう。
注意:既に登録期間は過ぎているので景品はもらえないですよ。

私もChallenge1〜4のすべてに挑戦しましたが、Challange3のAPAC(アジア太平洋)向けのお題Bloomはとても良い内容でしたので、まだの方はチャレンジしてみてください。
全世界でDevChallangeに登録したアプリはすべてGitHubで探すことが可能です。他の人が作ったアプリを参考にしてみるのも良いでしょう。

Jetpack Composeバージョン1.0は非常に楽しみかつパワフルな機能で、今後のAndroid開発はJetpack Composeで実装するケースが増えていくでしょう。
先日私が司会を務めさせて頂いた、I/O Extended Japan ーAndroidのイベント中で、視聴頂いている方からの質問を受け付けましたが、1時間の回答時間で回答しきれないほどの質問が来ました。質問内容もJetpack Composeに関する内容がたくさん寄せられて、Jetpack Composeへの期待を感じました。

www.youtube.com

さぁ!Jetpack Composeバージョン1.0にすぐキャッチアップしていけるように、準備していきましょう!

株式会社スタメンでは一緒に働くエンジニアを募集しています。

ご興味のある方はぜひエンジニア採用サイトをご覧ください。