其实在我入行的时候就一直想做一款自己平时能把玩的App,之前也想过要不要做一个本地的,但是局限性太大激不起来自己的动力,联网的自己又不会写后端所以就一直拖着。年前Github上瞎逛发现了一个好玩的App WanAndroid
,仔细一瞅提供的还有 API
,再仔细一瞅原来是鸿洋
大大发起的甚是激动,拍拍我那满是灰尘的小目标,历时半个月(也可能是20天)有了现在的第一版WanAndroid
。
主色调目前为红色,后续的版本会加入切换主题功能。
文章底部有APK二维码以及github地址
整个App基于Material Design风格,超级简洁的界面极具沉浸式的体验。
首页包含五个Tab
- 首页: 可预览最新最热的技术文章,对喜欢的文章可做收藏操作。
- 项目: 包含完整原生项目、跨平台项目,也有动画、网络等Demo。
- 广场: 目前包含两个模块,分别是体系、导航,可快速定位知识点。
- 公众号: 可实时查看Android领域知名度较高的博主公众号。
- 我的: 可查看排明、收藏、我的文章以及发布文章。
具体功能可下载Apk或者clone项目自我体验,对于一个技术人来说我觉得还是挺实用的。
整个App全部基于Kotlin开发
作者网络请求使用的是Retrofit+RxJava,再此基础下作者又封装了HttpDefaultObserver, 可根据服务器返回数据的结构统一脱壳、解析以及错误判断,可作为所有界面的Model层,所以网络请求方面没有单独去写一个具体的Model出来。
定义了两个基类BaseActivity、BaseFragment以及LazyFragment(继承自BaseFragment),统一处理跳转逻辑 以及通过Lifecycle与Presenter进行绑定,并且施加统一沉浸式效果。
所有Presenter都继承自BasePresenter,生命周期与View层同步,在基类中统一管理RxJava生命周期。
其实最初是想直接用jetpack开发,但作者还是想按照自己的想法搭建一套MVP吗,但是jetpack版以及Flutter版WanAndroid
后续都会逐个推出,敬请期待。
- rxjava
- retrofit(对网络层做了二次封装,将服务端数据脱壳,统一处理错误信息)
- glide
- SmartRefreshLayout
- eventbus
- avi:library
- BaseRecyclerViewAdapterHelper
- greendao
- MagicIndicator
- easypermissions
- LabelsView
麻雀虽小,五脏俱全,虽然项目很简单,但内部代码以及整个架构我觉得还是具备参考价值的,附上github,让我们共同进步。
也可直接扫码下载apk。apk目前托管在码云上,所以扫描二维码可能需要登录。
最后再次感谢鸿洋
大大提供的API,以及阿里巴巴矢量图&花瓣网提供的图标和UI设计。