我的第一版WanAndroid发布了

点击上方的终端研发部右上角选择设为星标

每日早9点半,技术文章准时送上

公众号后台回复学习”,获取作者独家秘制精品资料

 作者:zskingking
链接:
https://www.jianshu.com/p/60eefed7870f

1.背景

其实在我入行的时候就一直想做一款自己平时能把玩的App,之前也想过要不要做一个本地的,但是局限性太大激不起来自己的动力,联网的自己又不会写后端所以就一直拖着。年前Github上瞎逛发现了一个好玩的App WanAndroid,仔细一瞅提供的还有 API,再仔细一瞅原来是鸿洋大大发起的甚是激动,于是拍了拍满是灰尘的小目标,历时半个月(也可能是20天)有了现在的第一版WanAndroid。

主色调目前为红色,后续的版本会加入切换主题功能。

文章底部有APK二维码以及github地址

2.效果图

整个App基于Material Design风格,超级简洁的界面极具沉浸式的体验。


3.功能

首页包含五个Tab

  • 首页: 可预览最新最热的技术文章,对喜欢的文章可做收藏操作。

  • 项目: 包含完整原生项目、跨平台项目,也有动画、网络等Demo。

  • 广场: 目前包含两个模块,分别是体系、导航,可快速定位知识点。

  • 公众号: 可实时查看Android领域知名度较高的博主公众号。

  • 我的: 可查看排明、收藏、我的文章以及发布文章。

具体功能可下载Apk或者clone项目自我体验,对于一个技术人来说我觉得还是挺实用的。

4应用技术

4.1语言

整个App全部基于Kotlin开发

4.2 架构模式 MVP

Model

作者网络请求使用的是Retrofit+RxJava,再此基础下作者又封装了HttpDefaultObserver,
可根据服务器返回数据的结构统一脱壳、解析以及错误判断,可作为所有界面的Model层,所以网络请求方面没有单独去写一个具体的Model出来。

View

定义了两个基类BaseActivity、BaseFragment以及LazyFragment(继承自BaseFragment),统一处理跳转逻辑
以及通过Lifecycle与Presenter进行绑定,并且施加统一沉浸式效果。

Presenter

所有Presenter都继承自BasePresenter,生命周期与View层同步,在基类中统一管理RxJava生命周期。

其实最初是想直接用jetpack开发,但作者还是想按照自己的想法搭建一套MVP吗,但是jetpack版以及Flutter版WanAndroid后续都会逐个推出,敬请期待。

4.3用到的第三方库如下

  • rxjava

  • retrofit(对网络层做了二次封装,将服务端数据脱壳,统一处理错误信息)

  • glide

  • SmartRefreshLayout

  • eventbus

  • avi:library

  • BaseRecyclerViewAdapterHelper

  • greendao

  • MagicIndicator

  • easypermissions

  • LabelsView

5.总结

麻雀虽小,五脏俱全,虽然项目很简单,但内部代码以及整个架构我觉得还是具备参考价值的,附上github,让我们共同进步。

也可直接扫码下载apk。apk目前托管在码云上,所以扫描二维码可能需要登录。

最后再次感谢鸿洋大大提供的API,以及阿里巴巴矢量图&花瓣网提供的图标和UI设计。

阅读更多

为什么代码规范要求SQL语句不要过多的join?

Nginx为什么快到根本停不下来?

4月的技术面试,如何准备?我从面试官给你说

面经:通过五轮面试斩获offer的阿里实习生亲述!

五年老android,我为什么要转后端?

面试官:你的SQL一般有几个join?

通过五轮阿里面试,阿里实习生亲述面试经历!

相信自己,没有做不到的,只有想不到的

在这里获得的不仅仅是技术!

喜欢就给个“在看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章