#AskAndroid at Android Dev Summit 2019 - Jetpack Composeの内容をざっくりメモした

全部の内容は記載できていないです。もし間違いなどがありましたらご指摘いただけたら嬉しいです。

動画は下記です:

www.youtube.com

Q. いつalphaかbetaになるか?

来年Betaになる

Q. RecyclerViewのようなRecycling Logicなどはあるか?(静的なViewのみの利用を想定しているか?)

静的なViewというよりは動的なViewのために用意している。現状のPreviewにはRecycling Logicはないが、いずれくる予定。

Q. アプリを作成する上で、XMLではなくJetpack Composeのみの利用も想定しているか?

  • 0からアプリを作る段階でJetpack Composeを利用できる
  • 既存のXMLをCompose関数内部で利用したりその逆の方法などについても紹介している
  • 既存のコードと互換性のある形にしたいと考えている

参考:

www.youtube.com

Q. Jetpack Composeのパフォーマンスについて?

  • 現在はExperimental Compilerに頼り切っている状態
  • 現在は、アプリがかくついたりすることもある(現在は小さなことにもallocationなどをしていたりしている)
  • 既存のサンプルアプリはいい感じになっているはず
  • 今後よくなっていくはず

Q. LiveDataやDatabindingを使うよりもより良い・きれいな選択肢か?

  • LiveDataにかんしてはComposeを利用できる
  • Databinding似関してはアプローチが違う
    • DatabindingはViewを用いる
    • Composeは自動で再構成される

Q. 今後のXMLなどの既存コードからの置き換えについて?

  • 今の開発者たちはandroid.widgetにたいして親しみがある
  • 既存とはまったく違うやり方のものがある
    • 既存のシステムと1-1で対にならないものもある
      • JavaからKotlinへの変換のように簡単にはならなそう
  • 既存のViewコードの置き換えは、見た目の観点と、ロジックの観点などにおいて混合している
    • 機械翻訳のようなことが必要。取り組むには面白そうではあるが、現時点では目標としていることではない

Q. 既存のView構造に取り入れることはできるか?たとえばWebViewをComposeで表示するなど

  • 既存のComposeのRepositoryではComposeのWrapper上でWebViewを表示するようなことをしている

Q. 現時点でComposeを学ぶために一番適している場所?

Android Studio Canary 4.0が必要

Q. LinearLayoutの代わりにConstraintLayoutを用いた動的なViewの構成をサポートするか?

  • ConstraintLayoutはまだ
    • 将来的にはサポート予定
  • LinearLayoutについてはRowとColumnがそれにあたる

Q. フィードバックを送信するには?

Slack group

Stackoverflow

https://stackoverflow.com/questions/tagged/android-jetpack-compose

Issue Tracker

https://issuetracker.google.com/issues?q=jetpack%20compose

Bug報告

https://issuetracker.google.com/issues/new?component=612128&template=1253476

フィードバックはほしい。フィードバックと共に開発をしていく

Q. 「UI構築するにはJetpack Composeのほうが良くなる」というのは正式な回答か?

  • 新しいUI構築のための手段
  • 新しいUI構築の手段として開発者に提案しているものの一つ

Q. 違うスクリーンサイズの対応はどのように行われる?

  • Jetpack Composeでは簡単に対応できるようになるはず
    • 簡潔なコードで対応可能
    • ツールが手助けしてくれる
      • プレビューで簡単に確認できる

Q. Navigation Componentは利用できるか?

※ここはわからなかったです。(多分Fragmentのサポートは難しそう?) - Navigation Componentで利用できるのはFragmentだけではない

Q. ComposeとApply Changesは関係あるか?

  • あまり関係ない
  • 開発者はスムーズに開発がしたい
    • ComposeにおいてはPreviewがある

Q. Composeを使う場合、Layoutはどこでどのように描画されているのか?またこれらの方法は変わるのか?

  • XMLレイアウトを互換性のある形で利用する場合
    • 既存とあまり変わらない
  • Composeのみを利用する場合
    • ランタイムに初期化
  • 完全に既存の描画方法とは別