转载请标明出处:http://www.jianshu.com/p/7baf6a68982e
本文出自:Jlanglang
前言:
前段时间用组件化开发了一个项目(2个人,90多个页面,4个模块,差不多20天写完),分享下心得.
几个问题:
- 什么是组件化
- 组件化怎么用
- 是不是能提高开发速度
- 组件化会碰到的一些问题
一.什么是组件化
1.从业务上来看
比如:电商app
1.进店(登陆注册)
2.看商品(商品展示)
3.选商品(购物车)
4.购物发票,电话预定(订单信息)
5.给钱(支付)
一个业务对应一个组件.
不管哪个业务逻辑发生变化.只需要修改其中一个就行.
有人会说,我不用组件化也是这样啊.
那我这样说,比如把上面5个业务看成5个文案.
如果写成一个文案.(没有组件化).改其中一个业务的文案时,是不是需要从整个文案里去找.
如果每个业务的文案,都单独写成一份.最后放到一起.是不是修改起来就简单了.
组件化开发是把文案夹在一起.普通开发是把文案订在一起.
2.从开发的角度
来张图比较直观:
1.把第三方库分类进行封装.做成基础lib库
2.把每个组件都需要的,通用的lib进行整合
做成framework,这个framework其实也是一个lib
3.每个组件在framework的基础上进行开发.
4.各个组件开发完成后将所有组件整合成app.(可以弄一个空壳module,也可以把某一个module当主module)
觉得的很复杂,很难理解吗?把图换一下
同样的道理放在安卓系统结构上也适用.
二.组件化怎么用:
组件化gradle的配置,在这就不说,这类文章太多了
传送门:Android 组件化开发详解
三. 是不是能提高开发速度
很多人觉得,没必要弄,这么多配置啥的,多浪费时间.多麻烦
这里总结一下:
1.当你要开发的app页面数超过50,业务模块大于2个时,最好考虑用组件化开发.即使你是一个人
2.有了第一次,第二次就快了.并且对于架构和业务的理解会提升.
3.分锅清楚
4.不用担心别人写的代码影响你的心情.
5.维护容易.某个模块写的不好,重写也不难
6.即使一个项目出现:组件一mvc,组件二mvp,组件三mvvm这种情况,也能正常开发,代码不乱.(真这样老大就要祭天了)
7.lib库越来越丰富.开发更简单.新项目直接拿lib或者直接拿某一组件开始开发,省时省力.而不是去copy代码了.
四. 组件化会碰到的一些问题
1.首先,你需要准备几个开发库.在一些开源库的基础上再封装.
2.最好不要使用butterknife.虽然最新的配置一下也能用.
3.AndroidManifest,都要写好activity注册.不管是debug目录,还是release目录
4.library模式下,不能有applacitonId.会报错
5.一些定制性的操作,放到framework层做处理.而不是写死在lib层.
6.后期当lib库封装成熟后,可以做成私有的在线依赖库.
就这些了,想到什么以后再补充.
最后奉上本人的组件库开源地址:
mvpDemo
目前网络层(lib-network-rx-retrofit)和base层(lib-mvpbase-appcompat)封装的比较完善.其他的会后续补上
具体module例子没什么时间写.主要看看framework和lib吧= =
交流群:493180098,这是个很少吹水,交流学习的群.
APP开发维护咨询群 : 492685472 ,承接APP迭代.开发维护.咨询业务,付费快速解决问题.