总结

这个系列开始我们先介绍了 RSS feed 里面的内容和不同平台的格式,也了解到要一次处理这麽多又有可能重复的资讯是一件不简单的事情。接着,我们开始练习用一些既有的 API 做出 RSS 的 parser ,也分别为了不同平台的效能去选择要使用的 API ,像是 Kotlin 的 DOM Parser 和 Android 的 XmlPullParser 。理解了 parser 之後,我们就开始 annotation 相关的实作,从最基本的 annotation 到进阶的 annotation processor ,也使用了 KotlinPoet 写出了很多的 Code Generator ,而不同的 generator 可以产生各种程序码档案。在後半部的地方,我们也针对了实作的 parser 和 reader 进行单元测试的规划和操作,以确保产生出来的程序码没有功能上的问题。除了测试之外,我们也了解到要怎麽样透过新的 KSP library 改进我们的程序码,加速程序码产生的速度。当然,我们做完了 library 也要提供给其他的开发者使用,所以我们使用了最简单易学的方式把 library 发布出去。

在刚开始写这个系列的时候,我觉得有太多东西想分享,但却不知道要怎麽把实作脉络讲清楚,是 annotation 先讲呢?还是 XML parser 先讲?? 我是今年才开始写铁人赛的新手,我花了满多时间在决定内容的讲解顺序,另一方面又想说这个题目实在是太冷门了,大多数的人开发很少会遇到需要自己写 annotation processor ,会不会大家都没甚麽兴趣。 许多铁人赛的前辈们真的很厉害,可以把一件事情用这三十天的文章好好说完而且有条有理,我要向他们好好学习,下次可以写得更好,尤其是 KSP 的部分没有多着墨,因为我自己也是刚上手没多久,还在实作当中,所以分享的内容占比少了些。原本打算是一边写文章,一边实作,但我太天真了,每天写文章就占掉大部分的时间。之後 KtRssReader 的 KSP 实作和 code review 完後,会再上来跟大家分享实作踩到的坑和需要注意的事情,把之前没提到的事情补上来,我会把连结补在 KSP 那几篇的下面。

最後的最後,我想要特别感谢一群跟我一起做 KtRssReader 的朋友们,谢谢 Hsien 、 小汪、 Zoey 和 Amy ,有了大家的帮忙才有了这个 library ,希望之後也还有机会一起写个东西!/images/emoticon/emoticon12.gif


<<:  Day20-JavaScript(JS)与TypeScript(TS)的函式(Function) Part2

>>:  [DAY27]GCP-Google Cloud Platform

#4-图片资讯藏起来!(Hover图片&CSS Filter, Rotation)

前几天都比较专注在文字上的CSS动态,今天就来看看图片的吧! 比起一堆文字,放图片绝对能够说个好故事...

LeetCode解题 Day18

282. Expression Add Operators https://leetcode.com...

【Vue】引用 bootstrap 5 不再依赖 JQuery |专案实作

npm 引用 bootstrap $ npm install bootstrap CDN 引用 bo...

Day 28 -『破釜沉舟的转职路 - 去年说要成为软件工程师的我,今年 38 岁了,我成为工程师了吗?』-- 第一天上班就想好离职的那一天是什麽时候?

不进则退 当要踏进软件这个领域,尤其是前端,我从去年要开始从头学习时,就认清了一个事实,那就是软件...

笔记-Multimedia Data Representations

Digitization of Sound(声音数字化) Facts about Sound(关於声...