2020年了,跨平台开发框架现在怎样了?

本文探讨了跨平台移动开发的重要性,指出其能够节省时间和成本,同时覆盖Android和iOS用户。讨论了原生开发、渐进式Web应用(PWA)与跨平台开发的优缺点,并详细介绍了React Native、Flutter、NativeScript和Xamarin等主流跨平台框架。文章强调了在选择开发方式时应考虑的因素,如目标平台、应用复杂性、原生体验和成本效率。最后,总结了跨平台开发的优势,如市场覆盖面广、代码复用和高效发布流程,但也提到了可能的性能和用户体验短板。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多年来,跨平台移动开发已经获得了最流行软件开发趋势之一的声誉。这并不令人意外,因为采用跨平台开发技术使得软件工程师使用同一代码就能为不同平台构建应用程序,从而节省时间、金钱以及不必要的工作。

[](()移动市场的现状


截至2019年12月,全球活跃网民已超45亿。他们每人平均上网时间为6小时42分钟,相当于每年上网超过100天。

再加上人们越来越渴望从掌上设备中获取海量的信息,也就为之所以移动应用程序会如此受到欢迎提供了合理的解释。截至 2019 年,全球移动应用收入达 4610 亿美元,预计到 2023 年,付费下载和应用内广告的收入预计将超过 9350 亿美元。

[](()移动开发的技术选型


十年前,老板们必须决定他们的产品将涵盖哪些移动操作系统:Android、iOS、微软、RIM或Symbian。而今天,初创公司的创始人正面临着一个不同的两难抉择,由于Android和iOS占据了移动操作系统市场份额的98%,很显然这两个系统不容忽视,覆盖什么平台不再是问题。但问题是,构建一个在两个平台上都可以使用的应用程序应该采用什么方法?

[](()每个操作系统对应一种开发环境

顾名思义,用于开发Android用的是Java或Kotlin,用于开发iOS则是Objective-C或SWIFT。作为开发不同应用而使用不同的开发语言,对开发者而言并不是一个好消息。

虽然特定的开发环境对特定的操作系统拥有对资源更高效的调配效率,可防止发生性能问题。但缺点也很显而易见,你的开发人员需要使用不同的开发语言构建两个独立的应用程序,这需要付出更多的时间、金钱和精力。

[](()渐进式Web应用程序(PWA)

其中一个能解决问题的例子是渐进式 Web 应用。然而,就像任何其他选项一样,PWA也不是完美无缺的,因为它们消耗更多的电池,并且不能授予应用使用设备的所有功能。

[](()跨平台应用程序开发

但还好我们还有一个跨平台开发的选项,它允许用一段代码同时为两个操作系统开发应用。它并不固定使用某一种平台的编程语言编写代码。而且,由于直接使用了系统原生控件来呈现界面,它能为用户提供近乎原生平台应用的使用体验。

[](()我要不要使用跨平台开发这项技术?


下面,我会通过一系列维度来帮助你去评估你是否应该采用跨平台开发这种形式来适配你的业务。

[](()平台

首先,也是最重要的,您需要决定您的应用程序是需要在一个还是多个操作系统上可用。如果您的目标群是由不同平台的用户组成的,那么跨平台开发将是首选的解决方案。

另一方面,如果你的用户群体只是Android或iOS的某一支,那么用原生解决方案来开发是你的首选。

[](()复杂性

此标准涉及你希望与产品走多远。解决此问题的一种方法是你的目标是使用MVP测试你的愿景,或是你准备使用成熟的应用程序开 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 始运行。您需要回答的另一个问题是产品的功能(例如,访问移动设备的硬件或特定于平台的功能)。

[](()原生体验

你的用户是否需要使用原生或近似原生的体验。使用Material Design(Android)或Human Interface Guidance(iOS)来设计的移动应用程序是移动产品对用户直观且友好的原因所在。在设计移动应用程序时应要考虑这些,但是,你可以使用跨平台框架来实现类似的效果。

[](()时间和成本

有一点是肯定的,原生开发成本不低、效率也不高。为不同的平台构建不同的应用程序需要雇佣更多的开发人员,这可能会导致初创公司在项目初期就超出紧张的项目预算。同时,如果采用跨平台的方法,你可以将项目外包给一个规模较小但同样专业的团队,这既是一个省时的解决方案,也是一个具有成本效益的解决方案。

[](()跨平台移动应用开发的优点(和缺点)


假设你已经得出结论,你更倾向于跨平台的移动应用程序开发,但是在下决心之前,你需要对此解决方案的优缺点进行彻底的了解,没关系,下面我逐一为你列举。

[](()跨平台移动应用程序开发的好处

[](()更广泛的市场覆盖范围

虽然我们每个人都有自己喜欢的移动操作系统,但个人喜好不会妨碍你业务的成功。让Android和iOS用户同时可以使用您的移动应用,能在未来提升更高的收录打下基础。

[](()一套代码

跨平台开发允许您同时编写包含多个操作系统的代码(有时也会有处理平台差异)。尽管如此,一套代码肯定会影响软件开发过程中的所有阶段,因为它可能为你节省通常花在修复和升级两组独立代码上的成本。

[](()更高效的发布流程

尽管只需要一套代码,但跨平台应用程序开发仍然需要开发人员考虑处理系统差异的方法,例如发布应用到平台商店的过程。

这种方法将缩短从设计到发布的时间。换句话讲,这可以为你节省很大一笔初始项目预算。

[](()平台一致性

毫无疑问,Android和iOS在用户体验和用户界面方面都有很大的不同,这些差异中的大多数部分都能通过跨平台开发框架帮你默认处理,这使得设计和实际表现不一致的情况发生的可能性进一步降低。

[](()有什么缺点?

尽管有上述各种优点,但它也绝不是一点缺点没有,它的主要缺点包括性能可能较低及略差的用户体验和用户界面等。

[](()2020年还有哪些跨平台移动开发框架值得考虑


虽然跨平台的移动APP开发有利有弊。但从业务初创的角度来看,优点应该是大于缺点的。而且,随着对跨平台移动应用需求的不断增长,现在可用的工具和框架数量也已经很可观了。

但选择过多会令人头疼,这就是为什么我们只关注最突出的跨平台移动开发框架的原因:React Native, Flutter, NativeScript, 和Xamarin。

为了让你更深入地了解是什么使这些工具成为2020年软件开发的可选选项,我们将根据以下标准对它们进行打分:社区支持、基于的编程语言、代码可重用性、性能、界面以及使用它们构建的重要应用程序。

[](()React Native

Reaction Native是Facebook于2015年发布的开源、跨平台的应用开发框架。作为2013年举办的一场内部黑客马拉松的产物,它已经成为最受欢迎的原生App开发替代方案之一,拥有2043名GitHub贡献者,获得了超过82900 GitHub标星。不断增长的社区认知度使得找到一支可靠且经验丰富的开发团队来承接你的项目变得相对容易。

[](()Learn Once and Write Anywhere

基于React.JS,React Native利用JavaScript(根据2019年Stack Overflow的调查,JavaScript成为了最受欢迎的编程语言),为Android和iOS用户提供真正原生的应用外观和体验。另外,使该框架脱颖而出的是,如果你需要,React Native允许你使用Java、Objective-C或SWIFT编写部分原生模块来顺利处理复杂的操作,如视频播放或图像编辑。

虽然这些组件不能在不同的平台之间共享,并且需要开发人员做更多的工作,但多达90%的React Native代码是可以重用的。很好地表明该框架的座右铭不是“Write Once, Use Anywhere”,而是“learn once, write anywhere”。

就GUI而言,React Native可以提供接近原生的用户体验,这要归功于它使用了Android和iOS的本地控制器。它还使用带有UI元素的ReactJS库,这有助于加快UI设计过程。在开发移动应用程序时,使此框架值得考虑的另一个原因是,它可用在不丢失应用程序状态的情况下对UI进行更改。

最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节

整理不易,望各位看官老爷点个关注转发,谢谢!祝大家都能得到自己心仪工作。
o,出去面试时先看看自己复习到了哪个阶段就好。

下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节

[外链图片转存中…(img-LF8tMuYH-1650258524285)]

整理不易,望各位看官老爷点个关注转发,谢谢!祝大家都能得到自己心仪工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值