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)

補足

簡単な例

Photo by Lalith T on Unsplash

アンチパターン

versionCode 10200
versionName "1.2.0"

何が問題なのか?

ベストプラクティス

versionCode 8
versionName "1.2.0"

versionNameを関連付けたい場合

versionCode 1020000 // 末尾二桁を自由に使えるようにする
versionName "1.2.0"

BuildConfigを使う

最後に

参考

Photo by Andrey Metelev on Unsplash

scope.async

scope.launch内でのasync

supervisorScopeで対応

CoroutineExceptionHandlerで対応

Photo by Kind and Curious on Unsplash

誤りを検出してLog出力する

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