Re-architect 大家應該都很常說,或是很習慣使用到一個詞 - 重構(Refactoring)。但是大家在說“重構”的時候其實不太像是在做“重構”,比較...
這篇會講解怎麼直接用 jUnit 來測試 parser 和 Android 環境的 parser ,接續上一篇,我們現在已經準備好了 RSS feed 的測試案...
今天大概會聊到的範圍 Animation Modifier.graphicsLayer 上一篇講到 Animation,今天想要拿 Animation...
Android 11開始把getExternalStoragePublicDirectory標記棄用,要求改用MediaStore,一樣從畫面開始 <?x...
上一篇我們寫好了 EtaResponseMapper 的 unit test。但 data layer 還有 EtaResponseMapper 未寫 unit...
要談架構的話當然一定會聊到這現在最夯最流行的 Clean architecture,雖然在前面的文章中已經提過幾次了,但是應該不是所有人都有真正的看過這本書,所...
規劃測試方式 測試是寫 library 很重要的一環,因為我們要確保自己的程式碼有一個基本的品質,測試是絕對不能馬虎的。測試 Parser 要分成兩個部分來看,...
原本今天最後一篇,只想做個總結,放放相關連結而已。不過剛好昨天心血來潮幫 EinkBro APP 導入了 Koin 的支援,今天就順手也記錄一下,讓大家當做參考...
原以為一個不到 3MB (扣除擋廣告的資料檔)的 Andrid App,既沒有任何的 tracking 機制,也沒有從網路抓任何非網頁內容的資料回來,理論上網頁...
今天大概會聊到的範圍 Animation 上一次有聊到,我們可以透過 Gesture 和 State 來與 user 互動。例如下面這個例子: @Co...
Day 26 - HBuilderX 與 Native.js API 讀取圖片 在 Day 25 - HBuilder X 產生 apk 已經完成使用 HBui...
不太可能每個專案都那麼爽,可以把相片儲存在內部儲存空間/Android/data/packageName/files/,所以還是要練習把檔案儲存在內部儲存空間/...
今天會繼續寫 EtaResponseMapperTest。我們示範的 test case 是正常輸出班次的情景。首先是準備 response: val resp...
今天大概會聊到的範圍 State Gesture Modifier 在之前,都只是在介紹比較靜態的畫面。但今天如果想要和使用者互動時,該如何處理呢?...
上篇提到了 parser generator 在產生程式碼的時候,可以用四個步驟去拆解裡面的資訊並產生程式碼,我們現在來看一下範例吧! 進入範例之前,我們也複...
第二階段也接近到尾聲了,現在便利貼已經有了比較豐富的功能了,可以拖曳便利貼、改變顏色、改變文字、新增以及刪除。那麼檔案的結構又會是什麼樣子呢? 這邊的分類方式是...
上一篇我們講解怎麼產生目標 parser 的 parse 方法,這篇來講解 generator 的內部結構,這會用到上篇提到的 getParseFuncSpec...
新增相片後,要發送通知給相簿應用程式,這樣才能更新照片清單,這樣才能在相簿看到新增加的照片,使用者體驗才會好。 以前我們會用Intent.ACTION_MEDI...
今天來實作使用ActivityResultContracts.TakePicture()開啟相機,拍照後把照片儲存在Android/data/packageNa...
今天大概會聊到的範圍 AnnotatedString Text 在 Compose 中顯示文字時,我們可以使用 Text 這個 Composable。...
現在我們有了編輯便利貼頁面還有編輯文字頁面,該是時候好好的來思考要怎麼切換頁面了!流程如下:使用者選擇了某一個便利貼→看到選單出現→點擊編輯文字→跳轉到編輯文字...
KotlinParserGenerator 我們先從 kotlin 的 parser 講起,這邊會順便帶到一些 KotlinPoet 的進階用法。我們目標是讀取...
上一篇在實作 EtaResponseMapper 的時候我們用了 Java 8 開始有的 Instant、LocalDateTime 和 ZonedDateTi...
以前在寫應用程式的時候因為不懂、方便、隨性等各種原因,所以就在根目錄建立資料夾,把照片影片都往裡面丟,然後應用程式解除安裝後檔案還是存活在手機中。 Google...
為什麼要介紹上架到 F-Droid 而不是 Google Play Store 呢?關於上架到 Google Play Store 的教學已經多到不用我再多寫...
原先的 browser 實作就已經包含了無痕模式的細部功能,像是禁止使用 Cookie,和不記錄瀏覽歷史;但是卻沒有一個快速開關能夠進到一般瀏覽器支援的無痕模式...
今天的內容很短,因為實作還蠻容易的。 瀏覽網頁時,有些時候是在看影片。這時,如果沒有特別設定要系統保持清醒的話,常常會看到一半就因為系統睡眠時間到了,就把畫面關...
雖然 browser 已經可以支援多個分頁瀏覽了(全在同一個 Activity 中做切換),但有些時候還是需要有另一個裝載 WebView 的 Activity...
今天大概會聊到的範圍 Intrinsic measurements 今天的標題可能會讓人有點疑惑,但這是我寫出這段 Code 時的第一反應。 Colu...
上一篇的 repository 還欠一個 mapper 把 EtaResponse 轉成 EtaResult。我們首先準備一個通用的 interface: in...