-
@Immutable @Stable 如果 immutableList 內包含 list .這樣會造成 recompstion 嗎?
2025-08-05會.結束 1. List 會造成嚴重的重組問題嗎?在哪種情況? 答案是:會,而且絕對比你想像的更嚴重。 kotlin.collections.List 在 Compose 的世界中被視為「不穩定 (U…
-
Hilt 指南 組內分享
2025-07-26市場上已經很多依賴注入套件(dagger , koin)的選擇 ,還有很多文章介紹了,我會選擇 hilt 很單純,就是對於各類 mvvm 的物件,有魔法般的支援,真的少非常多代碼,選擇hilt 並非絕…
-
Communicate with fragments
2025-07-21參考原文 請忘掉 getActivity() 或 findFragmentByTag()。 現代化的 Fragment 通訊,核心是「中介者模式」。你有兩種武器:ViewModel 和 Fragmen…
-
handle all repostiory operation that out of Composable/ViewModel scope
作法一:async + await(我要結果,但任務不能停) 這招的核心是「分離執行與等待的生命週期」。Repository 接受一個長壽的 externalScope,用 async 把任務丟進去獨…
-
DisposableEffect 與 LifecycleEventObserver
在 Jetpack Compose 中,通常會使用 DisposableEffect 來與 LifecycleEventObserver 互動,以便在 Composable 中安全地監聽 Androi…
-
lateinit vs lazy
lateinit:var 給別人初始化的承諾 最適合用在生命週期或依賴注入,當你確定某個外部力量會幫你搞定初始化時: Kotlin lateinit var adapter: RecyclerView…
-
Thread 和 Coroutine 的理解
2025-07-17參考文章 簡單來說,Thread (執行緒) 是由作業系統 (OS) 來管理和調度的,而 Coroutine (協程) 的控制權則在我們開發者手上,由程式語言的執行環境 (Runtime) 在使用者層…
-
Difference between constructors and init in kotlin
原文 誰負責「定義」?誰負責「執行」? 在 Kotlin 中,Object 創建是個有順序的過程。constructor 和 init block 是關鍵成員,各自有明確職責。搞不清這點,可能導致初始…
-
Jetpack Compose: 何時該用 derivedStateOf?
官方導讀 derivedStateOf 是一個效能優化工具,專門用來防止因「來源狀態」變化過於頻繁而導致的**「不必要的 UI 重組 (Recomposition)」。。 1. 衍生 一個常見的範例開…
-
kotlin init 前初始化屬性會發生啥事
Kotlin 的 class 內部,在初始化階段,是無情地由上到下執行的。 Kotlin // 下面這樣寫會發生啥事,不會發生啥事,因為編譯不過,所以不能跑 class ItemEditViewMod…