整理了一下个人的开发历程。
Stackoverflow 现在是 1499 Rep
Github 不会推广,靠搜索有了几十个星星
Blog
独立开发、上架了几款应用,累计了几万下载。
酷安页面 现在4.8分 / Google Play 现在4.7分
持续维护近两年的应用。
主用Kotlin,辅助Java。架构是MVVM和Clean Architecture的混合体,用Architecture Components实现,分成了18个模块Module。开发过程应用了TDD,为每个核心功能写了单元测试,为UI写了Instrumented Tests。非常注意Code Style,代码全都通过了Detekt和Ktlint。
异步使用了Kotlin Coroutines。数据保存使用了Room。导航使用了有多层NavGraph的Navigation。依赖注入使用了Dagger2-Android。数据序列化使用了对Kotlin友好的Moshi。后台唤醒使用了android-job和WorkManager,文件操作使用了Okio。
Github里的十几个Repo,也都是在开发过程中,写的Custom View和能分离出来的依赖。后端在国内和国外分别用了Firebase和LeanCloud。
开发过程中最大的感想就是,好的架构和抽象真的能让开发和扩展变得很方便。
循环计时器: 酷安页面 / Google Play
剪贴板守护: 酷安页面 / Google Play
权限图书馆: 酷安页面
这是一些练手项目。除了上文提到的,这里还使用了Content Provider进行数据管理和其权限,使用了RxJava2进行事件发送、接受和处理,阅读、研究并运行了一些AOSP中的代码。
此外曾写过一个用OCR识别过游戏中文字,使用Retrofit联网查询信息的辅助应用。但因为做出来,游戏就内置了对应的功能,所以没上架。
独立开发的过程中还顺带学了一些其他技能: