-
Hilt 指南 組內分享
2025-07-26市場上已經很多依賴注入套件(dagger , koin)的選擇 ,還有很多文章介紹了,我會選擇 hilt 很單純,就是對於各類 mvvm 的物件,有魔法般的支援,真的少非常多代碼,選擇hilt 並非絕…
-
handle all repostiory operation that out of Composable/ViewModel scope
2025-07-21作法一:async + await(我要結果,但任務不能停) 這招的核心是「分離執行與等待的生命週期」。Repository 接受一個長壽的 externalScope,用 async 把任務丟進去獨…
-
Difference between constructors and init in kotlin
2025-07-17原文 誰負責「定義」?誰負責「執行」? 在 Kotlin 中,Object 創建是個有順序的過程。constructor 和 init block 是關鍵成員,各自有明確職責。搞不清這點,可能導致初始…
-
Jetpack Compose: 何時該用 derivedStateOf?
官方導讀 derivedStateOf 是一個效能優化工具,專門用來防止因「來源狀態」變化過於頻繁而導致的**「不必要的 UI 重組 (Recomposition)」。。 1. 衍生 一個常見的範例開…
-
viewModelScope vs rememberCoroutineScope 其實沒啥好 versus ,就是 SOC 職責分離
2025-07-15viewModelScope:與 ViewModel 的生命週期綁定,只能用在資料/邏輯層。 rememberCoroutineScope:與 Composable 畫面元件的生命週期綁定,只能用在 …
-
SupervisorJob 不就是 viewModelScope嗎?
2025-07-14Job 不僅僅是 launch 的回傳值,它是我們管理 Coroutine 的「遙控器」。 Job : Job 是最基本的協定,它遵循嚴格的「結構化併發」原則。 特性:「一損俱損」。 在一個由標準 J…
-
fun GameScreen(gameViewModel: GameViewModel = GameViewModel()) 這樣寫有啥問題?
直接 new GameViewModel() Kotlin class GameViewModel : ViewModel() { var score by mutableStateOf(0) ini…
-
麻煩 ViewModelProvider.Factory 你了,因為系統不讓我直接 new 一個 ViewModel
這個規範是為了解決 Android 元件生命週期不一致所帶來的大問題。 ## 保險箱 開發者 Activity/Fragment (UI 控制器):是您的「錢包」。您隨身帶著它,但它可能隨時會遺失、被…