我們終於來到第廿九篇,我們這次討論的題目都是之前討論過的東西的延伸。因為篇幅和時間有限就只好把它們合併成一篇。 Two-way data binding 我們在...
鐵人賽快到尾聲了,今天想介紹在控制 RecyclerView 中回饋按鈕時,遇到的狀況。想想,這篇好像應該和前一篇順序對調,畢竟是先有這些糾結,才有後面自己歸納...
上一篇我們寫了一些 EtaViewModel 的測試,這一篇會集中寫跟時間相關的測試。 之前在 EtaViewModel 我們定義了更新一次的間距常數 AUTO...
這幾天我們已經從 API 取得資料到包裝成物件,再來就是資料顯示囉。 這兩天的範例會以對話頁面為主,也會用到之前設計的 Chat 物件。今天要介紹把對話資料顯示...
上一篇我們完成了車站列表頁的 ViewModel 和 Presenter 的 unit test。現在轉過去寫班次頁的 unit test。 EtaPresen...
昨天講的是 API 傳遞資料的流程,今天就來介紹怎麼把資料包裝成物件,方便傳遞吧。 一樣,會使用 JSON 結構比較簡單的 CategoryRepositor...
今天大概會聊到的範圍 Testing Compose 的 Test 屬於 UI Test ,在執行時需要啟動模擬器或是 run 在實機上。在使用上,就...
終於來到為 ViewModel 寫 unit test 的部分,亦都意味着這個系列快要完結。之前我們寫過其他 layer 的 unit test,用過 Mock...
前幾天介紹的 MVVM 架構,可以參考這篇 [[Android APP] 01-架構介紹-MVVM]。今天要講的是其中 Repository 的部分,Repos...
現在來到整個 app 最後一個功能:錯誤 banner。這個 banner 出現的目的是因為鐵路隧道沿綫的電話上網訊號都接收得不太好(因為太多人同時在用),很容...
用鍵盤輸入訊息,對年輕人或許稀鬆平常,但對長者而言,使用語音的方式或許更輕鬆。所以除了畫面字體放大外,我們也使用語音識別與輸出技術,提供長者更友善的工具。 上次...
今天大概會聊到的範圍 ComposeView 之前有介紹過 Compose 中的 AndroidView ,是一個可以在 Compose 中放入一般...
昨天講完架構面,今天不那麼技術,來講界面設計。 畫面設計上由於介面是設計給長者使用,因此字型較大。 首頁,使用者可以先選擇要問哪類問題。點選後進入對話頁面。...
SavedStateHandle 不知道大家有沒有發現在「ETA Screen (1)」貼出來的 EtaViewModel 的 constructor 有一個...
第 23 天,這幾天庫存真的用完了,所以文章都是最新鮮,當天寫的喔!! 剩下 7 天,一起加油吧! 終於來到了最後一個系列「Android APP 系列」,也就...
今天大概會聊到的範圍 Snapshot system 上一篇有提到,State 改變時會觸發 recomposition。視這個行為是一種定義。但是為...
今天大概會聊到的範圍 recompose 在整個系列文章中,有提過不只一次的 recomposition。在 Day 15、16 時有特別提過抽象概念...
由於我們在上一篇已經完成了成功載入班次的部分,接下來要做的當然是不正常的情況。雖然港鐵間中會有事故,但都可遇不可求。要檢查我們做的東西是不是正確除了寫自動化測試...
今天大概會聊到的範圍 CompositionLocal CompositionLocalProvider 在上一篇研究 MaterialTheme...
今天大概會聊到的範圍 Theme 透過 Android Studio 內建的精靈建立一個新的 Compose 專案或是建立新的 "Empty...
現在來到整個 app 最重要的頁面:抵站時間頁。這個頁面基本上都是跟上一頁一樣,都是以 RecyclerView 為主。但因為這次的內容要從 API serve...
今天大概會聊到的範圍 viewModel in Compose 今天的主題很單純:如果專案中有使用到 Compose 又有用到 Android Arc...
上一篇我們完成了 StationListAdapter,我們現在會繼續車站列表的 UI 部分。 StationListViewModel 首先我們要寫的 cla...
這個系列開始我們先介紹了 RSS feed 裡面的內容和不同平台的格式,也了解到要一次處理這麼多又有可能重複的資訊是一件不簡單的事情。接著,我們開始練習用一些既...
終於到了最後一天了,不知道把這三十天看完的人有多少呢?希望看到最後一天的人,有感受到我對於這系列文章中想傳達出去的理念,感受到架構設計的取捨是什麼,不是只有選擇...
Android 10以上就很簡單,直接使用MediaStore抓到圖片路徑,然後送給圖片剪裁就好 if (Build.VERSION.SDK_INT >=...
今天大概會聊到的範圍 rememberUpdateState 上一篇聊到,SideEffect 周邊還有一堆和 state & effect 相...
最近兩篇都是講 navigation component,入面為了示範設定 navigation 我們已經預先準備了兩頁的 Fragment class 和 l...
上一次我們完成了 ContextMenu 的部分,ContextMenu 也有了屬於自己的 ViewModel,架構圖如下: 今天我們將要完成 Re-arch...
發佈 library 的方法真的滿多的,像是 bintray、jcenter 等等的,但中途可能要設定不少東西,打包、上傳、設定路徑之類,那有沒有更簡單的方法?...