Photo by Lisa Luminaire on Unsplash

実装の悩みどころ

UIの処理パターンで状態を分ける

イベントを1つの状態で管理する

Photo by Moritz Knöringer on Unsplash

Kotlin/Coroutines

Photo by Alexander Schimmeck on Unsplash

環境

  • Android Studio Bumblebee Beta 4

ベンチマーク用のモジュール作成

Photo by Kelly Sikkema on Unsplash

Photo by Aleksi Tappura on Unsplash

Version catalogの定義

バージョンを定義する

ライブラリをまとめて管理

Pluginの管理

コード例

FLAG_IMMUTABLE と FLAG_MUTABLE

FLAG_IMMUTABLE

FLAG_MUTABLE

Androidのバージョンによる違い

参考

現状

exhaustive when statement

Non exhaustive 'when' statements on sealed class/interface will be prohibited in 1.7, add 'Error' branch or 'else' branch instead
'when' expression must be exhaustive, add necessary 'Error' branch or 'else' branch instead

これからの対応

参考

Androidエンジニアは本当に少ないのか?

Androidエンジニアのツラミ

Androidのデザイン

リソース、スケジュール問題

誰も使ってない

Androidエンジニアの楽しさ

開発環境

新しい技術

コミュニティ

大事なこと

最後に

問題が発生するケース

知っておいてほしいこと

DialogFragmentの呼び出し元のLifecycleについて

NavigationのDialogの表示方法について

原因

通常のFragmentの場合

DialogFragmentの場合

対応方法

findNavController().currentBackStackEntryの場合

setFragmentResultListener、共有ViewModelの場合

SampleDialogFragment().show(childFragmentManager, TAG)

補足

簡単な例

Kenji Abe

Programmer / Gamer / Google Developers Expert for Android, Kotlin / @STAR_ZERO

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store