看Android的发展历程-谈一下当下最合适的架构

两年后我对Android架构的思考

接着上面的讲

上次我们讲到一个好的架构有哪些优点,当然好的架构肯定还有其他方面的优势,我只是表达了自己的一些观点,有问题欢迎反驳,我们一起讨论。下面我们来看看当前版本的Android架构,如何做到最合适,也不一定是最合适,但大方向肯定要正确。我们先看看架构的历程。

Android架构演进

MVC > MVP > MVVM

我们先回顾一下google为我们做了什么,一开始我们接触android,大家都在用MVC,甚至可以说没有架构,而且那个时候app是真的简单,但随着不断的迭代,问题越来越多,google也发现了这个问题,于是github开源了MVP架构的示例,教我们如何整合框架,如何在架构设计上保证业务的发展需求,再到现在主推的MVVM,其实不难发现一个共性,WEB端大家都知道吧,你看现在最火的React、Vue,不都是MVVM的架构吗(有人说不是,有人说是,这里不多解释,我们不应该纠结是不是,应该理解M-V 、 V-M 是数据绑定UI,无非是单向还是双向的,都属于一种理念吧,理解就行。)

原生 > React Native > Flutter

一个好的架构只是MVC到MVVM吗?我不这么认为,从一开始我们接触到原生的Android开发,到后来大火的React Native,我们16年还专门集成了React Native模块,但做了几个迭代后放弃了,我们发现为了适配Android、Ios 也花费了很多时间,倒不如用原生做的好用。目前最火的Flutter,也是Google主推的跨平台框架,而且我们现在就在C端项目中集成了,效果还不错,虽然也是有很多问题,但总体来看比React Native 要好,还有一点Google内部正在开发的另一个操作系统Fuchsia的UI layer采用的是Flutter,也就是说Flutter天然可以支持Android、IOS以及未来的Fuchsia。在大前端方向,对于跨平台开发中一直在不断迭代中寻找更好、更优的解决方案,目前来看Flutter还是更有优势

Java > Kotlin,Dart

来说说语言,你说语言属于架构吗?我也不知道,但这是我架构的时候考虑的一个方向,语言是我们组织架构最基础的单元,kotlin的普及,应该不仅仅是google认为语言不错,让我们广大开发者使用,其实这里面涉及了很多东西,我们知道最新的android引用的是open jdk,前几年的官司打个不停,付出了不少人力财力,这肯定不是我们还要考虑的,但有一点可以肯定,kotlin语言确实是个趋势,因为他有更合理的设计,更安全的性能表现,更加简洁的代码,当然你可以用java写android写到老,我也不认为你用kotlin写就一定比java写的好,看个人选择吧。再说说Dart,这个我就有点不理解,为啥Flutter一定要用Dart写,好像Google工程师这么回答:说Dart就在隔壁啊,好沟通。哈哈。

小总结

通过上面的闲扯,我们基本已经有了架构的雏形了吧

  1. MVVM + 原生 + Kotlin
  2. MVVM + 原生、Flutter + Kotlin、Dart
    等等..
    自己组合吧,我目前选择第二种,相信很多人的项目都已经是这样了。那么接下来我们就要实现这样的架构,架子有了,就该塞东西了,这样就显得饱满一些。

如何实现一个基础MVVM

architecture-samples

这里肯定想到Android Jetpack,2018年谷歌I/O 发布了一系列辅助android开发者的实用工具,只有你想不到,没有它做不到的,上面就是谷歌官方给的示例,学习起来很简单,但对于大多数人是不是更喜欢我们国内写的博客,这里我就不啰嗦了,我再实现一遍MVVM其实也跟他们没啥区别,我贴一个,你慢慢看。一个美团的作者,不错哦,请看他的文章。
项目:https://github.com/Kelin-Hong/MVVMLight
文章: 如何构建Android MVVM 应用框架
工作这么多年,经验告诉我,一切从简设计,不要一开始就搞那么复杂,因为我们不确定你现在做的东西会在什么时候直接被抛弃,当然你也要有个预估,看项目的大小决定,适可而止。谈对象都知道,不是越大越好,而是合适最好,哈哈,你肯定想污了,我不敢看。

如何集成Flutter

Add-Flutter-to-existing-apps

到目前为止,应该会有很多人的项目都在集成Flutter了,特别是大厂,他们早就跟进了,我这有一个咸鱼Flutter最佳实践,有需要的私聊我哦,我发给你。
博客的话请看:flutter

结语

从Android的架构演进,不难看出未来的世界肯定是大前端的,所谓的大前端也许是大佬们一个概念,但从这几年好多大统一的技术出现,感觉未来不远,也许就是明天,在这奉劝各位读者,提升自己就在现在,JS、Dart、Java、Kotlin、Python等等吧,T型人才未来才是互联网的中流砥柱,不光要学好android,也要横行发展哦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260