制作手机上的APP应该使用什么编程语言

先我们先聊聊目前主流手机操作系统,目前就两大阵营:安卓与ios。在我国,从市场份额来说安卓的占有率是极高的高达80%,而苹果才20%。(2018年数据)。现在开发手机app的技术现在主要分为原生开发、前端的方式开发、原生和前端的混合方式,还有目前新出的flutter技术的开发方式,接下来我们来详细聊聊对应的相关技术。
原生方式开发
如果你选择安卓阵营,目前可供你选择的语言有 java 和 kotlin,如果你是安卓的初学者没有 java 相关的编程经验,建议你先从 java 开始学起。如果你是有 java 编程经验的开发人员,你可以开始学 kotlin。接下来我来分别进行解释为什么要这样选择:
1、没有编程经验的初学者,建议先从java语言开始
如果你没有编程经验,建议你还是首选java,除了android 系统开发app 开始就是首选 java 的原因外,还有如下几个原因:
java 可以为你打下编程思维的基础,如果没有语言基础,上来就编 app 很难。
java 相关的中文资料多,有什么问题,你都可以通过搜索引擎找到答案。
java 的社区社区成熟、还有对应用 java 编写的安卓库比较多,你可以很方便的拿来就用。
相对kotlin来说,还是一种新的编程语言,很多开源项目还未成熟,并且学习资源也相对稀少。这样就意味着你有比较多的坑要踩,对于初学者有着太多的挑战。
2、有 java 编程经验的,建议开始学kotlin
安卓最开始的官方首选语言推荐java,自从随着甲骨文对java有着相应的版权,安卓官网为了摆脱这个束缚,就开始转变编程语言,建议使用 kotlin。对java开发人员来说,建议开始学习kotlin,因为它确实提高了开发效率。有些以前几十行的 java 代码,如过换成了 kotlin 有可能几行就实现了。facebook, squre等公司曾经公开已经切到看kotlin开发,国内使用 java 进行开发还需要持续一段时间,目前还没有听说哪个应用是完全用 kotlin 开发的。但是不代表未来不会,毕竟安卓官方正在不遗余力的进行推,代表着未来的方向,因此作为有 java 编程基础的人,应该从现在开始学习 kotlin,学习这个你应该提前有个心理准备,相关的学习资源比较少,插件少,大部分资料是外文的,你还有许多坑要去踩。
如果你选择 ios 开发阵营,你可以选择的语言同样面临着两种,一个是一开始就使用的object-c 和 现在官方推荐的 swift。由于历史遗留的问题,还有比较多用 object-c开发的app,因此我建议在学好object-c的基础上,再开始学习 swift。因为在未来的版本中,官方会越来越向 swift 进行倾斜。既然是这样,你又不得不去学习 swift,同时又不能丢弃object-c,还有一点需要提及到在swift的项目中你还可以使用 object-c,使用两者语言可以混合进行开发。如果时间精力不允许的情况,在使用 object-c 开发的项目中,如果有新的功能,你可以使用 swift 语言,等有时间了,条件允许的情况下,在逐步把以前的功能替换成 swift。
混合开发
目前也比较流行混合开发,由于原生开发的成本比较高,需要有两个团队进行维护,同时修改一个功能,都需要进行打包发布提交审核,为了节省成本提高开发速度,会将精彩有变化的通用的功能,使用内嵌网页的形式进行开发,这时用到的就是前端相关的开发知识,比如你可以使用前端相关的开发框架 vue、react、angular 其中的任意一种,或者不用任何前端框架。如果采用这种方式开发,你就要去学前端相关的知识:html,css,javascript等,学完这些还要去学习我刚才提及的三种框架之一。
完全用前端技术开发
随着前端技术的发展,现在有一种流行的“大前端”的说法,你可以用前端做很多的事情,除了用前端可以开发网站,我们可以用来做后端(node),桌面软件、手机端软件、vr 、网页游戏等等。这里我们来聊聊完全用前端的开发方式,刚才我们说的混合开发其实使用到的的类似webview的组件访问网页而已,之所以选择这种方式开发,一是实现了跨平台,同时又节省了开发和管理成本,用前端的方式编写一套代码,就可以多平台部署。使用这种方式的优势就是开发快,成本低,缺点就是牺牲了原生的性能。
这里我说的完全用前端开发有比较多的解决方案:cordova、uni-app、weex, ionic、react native、taro等方式,由于太多我就不一一介绍了,如果你倾向使用vue框架,建议使用 uni-app,如果你前端倾向学习 react 框架,你就选择 react native。 接下来我着重介绍下uni-app 和 react native(如果你感兴趣我刚才提及的技术,建议去搜索引擎查找下)。
1、uni-app
uni-app是一个使用vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到的ios,机器人,h5,以及各种小程序(微信/支付宝/百度/头条/ qq /钉钉)等多个平台。据他们说拥有350万开发者用户,旗下uni-app有5万+案例,600 +插件。如果你选择使用这个方式开发开发app,那建议你去学习 vue这个框架 和 前端相关的基础知识。以下这张图罗列了uni-app官网对其框架的详细解释图,如下所示:
2、react native
react native (简称rn)是facebook于2015年4月开源的跨平台移动应用开发框架,是facebook早先开源的js框架 react 在原生移动应用平台的衍生产物,目前支持ios和安卓两大平台。rn使用javascript语言,类似于 html 的jsx,以及css来开发移动应用,因此熟悉web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。
因此你想使用这种方法进行开发app,你就要去学习 react 和前端相关的基础知识。
flutter
flutter是谷歌的移动ui框架,可以快速在ios和android上构建高质量的原生用户界面。 flutter可以与现有的代码一起工作。在全世界,flutter正在被越来越多的开发者和组织使用,并且flutter是完全免费、开源的。由于 flutter 目前还比较新,使用的语言是 dart,如果你选择这种开发方式做app,意味着你要面临中文学习资料少,有更多坑要踩,下面是一张 flutter 与 react native 的对比介绍,要不要选择这种方式,你可以考虑下,从这张图中,貌似flutter的性能会更好。
小节
关于想进入开发手机app的同学们,如果你或者公司对性能要求很高,又不考虑开发成本,建议选择原生开发,如果选择选择原生开发,你需要确定是做 ios 开发 还是 安卓 开发,做安卓开发你可以选择 java 或者 kotlin,选择 ios 开发 你要学习 object-c 和 swift 。如果你选择混合开发和完全用前端技术开发,你需要学习前端相关的基础知识和相关框架。如果你想用时髦比较前卫的技术实现跨平台开发,你需要学习flutter相关的 dart 编程。今天的问题解答就分享到这里,如果你有其它的补充方案,欢迎到留言区交流。

国星光电车间改造项目圆满完成
滨州只是中国地级市数字化转型的缩影
dfrobotLED直流电流表50A红色简介
传真机的便利设施
工业环境适用的LED照明方案
制作手机上的APP应该使用什么编程语言
DXOMARK推出手机音频评分系统,华为Mate 20 X位于第一轮测试的首位
新唐科技W584A075介绍
眼纹识别/眼球识别/虹膜识别差哪儿了
镁合金焊接缺陷的产生及防止
目前喷涂机器人的应用现状是怎样的
全球半导体最大消费市场,发展本土半导体行业势在必行
移动设备多功能化催生芯片整合天线
什么是智能制造_智能制造5大关键技术详解
关于ADC的噪声系数问题
死磕三星S8!LG G6全面曝光 性能彪悍 外观欠讲究
基于单片机的智能小区监控系统的设计
为什么对与工程师来说经常会有明显的效率差异?
珞石科技如何成为全球轻型机器人的市场领导者?
联发科发布最新4K智能电视芯片MT9638 现已量产