0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Wildesbeast 来源:今日头条 作者: 前端达人 2020-02-04 14:03 次阅读

先我们先聊聊目前主流手机操作系统,目前就两大阵营:安卓与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 编程。今天的问题解答就分享到这里,如果你有其它的补充方案,欢迎到留言区交流。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2903

    浏览量

    102875
  • APP
    APP
    +关注

    关注

    33

    文章

    1518

    浏览量

    71567
  • 编程语言
    +关注

    关注

    9

    文章

    1874

    浏览量

    32925
收藏 人收藏

    评论

    相关推荐

    plc编程语言与c语言的联系 c语言和PLC有什么区别

    PLC编程语言与C语言的联系 PLC(可编程逻辑控制器)是一种针对自动化控制系统的特殊计算机。PLC编程
    的头像 发表于 02-05 14:21 610次阅读

    Go编程语言-你应该知道的一切

    Go 编程语言的故事始于 Google,当时三位工程师 Robert Griesemer、Rob Pike 和 Ken Thompson 对 C++ 的复杂性以及缺乏提供高效编译和执行的简单语言感到厌倦。
    的头像 发表于 12-11 17:37 270次阅读

    脚本语言编程语言的区别

    脚本语言编程语言是计算机语言的两个主要分类。尽管两者都是用于编写计算机程序的工具,但它们在设计和运行方式上存在一些显著的区别。下面将详细探讨脚本
    的头像 发表于 11-22 14:33 1126次阅读

    Python编程语言属于什么语言

    Python编程语言属于高级编程语言中的一种。它是一种通用、面向对象、解释型编程语言。Pytho
    的头像 发表于 11-22 14:31 576次阅读

    什么是C语言?单片机有什么特点?为什么要用C语言编程

    随着技术的发展,电子产品越来越多,方便了我们的日常生活,大多数电子产品上都有单片机,而单片机是通过执行软件逻辑来实现功能的。而单片机编程最合适的编程语言是汇编语言,但是最常用、最普及的
    的头像 发表于 11-21 10:06 604次阅读
    什么是C<b class='flag-5'>语言</b>?单片机有什么特点?为什么要用C<b class='flag-5'>语言</b><b class='flag-5'>编程</b>?

    基于Rust开发的编程语言

    Move 是一门由 Rust 语言开发的一门面向资产的编程语言,最早由 Facebook (现 Meta )投入大量的人力物力开发,用于 Libra (现 Dime )项目,处理全球性大规模支付系统的
    的头像 发表于 11-17 12:30 318次阅读

    浅谈PLC 5种标准的编程语言

    IEC 1131-3的编程语言是IEC工作组 对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业控制系统的国际编程
    发表于 11-15 11:14 346次阅读
    浅谈PLC 5种标准的<b class='flag-5'>编程</b><b class='flag-5'>语言</b>

    KT6368A用SPP发送1K APP显示是3个包或者4个包,理论应该是两个包吧

    MCU通过KT6368A用SPP透传发送1K左右的数据,手机APP显示是3个包或者4个包,但是我看手册说最大一个包是512,理论应该是两个包吧,请问这正常吗?
    的头像 发表于 11-13 11:36 232次阅读
    KT6368A用SPP发送1K <b class='flag-5'>APP</b>显示是3个包或者4个包,理论<b class='flag-5'>应该</b>是两个包吧

    谈谈那些逐渐消失的编程语言

    、Java和JavaScript,目前占据主导地位,而其他一些更为特定领域的语言似乎逐渐失宠。 因为变化是唯一不变的,所以你应该远离以下这九种编程语言,它们可能不会在短期内成为主要角色
    发表于 09-27 11:03 254次阅读

    五种支持plc编程语言有哪些

    在PLC控制系统设计中,不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,所以不但对PLC的硬件性能了解外,也要了解PLC对编程语言
    发表于 08-31 14:54 644次阅读
    五种支持plc<b class='flag-5'>编程</b>的<b class='flag-5'>语言</b>有哪些

    PLC编程语言的特点

    PLC的编程语言与一般计算机语言相比,具有明显的特点,它既不同于高级语言,也不同与一般的汇编语言,它既要满足易于编写,又要满足易于调试的要求
    的头像 发表于 07-04 17:13 525次阅读

    西门子PLC编程语言介绍

    PLC目前有5种标准的编程语言,包括图形化编程语言和文本化编程语言
    发表于 06-29 16:00 845次阅读
    西门子PLC<b class='flag-5'>编程</b><b class='flag-5'>语言</b>介绍

    基于PASCAL的高级编程语言——SCL编程语言

    根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST
    发表于 06-20 10:20 968次阅读
    基于PASCAL的高级<b class='flag-5'>编程</b><b class='flag-5'>语言</b>——SCL<b class='flag-5'>编程</b><b class='flag-5'>语言</b>

    PLC各种编程语言特点

    编程语言种类很多,各有各的优势,语句表和指令表类似,是编程语言的一种,在PLC中应用比较普遍,也是一种高级编程
    发表于 04-20 09:55 0次下载
    PLC各种<b class='flag-5'>编程</b><b class='flag-5'>语言</b>特点

    西门子PLC编程语言介绍

    PLC目前有5种标准的编程语言,包括图形化编程语言和文本化编程语言
    的头像 发表于 04-15 14:13 1233次阅读