![](https://i-blog.csdnimg.cn/blog_migrate/4470f20b264306f797e2b790679822f2.png)
大家好……本文是我上一篇文章“ 成为Web开发人员的路线图 ”的第二阶段。 在这里,我们讨论了开发人员成为专家Web开发人员可以采取的三种方法。 希望对某些人有帮助。
这次,我们将专注于移动应用程序开发。 随着移动用户数量每年呈指数级增长,这一发展领域已经增长。 已经开发了许多应用程序来帮助用户完成不同的任务。
即使没有意识到,Whatsapp,Facebook和Gmail等应用程序也已成为我们生活中不可或缺的一部分。
好吧,足够的闲聊。 让我们继续...
您选择的3条路径
![](https://i-blog.csdnimg.cn/blog_migrate/cb429fa4ecbfec7b15f2a90e9a6ebe3a.png)
您必须问自己的第一个问题是:“我为什么要开发此应用程序? 它的用例是什么?”。
如果您专注于为单个平台的用户构建应用程序,那么最有效的方法是使用该平台的本机技术进行开发(我们将在后面讨论)。
需要大量硬件访问的应用程序必须针对每个平台分别构建。 例如,如果您试图构建一个应用程序来管理设备的RAM利用率,那么您将不得不为每个平台独立开发。 您将无法使用跨平台开发工具来开发此应用程序。
但是,如果您的移动应用程序充当用户非硬件相关任务的界面,则可以使用跨平台开发工具来提高效率,这将大大减少为每个平台创建应用程序的总开发时间。
有两种类型的用于开发跨平台应用程序的工具: 混合应用程序和本机应用程序。 我们将在稍后讨论。
单平台开发
![](https://i-blog.csdnimg.cn/blog_migrate/832673bc52835fbc75ff32b1ecc47baa.png)
在这里,我们将讨论使用各自的本机工具分别为每个移动操作系统开发应用程序。
毫无疑问,移动设备的主要领先操作系统是: Android ,iOS和Windows Phone。
还有其他操作系统,例如FireFox Mobile和Ubuntu Mobile OS,但它们都没有像前三大巨头那样声名fa起。
根据IDC在2017年的调查,近83.4%的移动用户是Android,15.4%是iOS,0.8%是Windows。
因此,Android用户主导着市场份额,因此大多数开发人员将其技术专注于该平台。 作为Google的开源操作系统,Android OS成为该平台开发的重要因素。 但是,Apple的iOS操作系统因其稳定性和功能良好的硬件而闻名(更不用说价格飞涨的了)。
安卓系统
![](https://i-blog.csdnimg.cn/blog_migrate/e9d015635d6323b628cd1a642791944f.png)
正如我已经说过的,Android在所有移动操作系统中拥有最大的安装基础,因此,为Android开发的应用程序数量超过了其余数量。 Android操作系统使用Linux内核以及一些用C编写的高级API。
但是,Android开发的大多数本机应用程序都使用Java编程,并在Dalvik虚拟机之上运行,使用即时编译和提前编译将Java字节码转换为Dalvik dex代码。 大多数开发人员使用Google提供的Android Studio IDE来开发其应用程序。 但是,您也可以使用Android SDK来使用Eclipse IDE 。
但是,自2017年初以来,使用Kotlin编程Android应用程序的趋势呈早期上升趋势。 对于那些不知道Kotlin是什么的人,它是一种在JVM(Java虚拟机)上运行的静态类型的编程语言。 甚至Google都在敦促开发人员将其开发更改为使用Kotlin而不是Java。
我的个人建议:如果要跟上趋势的发展,请学习Kotlin;如果要寻找强大的教程,请使用Java。
在此处查看android很棒的链接列表
iOS行动版
![](https://i-blog.csdnimg.cn/blog_migrate/49619001401e4a0e31b1933ea6ac9450.png)
苹果的iOS是被广泛使用的第二大移动操作系统。 不用说它是苹果产品,该操作系统不是开源的。 但是,应用程序开发是使用Apple提供的iOS SDK (软件开发工具包)完成的。
您可以使用Swift或Objective-C语言在XCODE IDE上对本机iOS应用程序进行编程
Swift是Apple专门为应用程序开发本身开发的一种编程语言。
开发iOS应用程序的主要限制是,您将需要Apple Mac设备来编译该应用程序。
在此处查看有关iOS教程的很棒的链接列表
Windows Phone
![](https://i-blog.csdnimg.cn/blog_migrate/12b33b140932ab1396a29a40b20f2485.png)
Windows Phone是被广泛使用的第三大移动操作系统。 但是,微软最近表示,他们将不再在Windows Phone上进行开发(请参阅此处 )。 他们将策略从简单的手机更改为手持式Surface Tablets,从而以某种方式获得普及。
最新的Windows 10具有称为通用Windows平台(UWP)的功能,该功能为支持OS的所有设备定义了一个基本平台。 因此,我们可以开发可在PC,平板电脑,手机和Xbox上同时运行的应用程序。
Windows提供Windows SDK来开发Windows应用程序。 我们使用XAML设计应用程序,并在Visual Studio IDE中使用C#语言对其进行编程。
跨平台开发
如果您打算跨两个或多个平台开发单个移动应用程序,那么跨平台开发工具肯定会为您提供帮助。
两种类型的跨平台开发技术是:混合应用程序和本机应用程序
我们现在要讨论的所有工具都需要针对必须编译应用程序的平台的特定SDK 。
将应用程序编译到iOS将严格需要 Macbook设备。
实际上创建了混合应用程序开发工具,以帮助现有的Web开发人员轻松开发应用程序并将其部署到移动平台。 混合应用程序开发实际上是在为移动平台开发HTML5应用程序。
混合应用程序使用HTML5,CSS和Javascript进行编程,并为每个移动OS使用围绕它的包装器进行部署。
混合应用程序对于拥有Web应用程序并希望为其部署本机移动应用程序的公司和初创公司非常有用。 这些应用程序无法访问设备的许多硬件功能,但可以充当简单的用户界面。 大多数混合应用程序开发工具只是在开发人员构建并将其部署到移动平台的HTML5应用程序周围加上一些包装。
您可以轻松找到混合应用程序的一个示例是亚马逊的移动应用程序。 手机中的应用程序只是其背后的HTML5应用程序的包装。
让我们讨论一些用于开发混合应用程序的工具和框架
![](https://i-blog.csdnimg.cn/blog_migrate/895cb011d184dfba6f568ca7cb8c29c1.png)
阿帕奇·科尔多瓦(Apache Cordova)
它是一个免费的开源平台,可使用单个代码库为多个移动平台构建应用程序
您可以使用HTML,CSS和Javascript构建应用程序,然后将其部署到Android,iOS,Windows,FirefoxOS等。 如果您希望构建混合应用程序,那么对于开发人员来说,这无疑是最高的选择。 还有许多可用的插件和扩展程序,它们可以帮助您在一定程度上访问某些硬件功能,例如“相机”,“声音”等。 Adobe已将该项目分叉到自己的版本,称为PhoneGap 。
框架7
Framework7 —是一个免费的开放源代码移动HTML框架,用于开发具有iOS和Android原生外观的混合移动应用程序或Web应用程序。 它也是必不可少的原型应用程序工具,可在需要时尽快显示可用的应用程序原型。
Framework7实际上是在Cordova之上构建Hybrid应用程序的框架。 但这实际上是特定于iOS的。 它最初是为iOS平台创建的,因此对其更具风味
离子框架
离子框架 是用于混合移动应用程序开发的免费和开源软件开发工具包(SDK)。 它是在Angular.js和Apache Cordova的基础上开发的,并为开发人员提供了最新的工具和服务,可使用HTML5,CSS和Sass等各种网络语言来开发应用程序。
有许多扩展名可以帮助您使用蓝牙,摄像头等。
jQuery Mobile
jQuery Mobile 是开发跨平台移动应用程序的强大框架。 它支持各种应用开发平台,例如台式机,智能手机,平板电脑和电子书阅读设备(例如Kindle)
jQuery是基于模块的框架,可让您根据需要创建任意数量的自定义版本
温泉UI
温泉UI 是另一个框架,可让您使用流行的javascript框架(例如Angular.js,React.js和Vue.js)构建Hybrid移动应用程序。
本机应用
我们已经看到了混合应用程序是什么:“上面有覆盖层的Web应用程序”。 但是,还有另一种创建跨平台应用程序的方法。
本机应用程序编译工具可以帮助您以一种特定的语言对应用程序进行编程,然后为您提供工具来为每个平台的本机组件编译应用程序。
由于使用混合工具本身使用本机组件,因此发现使用这些工具构建的应用程序比混合应用程序具有更高的硬件效率。 混合应用程序有时可能会产生令人讨厌的错误,并且无法高效地访问硬件功能。
![](https://i-blog.csdnimg.cn/blog_migrate/f95c058b20f2447a133e5613024afc05.png)
让我们讨论该领域的一些主要工具和库:
反应本机
React-Native 是Facebook创建的最著名的跨平台应用程序开发框架之一。
React Native可让您仅使用JavaScript构建移动应用程序。 它使用与React相同的设计,使您可以从声明性组件组成丰富的移动UI。
使用React Native,您无需构建“移动Web应用程序”,“ HTML5应用程序”或“混合应用程序”。 您构建的真实移动应用程序与使用Objective-C或Java构建的应用程序没有区别。 React Native使用与常规iOS和Android应用程序相同的基本UI构建块。 您只需使用JavaScript和React将这些构建块放在一起。
如果您查看使用React-Native构建的应用程序,您会发现它的潜力。 其中一些是Facebook App,Instagram,Airbnb,Flipkart App,因此清单还在继续。 它是迄今为止最著名的框架之一,在这一领域对开发人员的需求也很高。
Xamarin
Xamarin 使您可以使用单个代码库为Android,iOS和Windows构建本机移动应用程序。
Xamarin使您可以在共享的C#代码库上为多个平台构建本机应用程序。 在各处使用相同的IDE,语言和API。
Xamarin及其SDK可以为您提供自己的测试云和教育资源,供您学习。 最近,Xamarin被Microsoft收购。 对于喜欢使用C#作为基础对应用程序进行编程的开发人员,Xamarin是一个合适的选择。
使用Xamarin制作的应用程序的一些著名示例是Pinterest App,Slack App,Cognizent App,Bosch App等。
本机脚本
本机脚本 是另一个开源平台,可让您编译使用Javascript构建的本机移动应用程序。 根据他们的官方网站,
“ NativeScript是您构建没有Web视图的跨平台,本机iOS和Android应用程序的方式。 使用Angular,TypeScript或现代JavaScript获得真正的本机UI和性能,同时与Web共享技能和代码。 通过JavaScript以及对NPM,CocoaPods和Gradle中包的重用,可以100%访问本机API。 开源,并得到Progress的支持。”
我知道它需要消化很多,但是适度地它是您可以尝试的另一种工具。 它只是最近才在网上广为人知,但不如前两个流行。 熟悉Angular.js的开发人员首选
特别注意事项-游戏开发人员
一直以来,我一直在谈论应用程序开发。 如果您是游戏开发人员,并且想为移动平台创建游戏,那么这些工具可能无法为您提供最佳解决方案。
![](https://i-blog.csdnimg.cn/blog_migrate/a915ad94ffed988e445bf5ef9c67bd74.png)
我为您提供2条建议:
Unity游戏引擎:
Unity3D 是最著名的游戏引擎之一。 如果您是游戏开发人员,那么您肯定知道这些知识,或者如果您是新手,那么我相信这将是您在这里要使用的名字。
Unity可帮助您使用单个代码库设计,构建高度互动的游戏并将其部署到多个平台。 您可以使用Javascript,C#或Go lang对游戏逻辑进行编程。
开发游戏后,它为您提供了将游戏导出到您指定的任何平台的选项。 它可以是Android,iOS,Windows Phone,FirefoxOS等。它甚至可以将相同的游戏部署到Windows PC或Linux。 您也可以使用它来构建增强现实和虚拟现实应用程序。 有许多可用于Unity的插件和扩展程序,可以帮助您开发游戏。
如果您查看使用Unity创建的游戏列表,您会感到惊讶。 我将为您节省这笔悬念。
虚幻引擎
虚幻引擎 是另一个为您提供最佳功能的著名游戏引擎。 根据他们的网站,
虚幻引擎是一套完整的创作工具,旨在满足雄心勃勃的艺术愿景,同时又足够灵活以确保各种规模的团队都能获得成功。
它是一个完整的C ++引擎,可让您开发游戏并将其部署到所需的任何平台。 现在,您可以当心使用此引擎开发的游戏
是时候总结了……
![](https://i-blog.csdnimg.cn/blog_migrate/ba7e0ceb4653d171b5a061095ab08910.png)
就是这样...花了数天的研究和精力来完成此工作。希望您能找到有用的信息。我有使用上述某些工具(例如ReactNative,Android Java和Cordova)的个人经验。 其余基于其他开发人员的研究和信息。
如有任何疑问,请通过Facebook , Linkedin或Twitter与我联系
From: https://hackernoon.com/a-roadmap-to-application-development-bfa2e32fcd82