接下來就可以利用上面的 meta-annotation 去定義我們的屬性。 @Target(AnnotationTarget.CLASS, Annotation...
TL;DR 這是「Modern Blog 30 天」系列第 19 篇文章,上一篇我們做完 Sitemap 生成了,這篇接著來做非常相似的 RSS Feed 生成...
上篇我們講了 parser 的基本使用方式和一些前置的 function 實作,像是 parseChannel 和 skip ,接下來我們就要來講其他實用的取...
這篇會講解怎麼樣用 DOM 的 parser 把 RSS 資訊拿出來,首先我們可以先 new 一個 DocumentBuilder val builder =...
這篇會講解怎麼直接用 jUnit 來測試 parser 和 Android 環境的 parser ,接續上一篇,我們現在已經準備好了 RSS feed 的測試案...
上一篇我們講解怎麼產生目標 parser 的 parse 方法,這篇來講解 generator 的內部結構,這會用到上篇提到的 getParseFuncSpec...
處理 Annotation 的時機 一般來說,annotation 可以在 compile time 或是 runtime 的時候做處理。 Compile t...
發佈 library 的方法真的滿多的,像是 bintray、jcenter 等等的,但中途可能要設定不少東西,打包、上傳、設定路徑之類,那有沒有更簡單的方法?...
Auto Service Setup Auto Service 可以幫我們註冊 Annotation processor 到 java 的 service lo...
規劃測試方式 測試是寫 library 很重要的一環,因為我們要確保自己的程式碼有一個基本的品質,測試是絕對不能馬虎的。測試 Parser 要分成兩個部分來看,...
Reader 是我們 Android library 裡面最外層的 API ,要測試它要先考慮它有跟那些元件作互動,以下列出了它有互動的元件: ktRssR...
Logger 在 compile time 的時候,不像我們一般再開發的時候很容易的去 log 一些我們要的資訊,這邊我們必須要透過 processor 提供的...
接續上一篇的 annotation processor 實作,我們的 annotation processor 如果有需要分平台產生不同 parser 的話,可...
運作方式 經過前面這麼漫長的鋪陳,我們終於要來講 annotation processor 了! 這張圖是 library 的 annotation proc...
我們現在有了許多的基礎的 parser function 了,我們直接來看怎麼樣組合這些 function 來 parse 一些東西吧!以 library 裡面...
Gradle Setup 首先我們要在有用到 annotation processor 的 module 的 build.gradle 裡面加上 kapt 的...
Annotation 要怎麼定義會影響使用這個 library 的使用者體驗,annotation 必須要好理解而且還要具有可擴充性。我們的目標是要方便使用者獲...
這個系列開始我們先介紹了 RSS feed 裡面的內容和不同平台的格式,也了解到要一次處理這麼多又有可能重複的資訊是一件不簡單的事情。接著,我們開始練習用一些既...
上一篇我們有提到用 KAPT 參數去呼叫 純 Kotlin 和 Android 的 code generator ,這篇要延續這個主題,繼續來講一下會怎麼樣去呼...
Why - 這件事的起源是什麼? 因為記憶力顯著下降,有些碎碎念需要紀錄下來,又想要完整掌控呈現內容方式與修改權限。 因為這是鴿自己很久要完成的事情,不如記錄...