在使用了一段时间Reactjs后,渐渐感觉到它的局限性。Reactjs的理想是好的:只学一次,通吃Web端和移动端。也大大改进了Web端开发的杂货铺状态(html,css,js以及各类自定义语言混合),采用Reactjs让前端javascript代码如同java,C#代码一样整洁、漂亮,我喜欢!说到这一点,不免吐槽一下angular,对于angular,我了解不多,但是从我看到它的长相的第一眼就不爱了,依旧的html,js代码纷飞,不喜欢!Reactjs使得html,javascript融合的如此漂亮是我眼前一亮的。
尽管我认为Reactjs前途远大,但是为什么个人认为作为Reactjs应该学习Android开发呢?主要有以下几点原因:
1.Reactjs的实现思路与Android,IOS相去甚远
Reactjs的实现思路与方式延续了Web开发方式,即使在Reactnative中也采用了这种方式。在实现Web应用自然没有什么不便,但是在ReactNative中就总显得格格不入。说到底移动端端实现方式则更像是桌面应用的实现方式(仅仅只对Android的框架和实现方式有个概览,可能存在偏差,决定深入学习了),Android也采用的是java语言,大量的篇幅是组件各自生命周期的管理,组件间的通讯,是一种与VC,VB,C#类似的方式。ReactNative还处在初始阶段,要实现这种编程方式的无缝转换,还需要很长的路要走。
2.ReactNative的功能不足
ReactNative主要面向的移动端,采用的编程方式又于Reactjs一致,导致在移动端端基于通知,服务的等很多功能无法实现,目前还需要借助于调用Native代码实现,如果真要采用ReactNative编写移动端应用,可能不仅仅要学Android了,IOS也是少不了的。
3.Android开发使开发人员对软件开发更加深入
在软件开发过程中,我们常常存在造轮子和使用轮子的争论,存在工作中使用的内容与面试、考试不同的问题。试卷中没有内存,没有算法就不高大上了,然而在实际的工作中却很少考虑这些,硬件的价廉物美,成熟的框架使得我们很少考虑内存优化;众多的三方库让我们几乎不会自己写算法。然而在移动端开发中,目前手机硬件,网络等多因素,使我们又不得不考虑这些了,尽管这些依然大部分已经被框架和Android系统本身做了,但毕竟还是会时不时提醒我们要考虑了,即使每次都要被人装逼班的问Linux内存怎么管的,XX代,XX代的算法,你也有了一些谈资,学习Android开发吧,少年!
4.为什么不选IOS开发
选择什么开发语言作为自己的主修?我的首要原则是:开放。如同微软,.Net是个好平台,可惜微软不是,如果你被微软绑架了,那我只能说:兄弟,放弃吧,不开放的系统是没用前途的。
5.移动端是远方
在软件高速发展的今天,移动端是才远方,姑且不论Reactjs是否很发展壮大,至少web端是会越来越没落的。以后的软件向两极分化了,服务端更佳集中,客户端更加移动化,各类智能终端也会更加发展壮大,选择更加广阔的天地吧。
嗯!开始学习Android,从框架,到组件,到存储、至消息传递.........,走一遍并不难。