Why - 這件事的起源是什麼? 因為記憶力顯著下降,有些碎碎念需要紀錄下來,又想要完整掌控呈現內容方式與修改權限。 因為這是鴿自己很久要完成的事情,不如記錄...
TL;DR 這是「Modern Blog 30 天」系列第 19 篇文章,上一篇我們做完 Sitemap 生成了,這篇接著來做非常相似的 RSS Feed 生成...
這個系列開始我們先介紹了 RSS feed 裡面的內容和不同平台的格式,也了解到要一次處理這麼多又有可能重複的資訊是一件不簡單的事情。接著,我們開始練習用一些既...
發佈 library 的方法真的滿多的,像是 bintray、jcenter 等等的,但中途可能要設定不少東西,打包、上傳、設定路徑之類,那有沒有更簡單的方法?...
這系列的文章不會講完全部 KSP 的實作,畢竟我也還正在實作中,不過實作的方向應該是跟前幾篇講的差不多,只是換一個 annotation processor 的...
檢查 gradle 版本 把 gradle build script 改成 KTS 之後,我們可以先確認一下現有的 project gradle 的版本,最好是...
就在我們用 KAPT 開發完這個 RSS library 後幾個月 KSP 就發佈了! KSP 的全名是 Kotlin Symbol Processing ,是...
Reader 是我們 Android library 裡面最外層的 API ,要測試它要先考慮它有跟那些元件作互動,以下列出了它有互動的元件: ktRssR...
接下來的測試將會需要用到 mocking 的 library ,在 Android 大家比較常用的是 MockK 和 Mockito 。這篇要介紹的是 Mock...
嗨嗨嗨!昨天使用 Notion SDK 顯示我的 Notion page 裡面的內容,可以在這裡看看喔。那今天新增了一個新的頁面,使用 RSS 顯示iT邦幫忙系...
這篇會講解怎麼直接用 jUnit 來測試 parser 和 Android 環境的 parser ,接續上一篇,我們現在已經準備好了 RSS feed 的測試案...
規劃測試方式 測試是寫 library 很重要的一環,因為我們要確保自己的程式碼有一個基本的品質,測試是絕對不能馬虎的。測試 Parser 要分成兩個部分來看,...
上篇提到了 parser generator 在產生程式碼的時候,可以用四個步驟去拆解裡面的資訊並產生程式碼,我們現在來看一下範例吧! 進入範例之前,我們也複...
上一篇我們講解怎麼產生目標 parser 的 parse 方法,這篇來講解 generator 的內部結構,這會用到上篇提到的 getParseFuncSpec...
KotlinParserGenerator 我們先從 kotlin 的 parser 講起,這邊會順便帶到一些 KotlinPoet 的進階用法。我們目標是讀取...
Logger 在 compile time 的時候,不像我們一般再開發的時候很容易的去 log 一些我們要的資訊,這邊我們必須要透過 processor 提供的...
上一篇我們有提到用 KAPT 參數去呼叫 純 Kotlin 和 Android 的 code generator ,這篇要延續這個主題,繼續來講一下會怎麼樣去呼...
接續上一篇的 annotation processor 實作,我們的 annotation processor 如果有需要分平台產生不同 parser 的話,可...
Auto Service Setup Auto Service 可以幫我們註冊 Annotation processor 到 java 的 service lo...
Gradle Setup 首先我們要在有用到 annotation processor 的 module 的 build.gradle 裡面加上 kapt 的...
運作方式 經過前面這麼漫長的鋪陳,我們終於要來講 annotation processor 了! 這張圖是 library 的 annotation proc...
Annotation 要怎麼定義會影響使用這個 library 的使用者體驗,annotation 必須要好理解而且還要具有可擴充性。我們的目標是要方便使用者獲...
接下來就可以利用上面的 meta-annotation 去定義我們的屬性。 @Target(AnnotationTarget.CLASS, Annotation...
處理 Annotation 的時機 一般來說,annotation 可以在 compile time 或是 runtime 的時候做處理。 Compile t...
Annotation 很常寫 Java 或是 Kotlin 的朋友對 annotation 大概不陌生,它其實就是在程式碼裡面做標記,而這個標記做什麼或者背後隱...
Mattermost RSS 當你使用過Mattermost一段時間後,想試著使用RSS訂閱一些像是即時新聞、ithome鐵人賽、GCP的狀態,甚至重要的訊息時...
我們現在有了許多的基礎的 parser function 了,我們直接來看怎麼樣組合這些 function 來 parse 一些東西吧!以 library 裡面...
上篇我們講了 parser 的基本使用方式和一些前置的 function 實作,像是 parseChannel 和 skip ,接下來我們就要來講其他實用的取...
上篇我們介紹了 XmlPullParser 和常用的幾個 event type ,現在我們來介紹它的實作。首先我們要拿到 parser 的實體才能夠操作 tag...
上篇我們講解了如何使用 Kotlin 來寫 XML parser ,我們也有提到 DOM parser 有個缺點就是有可能會消耗較多的記憶體,這點在 mobil...