NekoAnime 技术栈一览:Kotlin 与 Jetpack Compose 的现代安卓实践
即使不写代码,了解一款应用的 underneath 技术栈也有实际价值——它决定了应用的流畅度上限、体积大小和可维护性。NekoAnime 的技术选型在 README 里交代得相当完整,这一页用平实的语言拆给你看。
界面层:Jetpack Compose
应用的全部界面用 Jetpack Compose 构建——谷歌主推的声明式 UI 框架。对用户的体感意义:界面动画顺滑、状态切换自然(比如 v0.5.1 修的「导航不丢失页面状态」,正是 Compose 架构下的状态管理优化)。
UI 层的组件选型:
- Material 3:谷歌最新的设计语言组件库,界面的观感基础;
- Media 3:视频播放器内核,播放页的一切能力(手势、倍速、线路)都构建在它之上;
- Coil:图片异步加载,封面图的流畅滚动靠它;
- Lottie:矢量动画,界面里那些细腻的小动效。
架构:教科书式的三层分离
README 明确说参考了官方架构指南并借鉴谷歌示例项目 nowinandroid 的模块设计:UI Layer、Domain Layer、Data Layer 三层分离。
翻译成普通话:界面负责显示、业务逻辑居中调度、数据获取独立成层——层与层边界清晰。对用户的实际意义是改起来不容易牵一发动全身,这也是这个个人项目能把 45 个 Issue 处理得有条不紊的工程基础。
数据层:离线优先的完整工具箱
数据层的技术选型最能体现「追番应用」的特质:
- Retrofit:网络请求,负责与数据源通信;
- jsoup:HTML 解析器——从资源站网页里解析出番剧信息的关键工具(呼应数据源原理);
- Room:本地数据库——追番列表、观看历史的家;
- DataStore:键值存储——应用设置(横竖屏开关等)的容身处;
- store5:「离线优先」解决方案——先读本地缓存再联网刷新的策略,就是首页秒开、断网可看的幕后功臣;
- kotlinx-serialization:数据序列化。
依赖注入用 Hilt,异步数据流用 Kotlin Flow——都是当前安卓社区的成熟主流方案。
体积与性能的技术解释
10.6MB 的安装包、轻快的运行表现不是魔法:Compose 相比传统视图体系更精简,依赖选型全是「小而美」的库,v0.2.0 还专门做过一轮「缩减安装包体积(50% ↓)」的优化。技术选型克制,是它「轻」的根源。
对选型者的参考价值
如果你想学习现代安卓开发,这个仓库是个不错的教科书级样本:官方推荐的架构、主流的库、清晰的分层,加上个人项目特有的完整可读性——自己动手编译一套的体验见下一页。