iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Mobile Development

如何使用 Kotlin Annotation Processor 做出自己的 Custom Data Parser Library 系列

在這個系列文章裡,我將會分享我自己做 Custom Data Parser Library 的心路歷程、實作技術與其應用,內容預計將會包含:
1. 使用 kotlin 實作 data parser
2. Annotation processor 與其應用
3. KAPT 介紹與實作細節
4. KSP 介紹與實作細節
5. 如何建立自己的 library 並發佈給其他人使用
6. 如何測試 library 的程式碼

鐵人鍊成 | 共 30 篇文章 | 11 人訂閱 訂閱系列文 RSS系列文 團隊Kotlin 愛台灣 2021
DAY 11

Annotation in Kotlin

接下來就可以利用上面的 meta-annotation 去定義我們的屬性。 @Target(AnnotationTarget.CLASS, Annotation...

2021-09-16 ‧ 由 oumuamua 分享
DAY 12

Annotation 的設計與想法

Annotation 要怎麼定義會影響使用這個 library 的使用者體驗,annotation 必須要好理解而且還要具有可擴充性。我們的目標是要方便使用者獲...

2021-09-17 ‧ 由 oumuamua 分享
DAY 13

Annotation Processor 的運作

運作方式 經過前面這麼漫長的鋪陳,我們終於要來講 annotation processor 了! 這張圖是 library 的 annotation proc...

2021-09-18 ‧ 由 oumuamua 分享
DAY 14

Annotation Processor Setup

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

2021-09-19 ‧ 由 oumuamua 分享
DAY 15

Annotation Processor 雛形實作

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

2021-09-20 ‧ 由 oumuamua 分享
DAY 16

Code Generator 結構

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

2021-09-21 ‧ 由 oumuamua 分享
DAY 17

各種 Code Generator 的功能

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

2021-09-22 ‧ 由 oumuamua 分享
DAY 18

Logger 與 Extension Generator for Kotlin

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

2021-09-23 ‧ 由 oumuamua 分享
DAY 19

Parser Generator (一)

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

2021-09-24 ‧ 由 oumuamua 分享
DAY 20

Parser Generator (二)

上一篇我們講解怎麼產生目標 parser 的 parse 方法,這篇來講解 generator 的內部結構,這會用到上篇提到的 getParseFuncSpec...

2021-09-25 ‧ 由 oumuamua 分享