当您刚开始进行移动开发时,可能很难选择一个平台。 更糟糕的是,每个平台都有自己的一套语言和工具供您选择。 那你怎么决定呢?
本教程将帮助您选择合适的移动开发平台,以便您可以入门并开始编写应用程序代码。
平台及其市场份额
平台(由移动设备,工具箱和应用程序组成的生态系统)通常由其操作系统(OS)定义。 平台供应商是大型公司,例如Google,Apple,Microsoft等。每个公司都开发了一种操作系统,并已将其许可给设备制造商。 有时,他们自己也可能是设备制造商。 设备制造商在预安装相关操作系统的情况下设计和构建设备(主要是智能手机和平板电脑)。 然后将这些设备出售给消费者(用户)。
由设备制造商甚至平台供应商开发的一些基本应用程序可能会预先安装在设备上。 但是,仅卖方和设备制造商无法满足这些设备用户不断增长的需求。 因此,他们依靠像您这样的“第三方”开发人员来填补供需缺口。
为了支持想要为该平台出售应用程序的开发人员,他们发布了SDK,API和其他工具,以简化应用程序开发。 而且,可以启动官方的“应用商店”,开发者可以在其上发布他们的应用,消费者可以从中浏览和下载它们。 因此,围绕平台构建了整个应用程序生态系统。
目前,由Google提供的Android操作系统在全球市场占有率最高,高达86.1%。 苹果的iOS占有13.7%,位居第二。 其余约0.2%的份额由所有其他供应商共同分享。 这包括Microsoft的Windows Mobile,BlackBerry OS,Tizen OS,Sailfish OS和Ubuntu Touch。
在某些国家/地区,全球构成可能会发生重大变化。 例如,在美国,Android的市场份额为53.4%,iOS的份额为44.5%,与全球市场份额相比有显着差异。 如果您有一个特定的市场,最好针对目标人群进行研究,以找出他们可能使用的平台!
CPU架构
尽管所有这些平台都支持ARM CPU架构,但Android进一步扩展了其支持范围,涵盖了x86和MIPS架构。 Tizen,Sailfish OS和Ubuntu Touch也支持x86架构。 但是,除非您正在编程自定义ROM芯片,否则每个平台支持的CPU架构都不会影响您的选择。
如何选择平台
您对编程语言的熟悉
作为移动应用程序开发人员,您必须编写很多代码。 有某些工具可让您避免在基于文本的代码编辑器中键入内容,例如,Android和iOS都具有用于构建图形用户界面的拖放工具。 但是,这些并不能让您充分使用平台的功能。 要构建复杂的应用程序,您必须学习平台的编程语言。
因此,您可能需要付出一些努力来学习一种新的编程语言或掌握一种已经知道的语言。 所有主要平台都使用具有大型开发者社区的流行编程语言。 因此,请确保您利用这些语言的知识和技能。
如果您是Microsoft Visual Studio .NET的忠实拥护者,将很高兴使用C#开发Windows Mobile应用程序。
要为BlackBerry或Tizen开发,只需学习HTML,CSS和JavaScript。
掌握QML或Python,您就可以开发Sailfish应用了。
如果您喜欢Ubuntu Touch,则应该学习QML或HTML和JavaScript。
新的编程语言不断被提出和推广。 虽然这些新语言是否比旧语言具有更大的优势并不总是很清楚,但最好还是紧跟最新趋势。 随着新语言的引入,某些编程语言可能会过时(例如,Swift替代了Objective-C),而某些旧语言可能会重新出现,具有全新的用途。
原生与混合开发
在开发智能手机应用程序时,有两种选择:本机应用程序和混合应用程序。 在一个平台上发布的本机应用程序将无法在另一个平台上运行。 例如,您不能在iOS设备上安装Android本机应用程序。 您需要为此发布单独的特定于平台的版本,该版本使用适当的开发和部署工具针对iOS进行构建。 相比之下,混合应用程序是使用HTML,CSS和JavaScript开发并包装在本机应用程序外壳(或UI)中的网络应用程序。
本机应用程序的优点在于,它们具有卓越的性能,并且可以充分利用设备的功能。 而且,它们更安全。 缺点是开发人员必须为每个平台维护多个代码库。 由于混合应用仅具有对本机API的中等访问权限,因此它们的性能和用户体验(UX)级别有些滞后。 混合应用程序的主要优点是,开发人员可以使用相同的代码库为多个平台发布。
本机跨平台应用程序
最近,出现了一批新的移动跨平台框架。 它们结合了本机应用程序和混合应用程序的最佳功能-它们既快速又轻便,可以访问本机设备的全部功能,但是它们还使用JavaScript和其他网络语言进行了编码,因此可以在多个应用程序之间重用许多代码平台。
您的学习能力
如果您是一名快速学习者,那么您可以轻松掌握本机开发轨道。 您需要了解基本的编程概念,例如面向对象的编程(OOP),并且必须学习熟悉特定于平台的技术概念,例如Android中的应用程序生命周期管理。
首先,只需从平台供应商处下载必要的工具和SDK,然后尝试一下。 这些工具大多数都是开源的,并且捆绑了许多代码示例和应用模板,以帮助您快速入门。
如果您是Web开发人员并且想探索智能手机的开发空间,那么从混合或跨平台本机开发开始可能会更舒适。
系统设置和轻松编码
要考虑的另一个因素是OS平台,有时还需要开发计算机的硬件设置。
如果要开发本机iOS应用程序,则无法在普通Windows计算机上进行。 您需要一台具有macOS的Mac和Xcode(用于iOS开发的Apple的IDE)。 同样,Ubuntu Touch本机应用最好由Ubuntu计算机开发。 尽管Android SDK可在所有三个主要的桌面OS平台上运行,但始终建议在开始开发之前检查系统是否符合建议的规格。
App Store政策和收益分享
Google和Apple的应用商店均收取象征性的注册费。 尽管两家公司提供相同的收益共享百分比(目前为销售价格的70%),但从理论上讲,开发人员可以通过在Apple上发布来获得更多收益。 这是因为应用程序的数量相对较少,并且类似应用程序之间的竞争较少。 另外,您需要注意,并非所有地理位置都允许在Google Play商店上发布付费应用。 因此,您必须预先考虑一种通过应用获利的方法。
您的目标受众
这是一个重要因素,因为应用程序的成功取决于您与受众群体的互动方式或解决他们的问题的效率。 尽管大多数智能手机用户倾向于年轻一代,但有些智能手机应用程序专门针对老年人和残疾人。 由于平台市场份额随国家和年龄组的变化而变化,因此,如果要定位特定的受众特征,则最好研究平台的受众特征。
平台支持的设备功能
并非所有设备都支持平台的所有功能。 一方面,存在高端设备,通常被称为“旗舰产品”,支持大多数功能。 另一方面,有低成本的入门级设备,仅支持基本功能。 然后,介于两者之间。
因此,在开发应用程序时,您需要具有很高的选择性并做出明智的决定。 开发仅需要高端设备支持的功能的应用程序可能会严重影响应用程序的销售。
另一方面,如果您可以为高级设备的用户提供其他地方没有的应用程序功能,则这可能是一个机会。
结论
在本文中,我研究了所有主要的移动开发平台,并试图为您提供一些指导,以帮助您在这两个平台之间进行选择。 应用这些见解必将帮助您在应用开发业务中取得成功。
翻译自: https://code.tutsplus.com/articles/mobile-development-platforms--cms-28944