Closed Takahana closed 3 years ago
Androidの公式ドキュメントに実用的な説明があって感動した。
LiveData
と StateFlow
の違いを理解するのが大事そう。
ただし、StateFlow と LiveData の動作は異なります。 StateFlow では初期状態をコンストラクタに渡す必要がありますが、LiveData では必要ありません。 LiveData.observe() ではビューが STOPPED 状態になるとコンシューマが自動的に登録解除されますが、StateFlow やその他の Flow からの収集では登録解除されません。
https://developer.android.com/kotlin/flow/stateflow-and-sharedflow?hl=ja
Androidアドカレで書いたことについて森さんからリプが来て、頑張って質問に答えようとする図。 まだ調査・回答できてないところがあるので、なるべく早く回答しなければ💦 https://twitter.com/go_takahana/status/1339225594072985601?s=20
KMMの公式のgetting startedみたいのもあるけど,これが日本語でちょっと深ぼって解説されてて最初読むのによさげ https://asmz.hatenablog.jp/entry/kotlin-multiplatform-mobile-getting-started
Fragment間でデータ渡す時に色々あるじゃないですか
fragment-ktx 1.3.0-alpha04から'setFragmentResult'ってのが出たらしくて楽しそう
動画をみて,Material Design Component で用意されているモーション系のクラスを全然知らないことがわかった🥺
MaterialContainerTransform
MaterialElevationScale
MaterialFadeThrough
ref: https://material.io/develop/android/theming/motion
とにかくモーション系のお勉強が足りないので,codelabやるっきゃないね💪 https://codelabs.developers.google.com/codelabs/material-motion-android#0
suspendCancellableCoroutine
suspendCoroutine
と同様にコルーチンを中断するが,異なる点は「Jobがキャンセルされた時の後処理が書ける」こと.
後処理を書いて,安全に再開できるようにしよう.
https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/suspend-cancellable-coroutine.html
Swiftでもsuspend関数とFlowのサポートがされていることを知った iOS用にFlowをwrapしたCommonFlowとか作って使うといいみたい Androidでは普通のFlowみたいに使えて,iOSではwatchっていうメソッド使えば同じようなことできるようになるらしい https://www.m3tech.blog/entry/kmm-brainfuck-app https://github.com/JetBrains/kotlinconf-app/blob/master/common/src/mobileMain/kotlin/org/jetbrains/kotlinconf/FlowUtils.kt
KMMのDIではDaggerでもHiltでもKoinでもなくKodein-DIっていうライブラリを使うみたい https://github.com/Kodein-Framework/Kodein-DI
Fragment間でデータ渡す時に色々あるじゃないですか
- bundle使う
- safeargs使う
- ActivityスコープのViewModel使う とかとか
fragment-ktx 1.3.0-alpha04から'setFragmentResult'ってのが出たらしくて楽しそう
KMMのサンプルを作ってみたので参考にしてみてね https://github.com/b4tchkn/kmm-sample-app
よくあるサンプル。 自分がよくやる実装ととても似てた。 https://medium.com/swlh/clean-architecture-in-android-a-beginner-approach-be0ce00d806b
記事のリンクなどをペタペタ貼っていこう〜