Android Dev Summit 2019 報告会参加レポ #AndroidDevSummit
GDG Tokyo主催のAndroid Dev Summit 2019報告会に行ってきたのでメモを残しておきます。
Android Dev Summit 2019 Conference Overview & Keynote Session
Summitには約60カ国700人の開発者が参加し、セッションを聞いたりディスカッションをしたりする場も。
KeynoteではGoogle PlayがSystem Updateをサポートするという話も。ここで出てきているAPEXというのはこんなもの。
APEXファイル形式。apkをシステムのモジュールとして利用すると起動時に使えないとか制限があったり、そもそもシステムモジュールに適していないなどがあるので、それをできるシステムモジュールを更新可能にする仕組みっぽい。 https://t.co/2NR0pqgCj2 #AndroidDevSummit #gdgtokyo
— takahirom (@new_runnable) 2019年11月15日
セキュリティに関するおすすめセッションはこちらとのこと。
最近ではKotlinによる開発がさかんになってきていて、Google Associate Android Developer Certification - Kotlinという認定試験も新設された。割引コードを使うと$99。
Associate Android Developerの割引コードこれっぽい。$149が$99に #AndroidDevSummit https://t.co/EaGuM6Hkxk
— Takafumi Kanda (@kafumi__) 2019年11月15日
Android OSに絡む話としては、新しいAndroid OSバージョンが出ると、targetSdkVersionはN-1以上が求められる。
What's new Android Studio 4.0
Android Studio 4.0ではMotion Editor(アニメーションをGUI上で設定できる)やMulti Preview(複数解像度、多言語のUIがプレビュー上で確認できる)、Multi Display(1つのエミュレータ内で、複数端末の表示が確認できる)、Build Speed(ビルドに時間がかかっているタスクを簡単に把握できる)、Live Layout Inspector(Viewの構造やプロパティ値を3Dで確認できる)などがサポートされる。
How to Motion Editor - Report from Android Dev Summit 2019
モーションをGUI上で編集できるMotion Editorは、Android Studio 4.0以上で使用することができる。startとendのconstraintや各種プロパティをGUI上で設定して、簡単にアニメーションを表現することができる。
CameraX
従来のCamera 2 APIは高度なカメラ機能が使えるようになるものの、コールバック地獄になったり、様々な機種への対応が大変だった。依然として高度な機能はCamera 2を頼ることになるもののCamera Xでは使いやすさが重視され、コールバック地獄がなくなったり、機種を気にせず実装できる。
Jetpack Compose どうなの?
Jetpack ComposeはAndroidのUIを作るためのモダンなツールキット。Kotlinで作られており、Kotlinからしか呼べない。minSdkVersionは21で、既存のコードを混ぜて使うことができる予定。Jetpack Composeを使うとコードがシンプルになったり、Single source of truthがしやすくなったり、UIパーツが再利用しやすくなったりする。
いくつかアノテーションが出て来る中で、@Previewにはこんな情報も。
Jetpack Composeに (at)Previewが特別にあるのはAndroid StudioのPreviewだとActivity起動時に必要な引数が渡せないので専用で用意したんだよね、って会場で聞きました! #gdgtokyo #AndroidDevSummit
— mhidaka (@mhidaka) November 15, 2019
Jetpack Composeに関するセッション動画はこちら。
Jetpack ComposeはAndroid Studio 4.0から試せるようになったもののまだ製品で使えるレベルにはなっていない。
Room とコルーチン
Room 2.2では予めデータを格納したデータベースファイルを用意しておいて初期化時に使うことができるようになったり、@RelationでN:Nが使えるようになった(ジャンクションテーブルが必要)。Expand Projectionは例えクエリでアスタリスクを指定したとしても、戻り値として指定している型に合わせて空気を読んで取ってきてくれるもの。
また、Flow対応が追加された。LiveDataと違ってライフサイクルは把握していない。FlowではLiveDataよりデータ加工が柔軟にできる。FlowからLiveDataへは.asLiveData()で変換できる。
Roomとコルーチンに関する動画はこちら。
Togetter
Android Dev Summit 2019 Extended Tokyo #gdgtokyo #AndroidDevSummit - Togetter