今天大概會聊到的範圍 AnnotatedString Text 在 Compose 中顯示文字時,我們可以使用 Text 這個 Composable。...
現在我們有了編輯便利貼頁面還有編輯文字頁面,該是時候好好的來思考要怎麼切換頁面了!流程如下:使用者選擇了某一個便利貼→看到選單出現→點擊編輯文字→跳轉到編輯文字...
KotlinParserGenerator 我們先從 kotlin 的 parser 講起,這邊會順便帶到一些 KotlinPoet 的進階用法。我們目標是讀取...
上一篇在實作 EtaResponseMapper 的時候我們用了 Java 8 開始有的 Instant、LocalDateTime 和 ZonedDateTi...
以前在寫應用程式的時候因為不懂、方便、隨性等各種原因,所以就在根目錄建立資料夾,把照片影片都往裡面丟,然後應用程式解除安裝後檔案還是存活在手機中。 Google...
今天大概會聊到的範圍 Intrinsic measurements 今天的標題可能會讓人有點疑惑,但這是我寫出這段 Code 時的第一反應。 Colu...
上一篇的 repository 還欠一個 mapper 把 EtaResponse 轉成 EtaResult。我們首先準備一個通用的 interface: in...
相較於傳統的 Android View,Jetpack Compose 在 Android 開發上還有一個新的概念,那就是 Stateful (有狀態的) 還有...
Logger 在 compile time 的時候,不像我們一般再開發的時候很容易的去 log 一些我們要的資訊,這邊我們必須要透過 processor 提供的...
在 Day 21 顯示 Google Translate 網頁翻譯內容時,畫面呈現的作法是很單純的新增一個 LinearLayout,把原先的 WebView...
今天大概會聊到的範圍 layout modifier 上一次討論到 Modifier 時,覺得自己其實對物件如何繪製到畫面上其實一知半解。今天打算繼續...
前面講完官方的14種Contracts,但我們也能建立屬於自己的Contracts,以下範例是實作一個跟ActivityResultContracts.Star...
以往我們所熟悉的 Single source of truth 都是在針對資料層,概念上基本上這樣的:我們 App 的資料來源通常來說都有兩個,一個是網路,另一...
上一篇我們有提到用 KAPT 參數去呼叫 純 Kotlin 和 Android 的 code generator ,這篇要延續這個主題,繼續來講一下會怎麼樣去呼...
將網頁原文分頁翻譯 大致上的實作,到上一篇就差不多了。但是在使用幾天後發現一個問題,如果文章內容太長的話,常常會發生 Google Translate 網頁會顯...
在上一篇,我們把 Ktor client 加到 Dagger 的 object graph 內。現在我們就繼續寫 data layer 部分。 跨 layer...
今天大概會聊到的範圍 LazyColumn StickyHeader 基本的畫面可以顯示了,但在 Android App 的開發中,我們很常需要顯示大...
在一個應用程式中,有著各種不同類型的資料,這些不同的資料也有屬於他們的生命週期,有些資料就像之前介紹的便利貼一樣,是永久存在雲端上的(除非有一天把專案刪了......
接續上一篇的 annotation processor 實作,我們的 annotation processor 如果有需要分平台產生不同 parser 的話,可...
雙開 WebView 並開啟 Google Translate 網頁 先來看看今天想要完成的功能的樣子 Google Chrome 不論是桌面版或是手機版的...
在 Android 開發如果要用到 HTTP client 的話基本上大家都預設用 OkHttp + Retrofit 這個組合。這次我們試試一些新東西:Kto...
今天大概會聊到的範圍 Modifier 的運作 Modifier 是我們在 Compose 系統中,最廣泛使用於調整 Composable 顯示行為的...
談到 Android 的 dependency injection (DI),大家一定會想到 Dagger 這個 DI library。因為 Dagger 2...
魔鬼藏在細節 在上一篇中的最後我問了一個問題:“為什麼沒有使用 Flowable 而是繼續用 Observable 來解決 Backpressure?”,不知道...
Auto Service Setup Auto Service 可以幫我們註冊 Annotation processor 到 java 的 service lo...
接著來講講怎麼取得 browser 目前網頁中的本文內容,然後再把它轉給昨天介紹字典 App。 取得需要翻譯的網頁全文 網頁內容千奇百怪,如果直接抓取整個網頁的...
今天大概會聊到的範圍 slot api modifier scope inline classes 在研究如何使用 ConstraintLayout...
補充完了必要的知識後,現在再回頭看一下之前遇到的問題吧! 整合完 Firebase 之後發現了兩個問題: 更新資料到網路上需要花費相對多的時間,如果持續不斷的...
Gradle Setup 首先我們要在有用到 annotation processor 的 module 的 build.gradle 裡面加上 kapt 的...
JSON serialization/deserialization 應該是不少 Android app 都會做的事,基本上近乎每個 Android proje...