原生应用vs跨平台:在关于什么是更好的争论中交叉了很多剑。有什么所谓的“中庸之道”吗?
请提醒:
原生开发意味着为一个平台创建应用程序。跨平台开发允许创建一个应用程序以在多个平台上运行。
我们已经讲过原生vs跨平台应用比较,但今天我们想从不同的角度来看看这个问题。
为什么很难选择?毕竟,原生应用程序开发的好处仍然存在。它们是显而易见的,不可否认的。
原生开发的优点
使用Apple和Google提供的最新软件和硬件
原生应用的关键优势在于对所有API和SDK的持续支持。原生应用的开发者总是处于技术的巅峰。当跨平台应用程序开发正在寻找折衷方案以在不同平台上实现新功能时,native已经拥有了一些新的东西。过去如此,目前如此,而且肯定会如此。
考虑到UX/UI特定功能
无需过多解释为什么原生应用程序更方便、更好看。原因是移动应用程序开发人员拥有所有的软件和硬件能力,以及适当的特定经验,以使应用程序尽可能地对用户友好和熟悉。
快速操作
本机应用程序运行速度很快。各种动画、具有复杂单元格的列表和屏幕之间的动画复杂过渡:在本机中,这些功能完美。
与跨平台相比,原生开发可以轻松提供每秒60帧(屏幕更新),让用户不再注意到分帧,使图像看起来更流畅、更逼真。
全面支持各种外围设备
例如,您可以为Apple Watch、Apple TV和HomePod创建应用程序。即使跨平台开发完全支持手表、扬声器和类似设备,它们在Android和iOS中的物理实现也会有很大差异。因此,想出一个适合这两个平台的通用解决方案是不现实的。
发达的社区
这一点同样重要,因为在激烈的竞争环境下,以大公司为首的大型社区围绕这两个平台形成。因此,有持续的支持、提供的各种工具、详细且不断更新的信息,以及与其他专家分享经验的广泛机会。
这听起来完全有说服力。但也有一个缺点。
原生开发的缺点
昂贵的
实际上,有一个缺点,而且相当严重。
本机应用程序不仅仅是为每个平台单独创建的。每个应用程序都是由个人开发人员编写的。如今,能够同时为Android和iOS编写的移动应用程序开发人员确实很少。因此,开发时间和专家工作成本以及整个应用程序开发的成本都会增加。
可以说,高成本是由高质量来补偿的。是的,如果我们谈到专注于后续扩展的复杂应用程序,情况就是如此。
但是,如果您只需要在多个平台上检查应用功能怎么办?或者,如果您需要开发一个不会扩展但旨在覆盖整个移动用户市场的简单应用程序?
这就是跨平台开发发挥作用的地方。
最初,它旨在解决原生开发的问题。更准确地说,如果应用程序同时用于两个平台,一个主要问题变得至关重要:构建两个本机应用程序的高成本。
跨平台与原生移动开发的所有其他优势或多或少都与此相关。
跨平台开发的优点CANVIAR A ESTRUCTURA DE LLISTA?
Web开发人员可以编写跨平台应用程序
与直接为Android或iOS编写代码的专业人士相比,此类专家更常见且更容易找到。
一次创建一个跨平台应用程序
因此,创建的应用程序将在Android和iOS上运行。
在本文中,我们将在Android和iOS两大平台上进行演讲。至于Windows Phone,现在需求其实很低,部分Windows的支持也是如此。因此,我们下定决心专注于当今真正引起人们兴趣的平台。
开发时间减少
即使两个本地应用程序由不同的专家并行编写,也很可能比构建一个跨平台应用程序花费更多的时间。
请注意:如果必须为两个平台编写未来的应用程序,以上所有内容都是正确的。但是,如果不需要第二个平台,跨平台应用程序与原生应用程序的优势就失去了平衡,而原生应用程序在时间和金钱方面将是平等的。
快速引入更改或添加
对两个平台同时进行任何更改。
跨平台开发的缺点
质量较低
与原生相比的技术差距
需要许多库和模块
它们用于实现原生UI元素的类似物。他们的质量并不总是处于最高水平,开发人员通常没有可能改变任何东西。
不断寻求妥协
必须在UX/UI字段中搜索解决方案以适应两个平台。
以上所有的结论都表明:你需要介于两者之间的东西,一种解决所有问题的灵丹妙药。
我们冒昧地假设,一个相对较新的框架,将这种轻微的划分模糊为跨平台和原生开发。
也许这只是“中庸之道”?
与跨平台开发相比,REACT NATIVE的优点
React Native应用的快速运行特性接近原生开发。这意味着它们的工作速度与本地的一样快。开发中存在一些挑战,但可以解决。
与原生开发相比,REACT NATIVE的优点
实时重新加载
React Native提供了查看当前版本更改的机会,而无需强制重新编译(将程序从更复杂的语言转换为计算机可以识别的更简单的语言)。
React Native使用Javascript编程语言,一种解释性语言。它不翻译成机器代码,而是由特殊程序解释。因此,Javascript不需要任何额外的时间来重新编译。这是React Native相对于原生开发的优势,使用编译的Swift或Java语言。
我们将简单地解释这一点:由于原生开发者在操作过程中更改按钮的颜色,只有在程序版本与编译结果组装后,更改才会显示在设备上。通常,这需要20到100秒。但在复杂的项目中,这可能会持续数十分钟。而在React Native中,更改代码的结果将立即可见,简直是在心跳中。
FOTA(无线固件)
另一个优点是,尽管Apple禁止“无线”更新应用程序,即不通过App Store检查和更新,但这不适用于内部使用的应用程序。在大公司中,许多iOS应用程序是使用React Native编写的,它允许通过服务器更新应用程序。而且非常方便,保证了中心化。
对于App Store中的常用应用,一些UI应用部分可以通过服务器快速更改。在这种情况下,无需更新和/或重新安装应用程序或编写复杂的结构来支持此功能。
例如,由于React Native,可以在用户已经安装的所有应用程序版本中将按钮颜色从蓝色更改为绿色,然后将其全部变回。在这种情况下,用户不需要更新应用程序。这种可能性扩大了A/B测试的界限。
快速地。轻松更新。易于开发。
然而,并非一切都如此美好。这个框架也有一些缺点。
与跨平台开发相比,REACT NATIVE的缺点
React Native要求开发者具备一定的移动开发领域知识
目前,有编写React Native应用程序经验的开发人员并不多。刚开始熟悉该框架的Web开发人员必须研究使用移动应用程序的细节以及与应用程序管理相关的细节。需要聘请iOS或Android开发人员来处理此类问题。所有这些都会相应地影响价格:与跨平台开发相比,它会更高。
开发速度较低
应该明白,毕竟不是针对所有平台编写一个项目,而是两个。当然,有大量可重用代码(逻辑和UI),但是,必须为每个平台专门编写一部分代码(大约在10%到40%之间)。
与原生开发相比,REACT NATIVE的缺点
缺乏稳定性
尽管在应用程序组装和运行速度等诸多因素方面都有好处,但React Native尚未达到稳定性。有时组装需要太多时间,一些组件响应不够,并且很难构建复杂的动画(如果React Native没有现成的块)。
对支持原生解决方案的公司的依赖
例如,Apple已经部分限制了混合应用程序的自由度(包括那些写在RN上的应用程序),禁止非常规地更新应用程序(不是通过App Store发布)。这些限制不仅可以由Apple发起,也可以由Google发起。此类措施可能会给RN应用程序带来重大问题。
支持不足
任何原生平台都比React Native更老。这意味着更发达的社区、数以千计的可访问图书馆、工具和机会。由于年龄较小,React Native还没有享受到这样的支持。这个缺点虽然是暂时的,但在选择开发未来应用程序的方法时应该考虑到这一点。
显然,React Native还太年轻,不能成为一个通用工具。但它正在积极发展。
任何关于React Native开发的优缺点和速度的判断都是相当随意的。毕竟,没有那么多React Native开发者。社区只是在改变车道。而今天的React Native速度较慢(与跨平台和原生开发相比)并不意味着React Native开发人员不会在不久的将来切换到新的速度。
地址:上海市长宁区淞虹路568号统一企业广场6楼
地址:杭州市拱墅区杭行路666号万达广场B座17层
地址:江苏省南京市雨花台区安德门大街52号雨花世茂5楼
地址:深圳市福田区深南大道1003号东方新天地广场C座16楼
地址:北京市海淀区苏州街3号大恒科技大厦7层
地址:广州市天河区体育西路57号红盾大厦5楼