DroidKaigi 2021
先日 DroidKaigi 2021 が行われました。
3日間開催でTimetable(タイムテーブル)は以下です。
・DroidKaigi 2021 タイムテーブル
DroidKaigi では多くの発表がありました。
その発表の中から 明日から使える実装 を2つ紹介します。
ViewModel と Lifecycle の技術にピックアップして選出しました。
lifecycleScope.launchWhen**** で表示データを更新
アプリがバックグラウンドの状態でデータを更新させたくない時に使えるのが以下です。
・lifecycleScope.launchWhenStart
・lifecycleScope.launchWhenResume
を利用することで非同期処理の結果を更新させることで、画面回転やメモリリークに強いアプリを目指せます!
ライフサイクルに準拠したアプリ開発が大切です。
↓のような実装が一例です。
class TestActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
lifecycleScope.launchWhenStarted {
// ViewModelからの更新をする
}
}
紹介されたセッションの動画のリンクを記載しておきます
・マルチデバイス対応で考慮すべきポイント
・Master of Lifecycle
SavedStateHandleでアプリの状態を保持
画面回転でも破棄されないViewModeでActivityやFragmentの破棄されてしまうデータを保持させるのに良いです!
↓のような実装が一例です。
class TestViewModel(
private val savedStateHandle: SavedStateHandle
):ViewModel {
private val _savedId = mutableStateOf<UiState>(UiState.Initial)
init {
savedStateHandle.setSavedStateProvider("[KEY]") {
_savedId.value.toBundle()
}
savedStateHandle.get<Bundle>("[KEY]")?.let {
_savedId.value = it.toUiState()
}
}
}
紹介されたセッションの動画のリンクを記載しておきます。
・プロダクトレベルで必要となる Jetpack Compose テクニック
・Master of Lifecycle
最後に
今回紹介したのは発表された内容のごく一部です。
3日間のセッションの動画一覧が↓のTwitterにまとまっています。
興味があるものを見て知識を増やしてAndroid開発力を高めていきましょう!