Pokedex 是一个基于现代 Android 应用程序技术栈和 MVVM 架构的小型演示应用程序。这个项目特别关注实现依赖注入的新库 Hilt。还从网络获取数据并通过存储库模式将持久数据集成到数据库中。
技术栈和开源库
- 最低 SDK 级别 21
- 基于Kotlin,用于异步的Coroutines + Flow。
- 用于依赖注入的Hilt。
-
JetPack
- 生命周期 - 当生命周期状态改变时处理观察数据。
- ViewModel - UI 相关数据持有者,生命周期感知。
- Room Persistence - 使用抽象层构建数据库。
-
Architecture
- MVVM 架构(视图 - 数据绑定 - 视图模型 - 模型)
- Bindables - Android 数据绑定工具包,用于通知 UI 层的数据更改。
- 存储库模式
- Retrofit2 & OkHttp3 - 构建 REST API 和分页网络数据。
- Sandwich - 构建轻量级的 http API 响应并处理错误响应。
- Moshi - 适用于 Kotlin 和 Java 的现代 JSON 库。
- Glide , GlidePalette - 加载图像。
- TransformationLayout - 实现变换运动动画。
- WhatIf - 更流畅地检查可空对象和空集合。
- Bundler - 优雅地插入和检索值的 Android Intent & Bundle 扩展.
- Timber - logging
- Material-Components - 材料设计组件,如波纹动画、cardView。
-
自定义视图
- Rainbow - 一种为 Android 应用渐变和着色的简单方法。
- AndroidRibbon - 一种在 Android 上实现具有闪烁效果的漂亮丝带的简单方法。
- ProgressView - 一个优雅而灵活的 ProgressView,完全可定制动画。
架构图: