Home

Awesome

<p align="center"> PokemonGo <img src='http://cdn.51git.cn/2020-07-15-34.png'></p>

<p align="center"> 神奇宝贝 (PokemonGo) 基于 Jetpack + MVVM + Repository + Paging3 + Kotlin Flow 的实战项目 </p> <p align="center"> 这是一个小型的 App 项目,涉及到技术:Paging3(network + db),Dagger-Hilt,App Startup,DataBinding,Room,Motionlayout,Kotlin Flow,Coil,JProgressView 等等。 </p> <p align="center"> <a title="GitHub Stars" target="_blank" href="https://github.com/hi-dhl/PokemonGo/stargazers"> <img alt="GitHub Stars" src="https://img.shields.io/github/stars/hi-dhl/PokemonGo.svg?label=Stars&style=social"> </a> <a title="GitHub Forks" target="_blank" href="https://github.com/hi-dhl/PokemonGo/network/members"> <img alt="GitHub Forks" src="https://img.shields.io/github/forks/hi-dhl/PokemonGo.svg?label=Forks&style=social"> </a> </p> <p align="center"> <a href="https://github.com/hi-dhl"><img src="https://img.shields.io/badge/GitHub-HiDhl-4BC51D.svg?style=flat"></a> <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/license-Apache2.0-blue.svg?style=flat"></a> <img src="https://img.shields.io/badge/language-kotlin-orange.svg"/> <img src="https://img.shields.io/badge/platform-android-lightgrey.svg"/> </p> <p align="center"> PokemonGo 动态效果图如下所示,如果动图无法查看,请点击这里查看 <a href="http://cdn.51git.cn/2020-07-14-15946978385391.gif"> 动态效果图</a> | <a href="http://img.hi-dhl.com/Pokemon.png"> 静态图</a></p> <p align="center"> <img src="http://img.hi-dhl.com/Pokemon.png"/> </p>

PokemonGo 更新记录

2020-12-05:

2020-09-27:

以上更新对应分析文章:

2020-07-26:

以上更新对应分析文章:

2020-07-23:

以上更新对应分析文章:

2020-07-14:

  1. 自定义 RemoteMediator 实现 network + db 的混合使用 ( RemoteMediator 是 Paging3 当中重要成员 )
  2. 使用 Data Mapper 分离数据源 和 UI
  3. Kotlin Flow 结合 Retrofit2 + Room 的混合使用
  4. Kotlin Flow 与 LiveData 的使用
  5. 使用 Coil 加载图片
  6. 使用 ViewModel、LiveData、DataBinding 协同工作
  7. 使用 Motionlayout 做动画
  8. App Startup 与 Hilt 的使用
  9. ......

关于 PokemonGo 项目分析的文章请查看 神奇宝贝 眼前一亮的 Jetpack + MVVM 极简实战

如果这个仓库对你有帮助,请仓库右上角帮我 star 一下,非常感谢。

项目 PokemonGo 涉及到的技术

以上技术栈对应之前写的技术文章:

如何检查依赖库的版本更新

在项目的根目录下执行以下命令。

./gradlew dependencyUpdates

会在当前目录下生成 build/dependencyUpdates/report.txt 文件,内容如下所示:

The following dependencies have later release versions:
 - androidx.swiperefreshlayout:swiperefreshlayout [1.0.0 -> 1.1.0]
     https://developer.android.com/jetpack/androidx
 - com.squareup.okhttp3:logging-interceptor [3.9.0 -> 4.7.2]
     https://square.github.io/okhttp/
 - junit:junit [4.12 -> 4.13]
     http://junit.org
 - org.koin:koin-android [2.1.5 -> 2.1.6]
 - org.koin:koin-androidx-viewmodel [2.1.5 -> 2.1.6]
 - org.koin:koin-core [2.1.5 -> 2.1.6]

Gradle release-candidate updates:
 - Gradle: [6.1.1 -> 6.5.1]

会列出所有需要更新的依赖库的最新版本,并且 Gradle Versions Plugin 比 AndroidStudio 所支持的更加全面:

MVVM 架构

PokemonGo 基于 MVVM 架构和 Repository 设计模式,如今几乎所有的 Android 开发者至少都听过 MVVM 架构,在谷歌 Android 团队宣布了 Jetpack 的视图模型之后,它已经成为了现代 Android 开发模式最流行的架构之一。

<p align="center"> <img src="http://cdn.51git.cn/2020-07-12-159453363449491.jpg"/> </p>

Jetpack 的视图模型的 MVVM 架构由 View + DataBinding + ViewModel + Model 组成。

TODO

联系我

<img src='http://cdn.51git.cn/2020-10-20-151047.png' width = 400px/>

最后推荐我一直在更新维护的项目和网站:

感谢

中文:

English: