?<—-原生Android何去何从—->?
----By 我承认永不变
一.Android发展方向

1.跨平台开发

科技日益发展,未来的世界,不可估量,在此发表一下我的意见.

虽然很不想承认,但是却不得不承认跨平台开发会成为主流.跨平台应用的优点显而易见,跨平台,轻量级,开发成本低,性能接近原生开发.而相对于原生开发,开发成本高,实现起来比较麻烦,review代码比较痛苦.
从公司角度来想,谁不想请一个工程师就能搞定大部分工作?所以全栈工程师应运而生.
建议:如果为了以后比较方便找工作还是建议去搞跨平台开发,有能力的可以培养自己成为全栈工程师.
下面说一下跨平台开发的主流框架:
个人认为排行榜:react>vue>angular
市场上用vue.js的比较多
(1)react native
Facebook出品,缓存做的好,性能最接近原生.
(2)vue.js
国内大神开发,深受外国欢迎的轻量级框架,容易上手,性能接近原生,阿里基于vue.js出了个weex更加牛逼,可以了解一下.
(3)angular.js

Google官方推荐的js框架,性能相对前面两个框架要差一点,开发的时候注意做缓存性能还是不错的.常用搭配ionic3(移动应用UI库)+angular4(现在好像是angular5了)

2.原生开发

(1)Kotlin
2017年Google宣布把kotlin作为官方开发语言.
Kotlin可以说是主流语言中最年轻的,但在google宣布为官方语言之后发展迅速,估计未来5年内取代java成为主流Android开发语言.

Kotlin的一些优点,kotlin是参照很多语言的特性结合的一种语言,语法上和ios开发的swift语言比较相似,都是弱类型语言.kotlin一样是运行在JVM上的,它能够无缝兼容java代码,也就是说如果一个Android项目是java开发的,转成kotlin开发并不难.kotlin也是一门跨平台开发语言,未来kotlin或许能够用来开发ios应用.
建议:如果喜欢原生开发并且刚开始接触Android开发,可以直接学kotlin,尽管现在kotlin不够完美,但未来趋势就是这样.
(2)Java
java算是编程语言中的大佬了,至今没有任何一门语言能够撼动java前三的位置.
上面说kotlin的优点,在这说一下缺点.
Kotlin不够java成熟,java
se多年用于开发Android应用,市场上已经有非常强大的第三方框架,而kotlin目前强大框架还比不上java,所以目前kotlin还撼动不了java在Android开发的地位(Android开发大军从java转kotlin需要过渡期).
虽然很多小公司为了节省开发成本会去招跨平台开发的来做Android,但是一些大公司依旧会选择java来开发原生Android,或者通过原生+h5的方式开发.
如果你喜欢用java开发Android,那么下面我介绍一些主流框架给你学习.
Butterknife
:一个强大注解框架,可以代替findViewById以及onclick点击事件监听的繁琐工作,还可以通过AS插件一键生成ViewHolder.
RxJava2:一个强大的异步框架,可以代替Handler,Thread等异步操作,优点很多,简洁,响应式编程,链式编程,执行线程随意切换…
初学者学RxJava2可能会比较痛苦,这里附上RxJava的教程,成为Android大神必学:
RxJava教程 <http://gank.io/post/560e15be2dca930e00da1083#toc_1>
Retrofit2
:目前最火的网络框架,常和RxJava2配合使用,Retrofit2是基于OkHttp3的,在学Retrofit2之前请学OkHttp3,其实Retrofit2网络功能是OkHttp3提供的,Retrofit2只是把OkHttp3封装成符合RESTful的设计标准.

RxBus:RxBus并不是一个库,而是使用RxJava实现事件总线的一种思想.当然在github上有封装好的RxBus.如果项目并没有用或者没有打算用RxJava,那么建议你用EventBus,EventBus是为Android优化的发布/订阅事件总线,简化组件之间的通信.
Glide/Fresco
:Glide是Google出品的强大图片库,Fresco是Facebook出品的强大图片库,Glide的人气要更高一点.Fresco可以直接在标签设置圆角,不用考虑图片缓存问题,相对来讲Fresco更容易上手(傻瓜式操作).
Gson/FastJson
:Gson是Google出品的强大处理json数据框架,FastJson是阿里出品的强大处理json数据框架.Gson人气高点,两个json解析框架都容易上手,非常强大.
…还有很多优秀框架就不一一列举了.
介绍四种设计模式框架:
1.MVC(Model-View-Controller)
原生Android开发不去考虑设计模式的话,它本身就是按照MVC设计模式来的.
Model:数据逻辑部分,对数据库,集合等数据操作.
View:视图.就是我们的View布局.
Controller:控制器.MainActivity就是控制器.
Activity和Fragment代码冗长,不方便review.
不推荐使用.
2.MVP(Model-View-Presenter),都是接口
Model:一样是数据逻辑部分
View:自定义View接口,实现View该有的东西.
Presenter:主持者,代替MainActivity的地位,相当于控制器
Presenter是一个中介者,操控Model,回调反馈在View.减轻Activity的工作,解耦Model和View的关系.
适合中小型项目.
3.MVVM(Model-View-ViewModel)
基本上和MVP一样,特点,采用了双向绑定(data-binding),ViewModel可重用性.
缺点:布局加入了数据绑定,view不可复用.
适合大项目.
4.TheMVP(支付宝在用的设计模式),张涛开源
可适用于MVP或者MVVM项目,张涛对于MVP的认识并不一样,他是把Activity和Fragment作为Presenter的.
优点:很优秀,高度解耦,view可复用.适合大项目.
缺点:初学者非常痛苦,难以理解.model不可复用.
有兴趣可以学一下:
张源开源的TheMVP <https://www.kymjs.com/code/2015/11/09/01/>

二.Java还能撑下去吗?


上面有说到,Android开发大军从java转kotlin需要过渡期,所以java目前在Android的地位还是主流的.用java开发Android个人觉得还是不错的,j2se并不算难,用于开发Android比较好理解开发流程,实现起来虽然没有跨平台开发方便,但现有的强大框架可以帮助很多.
Ps:虽然为了节省开发时间不建议重复造轮子,但是不能过分依赖第三方框架,特别是一些自定义view,最好能自己看懂源码并自己能够diy做出来.

三.给迷茫的你

上文分析了跨平台和原生Android开发的各自特点和发展趋势,相信你心中也有了答案.
不过还是出几条发展路线可供参考:

1.为了好找工作:

MEAN框架(MongoDB+express+angular+nodejs)
全栈工程师

2.考虑性能不一定好找工作:

MERN框架(MongoDB+express+react+nodejs)
全栈工程师

3.好找工作:

vue/angular4+ionic3
前端开发

4.喜欢原生Android,未来好找工作:

kotlin
kotlin工程师

5.喜欢用java开发Android(不好找工作):

java
Android工程师

Ps:上文可能有些地方表述不正确,大神请路过.
2018/5/15 1:50:00

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信