iT邦幫忙

android相關文章
共有 1139 則文章
鐵人賽 Mobile Development DAY 10

技術 D10/ 我要怎麼把文字變美美的 - Text & AnnotatedString

今天大概會聊到的範圍 AnnotatedString Text 在 Compose 中顯示文字時,我們可以使用 Text 這個 Composable。...

鐵人賽 Mobile Development DAY 19

技術 Jetpack Compose navigation + Koin

現在我們有了編輯便利貼頁面還有編輯文字頁面,該是時候好好的來思考要怎麼切換頁面了!流程如下:使用者選擇了某一個便利貼→看到選單出現→點擊編輯文字→跳轉到編輯文字...

鐵人賽 Mobile Development DAY 19

技術 Parser Generator (一)

KotlinParserGenerator 我們先從 kotlin 的 parser 講起,這邊會順便帶到一些 KotlinPoet 的進階用法。我們目標是讀取...

鐵人賽 Mobile Development DAY 9

技術 Date & time

上一篇在實作 EtaResponseMapper 的時候我們用了 Java 8 開始有的 Instant、LocalDateTime 和 ZonedDateTi...

鐵人賽 Mobile Development DAY 8

技術 110/08 - 檔案要存那裡?

以前在寫應用程式的時候因為不懂、方便、隨性等各種原因,所以就在根目錄建立資料夾,把照片影片都往裡面丟,然後應用程式解除安裝後檔案還是存活在手機中。 Google...

鐵人賽 Mobile Development DAY 9

技術 D09 / 為什麼我的按鈕這麼長? - Intrinsic measurements

今天大概會聊到的範圍 Intrinsic measurements 今天的標題可能會讓人有點疑惑,但這是我寫出這段 Code 時的第一反應。 Colu...

鐵人賽 Mobile Development DAY 8

技術 Data layer implementation (2)

上一篇的 repository 還欠一個 mapper 把 EtaResponse 轉成 EtaResult。我們首先準備一個通用的 interface: in...

鐵人賽 Mobile Development DAY 18

技術 Jetpack Compose - Stateful and Stateless

相較於傳統的 Android View,Jetpack Compose 在 Android 開發上還有一個新的概念,那就是 Stateful (有狀態的) 還有...

鐵人賽 Mobile Development DAY 18

技術 Logger 與 Extension Generator for Kotlin

Logger 在 compile time 的時候,不像我們一般再開發的時候很容易的去 log 一些我們要的資訊,這邊我們必須要透過 processor 提供的...

鐵人賽 Mobile Development DAY 23

技術 電子書閱讀器上的瀏覽器 [Day23] 雙視窗可拖拉調整大小元件

在 Day 21 顯示 Google Translate 網頁翻譯內容時,畫面呈現的作法是很單純的新增一個 LinearLayout,把原先的 WebView...

鐵人賽 Mobile Development DAY 8

技術 D08 / 怎麼做自己的 Modifier.padding? - Custom Layout Modifier

今天大概會聊到的範圍 layout modifier 上一次討論到 Modifier 時,覺得自己其實對物件如何繪製到畫面上其實一知半解。今天打算繼續...

鐵人賽 Mobile Development DAY 7

技術 110/07 - 建立自己的 ResultContracts

前面講完官方的14種Contracts,但我們也能建立屬於自己的Contracts,以下範例是實作一個跟ActivityResultContracts.Star...

鐵人賽 Mobile Development DAY 17

技術 ViewModel 的 Single source of truth

以往我們所熟悉的 Single source of truth 都是在針對資料層,概念上基本上這樣的:我們 App 的資料來源通常來說都有兩個,一個是網路,另一...

鐵人賽 Mobile Development DAY 17

技術 各種 Code Generator 的功能

上一篇我們有提到用 KAPT 參數去呼叫 純 Kotlin 和 Android 的 code generator ,這篇要延續這個主題,繼續來講一下會怎麼樣去呼...

鐵人賽 Mobile Development DAY 22

技術 電子書閱讀器上的瀏覽器 [Day22] 翻譯功能 (IV) 內容分頁

將網頁原文分頁翻譯 大致上的實作,到上一篇就差不多了。但是在使用幾天後發現一個問題,如果文章內容太長的話,常常會發生 Google Translate 網頁會顯...

鐵人賽 Mobile Development DAY 7

技術 Data layer implementation (1)

在上一篇,我們把 Ktor client 加到 Dagger 的 object graph 內。現在我們就繼續寫 data layer 部分。 跨 layer...

鐵人賽 Mobile Development DAY 7

技術 D07 / 怎麼顯示大量資料 - Lazy composables ( LazyColumn & StickyHeader )

今天大概會聊到的範圍 LazyColumn StickyHeader 基本的畫面可以顯示了,但在 Android App 的開發中,我們很常需要顯示大...

鐵人賽 Mobile Development DAY 16

技術 ViewModel 中的 UI 狀態 - 以 Selection state 為例

在一個應用程式中,有著各種不同類型的資料,這些不同的資料也有屬於他們的生命週期,有些資料就像之前介紹的便利貼一樣,是永久存在雲端上的(除非有一天把專案刪了......

鐵人賽 Mobile Development DAY 16

技術 Code Generator 結構

接續上一篇的 annotation processor 實作,我們的 annotation processor 如果有需要分平台產生不同 parser 的話,可...

鐵人賽 Mobile Development DAY 21

技術 電子書閱讀器上的瀏覽器 [Day21] 翻譯功能 (III) Google Translate

雙開 WebView 並開啟 Google Translate 網頁 先來看看今天想要完成的功能的樣子 Google Chrome 不論是桌面版或是手機版的...

鐵人賽 Mobile Development DAY 6

技術 HTTP Client

在 Android 開發如果要用到 HTTP client 的話基本上大家都預設用 OkHttp + Retrofit 這個組合。這次我們試試一些新東西:Kto...

鐵人賽 Mobile Development DAY 6

技術 D06 / 為什麼 Modifier 的順序不能亂寫 - Modifier

今天大概會聊到的範圍 Modifier 的運作 Modifier 是我們在 Compose 系統中,最廣泛使用於調整 Composable 顯示行為的...

鐵人賽 Mobile Development DAY 5

技術 Dependency injection

談到 Android 的 dependency injection (DI),大家一定會想到 Dagger 這個 DI library。因為 Dagger 2...

鐵人賽 Mobile Development DAY 15

技術 反思與第二部序章

魔鬼藏在細節 在上一篇中的最後我問了一個問題:“為什麼沒有使用 Flowable 而是繼續用 Observable 來解決 Backpressure?”,不知道...

鐵人賽 Mobile Development DAY 15

技術 Annotation Processor 雛形實作

Auto Service Setup Auto Service 可以幫我們註冊 Annotation processor 到 java 的 service lo...

鐵人賽 Mobile Development DAY 20

技術 電子書閱讀器上的瀏覽器 [Day20] 翻譯功能 (II) 取得網頁全文

接著來講講怎麼取得 browser 目前網頁中的本文內容,然後再把它轉給昨天介紹字典 App。 取得需要翻譯的網頁全文 網頁內容千奇百怪,如果直接抓取整個網頁的...

鐵人賽 Mobile Development DAY 5

技術 D05 / 為什麼不會填錯資料? - Inline class, Scope  & DSL design in compose

今天大概會聊到的範圍 slot api modifier scope inline classes 在研究如何使用 ConstraintLayout...

鐵人賽 Mobile Development DAY 14

技術 完成便利貼程式第一版

補充完了必要的知識後,現在再回頭看一下之前遇到的問題吧! 整合完 Firebase 之後發現了兩個問題: 更新資料到網路上需要花費相對多的時間,如果持續不斷的...

鐵人賽 Mobile Development DAY 14

技術 Annotation Processor Setup

Gradle Setup 首先我們要在有用到 annotation processor 的 module 的 build.gradle 裡面加上 kapt 的...

鐵人賽 Mobile Development DAY 4

技術 Deserialization

JSON serialization/deserialization 應該是不少 Android app 都會做的事,基本上近乎每個 Android proje...