赞
踩
vs 2019 跨平台开发
通过雷因德德弗里斯,创始人 LearnAppMaking.com
还记得Adobe Flash吗? 它是最终的跨平台开发工具。 Flash可在任何Web浏览器或操作系统上运行-甚至可以在Android的早期版本上运行。 然后是HTML5,它做了Flash可以做的许多事情……
长期以来,跨平台开发一直是构建软件的圣杯。 大多数跨平台开发工具都承诺您可以一次构建代码库,然后在任何平台上运行该应用程序。 如果可以一次构建并在所需的任意多个平台上进行部署,为什么还要为每个不同的平台进行本机构建?
您可以看到为什么如此引人注目。 它为您节省了将应用程序推向市场的时间和金钱,并且您可以将维护和开发成本削减一半。 从开发人员的角度来看,这也很有趣。 开发人员可以使用他们知道的工具(例如JavaScript或C#)为不熟悉的平台进行构建。
在本文中,我们将介绍一些新的和已建立的跨平台工具。 目标是向您介绍2019年跨平台应用程序开发的各种可用选项。
[无论选择哪种平台,请确保您使用的是强大的分析工具,无需寻找代码即可快速查找并修复所有错误或崩溃。 首先,请 试用Appsee 的 免费试用版 ,该软件可以实时记录和重放崩溃的会话。]
让我们开始吧!
现在由Adobe拥有的PhoneGap是一种跨平台开发工具,它依赖于网络技术来为Android和iOS创建应用程序。 您可以使用HTML,CSS和JavaScript来构建具有本地外观的移动应用程序 ,而无需为不同的平台编写两次相同的代码。
而这正是大多数跨平台工具遇到麻烦的地方。 以智能手机的相机为例。 iOS和Android使用该相机所需的代码不同。 实际上,用于在这些平台上创建本机应用程序的编程语言(Swift和Java)相差100%。
PhoneGap通过为您提供具有本地外观的Web技术的统一方法来解决此问题。 它看起来像本机iOS或Android应用程序,但事实并非如此。
诸如PhoneGap之类的工具还提供了统一的API,可与诸如相机,媒体库,文件存储和GPS之类的硬件进行交互。 它们的基础代码在平台之间可能有所不同,但是它们的工作方式非常相似。 最重要的是,PhoneGap之类的工具使您可以使用插件来访问特定于平台的代码。
Xamarin现在由Microsoft拥有,它是一种跨平台开发工具,使开发人员可以使用C#编程语言构建本机iOS和Android应用程序。 Xamarin应用程序是提前编译的,这意味着它们不会遇到解释型或基于Web的工具所带来的性能缺陷。
Xamarin平台是使用跨平台工具的最大好处的一个很好的例子:开发人员可以使用他们已经知道的编程语言。 C#是最初由Microsoft在其.NET平台中开发的一种编程语言。 熟悉Microsoft构建软件(例如C#和.NET)环境的开发人员可以轻松进行Xamarin开发,因为这些工具实际上是相同的。
有必要研究PhoneGap与Xamarin的不同之处。 使用PhoneGap,您的跨平台应用程序主要由加载HTML内容的本机Web视图组成。 模拟了诸如按钮和工具栏之类的本机UI,从而提供了本机应用程序的外观。 这样做并即时解释JavaScript,通常会使基于Web的跨平台应用程序变得迟钝。
Xamarin应用程序已编译,这意味着它们直接在智能手机硬件上运行,而不是在Web视图中运行。 C#代码在本机平台之间共享,这意味着大多数应用程序代码都可以用一种编程语言编写一次。 Xamarin应用程序还可以直接访问本机API,这意味着开发人员可以使用平台特定的框架,例如iOS的ARKit。
React Native最初是由Facebook在2015年宣布的,并在最近几年越来越流行。 通过使用JavaScript代码为本地组件提供动力,它采用了完全不同的方法进行跨平台开发。
它没有模仿本地组件或编译为本地代码,而是在运行时解释JavaScript以显示本地UI元素,响应用户交互并执行任务。 开发人员不必依靠慢速的Web视图来呈现其应用程序,也不必学习iOS开发 。
React Native越来越流行,并且它是开源的,这意味着许多开发人员为该平台构建了第三方组件,这进一步加速了它的采用。 就像Xamarin和C#一样,Web开发人员可以轻松选择React Native,因为它使用了他们已经喜欢JavaScript语言。
跨平台开发中反复出现的主题是“编码一次,部署两次”。 您真的可以在平台之间共享100%的代码库吗? 您可以根据所构建应用程序的复杂性进行选择。 React Native和Xamarin特别完善了共享代码库的原理,而没有典型的性能瓶颈。
如果您正在研究跨平台工具,目的是构建一个跨平台应用程序,请记住,总是有可能需要编写特定于平台的代码。 这意味着您需要团队中的本机iOS或Android开发人员,尽管不是全职的。
由Google构建的Flutter将跨平台开发提升到一个新的水平。 它于2017年5月首次发布,其第一个稳定的1.0版本于2018年12月发布。
Flutter处于跨平台开发的前沿,值得特别注意。 通过完全避开本机平台,它非常接近“一次编码,两次部署”的现象。 而且它在开发人员社区中的发展速度很快。
Flutter的工作方式是将Dart源代码编译为在Dart虚拟机上运行的本机代码。 您可以将其与直接在智能手机硬件上运行本机代码的Xamarin以及在本机应用程序中运行解释后JavaScript代码的React Native进行比较。
Flutter的一个特别有趣的功能称为“ 热重装” 。 使用热重装,可以在运行时直接注入对应用程序源代码的更改。 就像重新加载网页一样,无需重新编译整个应用程序。 Hot Reload还会保留应用程序的状态,因此您可以同时编码和与应用程序交互。
与其他工具类似,Flutter提供了针对平台特定功能(例如Android和Apple的UI设计)的共享代码,以及用于构建平台特定插件的选项。 特定于平台的API和SDK可以在本地使用。
以自己的方式,Adobe的Flash可能就是Xamarin,PhoneGap,Flutter和React Native带来的跨平台开发。 我们永远不会知道Flash是太早还是太迟。
Flash之所以成为该跨平台开发故事的一部分,是有原因的。 随着新概念和范例的流行,开发工具必将发生变化,而其他工具则逐渐消失。 谁知道在2019年,2020年及以后推出哪些跨平台开发工具?
随着这些工具变得更加先进,“一次编码,两次部署”的圣杯越来越接近。 也许有一天,我们真的可以一次构建一个应用程序,然后在任何地方运行它。
Reinder de Vries是一位专业的iOS开发人员。 他在LearnAppMaking.com上教应用程序开发人员如何构建自己的应用程序。 自2009年以来,他为iOS开发了数十个应用程序,为全球品牌服务,并领导了多家初创公司的开发。 当他不编码时,他喜欢浓郁的意式咖啡和旅行。
翻译自: https://hackernoon.com/getting-started-with-cross-platform-app-development-in-2019-dd2bf7f6161b
vs 2019 跨平台开发
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。