针对APP移动开发的跨平台开发工具(如Xamarin和React Native)的详细比较
前端开发
APP开发
浏览:401 次

App移动跨平台开发Xamarin、NativeScript React Native和DeviceOne快速平台开发工具的详细比较。“一次编码,到处运行”始终是程序员的理想故乡。20年前,正是凭借这面旗帜,Java进入了赛场,击败了许多竞争对手。但到目前为止,事实已经证明,Java沉重的身躯和缓慢的开发显然很难赶上这个时代的快节奏。在新的移动时代,如果一个App想要获胜,完美的使用体验可以说是必不可少的。虽然使用native有助于改善用户体验,但移动设备的现状是,它必须针对不同的平台(至少是iOS和Android)进行开发。这是发展的隐患和额外负担:
我们不仅需要努力在不同的项目之间以不同的语言同步相同的代码,还需要承担由此产生的后续维护任务。仅限于iOS和Android是可以的,但如果我们继续扩展到Windows Phone和其他平台,成本和工作量将成倍增加,这显然是不可接受的。因此,一个被间歇性提及但从未占据主导地位的概念再次进入了移动开发者的视野,即跨平台开发。
本地HTML和JavaScript
因为每个平台都有浏览器和WebView控件,所以我们可以使用HTML、CSS和JavaScript将web内容和体验移动到本地。通过这样做,我们可以统一逻辑和UI渲染,以降低开发和维护成本。以这种方式开发的App通常称为混合App,如PhoneGap或Cordova。此类解决方案是典型的App。除了使用一组前端开发技术来构建页面和进行交互之外,此类框架通常还提供一些访问设备的接口,例如摄像头和GPS。

尽管使用全页开发策略和环境可以为代码维护带来方便,但这种方法有一个致命的弱点,即渲染速度慢,动画效果不可控。两者都是致命的,用户体验无法接受。随着三年前Facebook使用本地代码重建Facebook手机App这一标志性事件的发生,曾经占据该国一半网页的App的开发已经衰落。特别是在当今对用户体验的苛刻追求下,僵硬的动画效果和僵硬的交互体验已经完全无法满足人们对高质量应用的心理期望。
如果跨平台的心是不朽的,我们该怎么办
要解决用户体验的问题,我们仍然需要回到原生进行开发,但这种行为与平台有关。世界上总是有聪明的人,他们总是使用看起来更聪明但实际上很愚蠢的计算机来做那些愚蠢的事情(恰到好处)。其中之一是自动将一个平台的代码转换为另一个平台。一家英国小公司正在做这样的事情,MyAppConverter我想做的是将iOS代码自动转换为Java。但不幸的是,如果你尝试过,你会知道他们的产品仍然处于不切实际的状态。
在这条路的另一个岔路口,有一家公司走得更远。它被称为Apportal他们在游戏转换方面取得了巨大成就。《王者狂奔》(King Rush)或《超级奔跑吧》(Mega Run)等伟大的作品都使用了这家公司的服务,将游戏从iOS转换为Android,并且非常成功。毫不夸张地说,除了直接使用Unity或Cocos2d-x等游戏之外,Apportal是另一个有吸引力的跨平台游戏解决方案。基本上,您可以使用Objective-C或Swift在熟悉的平台上进行开发,而不需要接触C++之类的怪物(尽管事实上,您不会遇到在游戏开发中非常困难的C++)。

但好消息以游戏开发结束。因为不同平台上的游戏体验差别不大,而且不同平台的不同功能也很少使用,所以处理起来相对容易。当我们想开发一款非游戏App时,事情要复杂得多。尽管Apportal有一个让应用转换可行的计划,但估计我们需要一段时间才能看到它的推出。
新的希望
Xamarin公司
事实上,跨平台开发的最大问题是不同平台的UI和体验的差异。如果忽略这个最困难的问题,只共享逻辑部分的代码,那么问题就会简单得多。十多年前,当。NET刚刚宣布,人们对新时代的发展充满期待,一群捣乱分子正在计划如何行动。NET和C#移植到Linux。这个我