Flutter开发者

谈一谈移动端应用发展

2018-01-04

谈一谈移动端应用发展

从最早的大哥大,到诺基亚的巅峰,再到Android 、Iphone手机的兴起,手机的形态和功能都有了很大的改善,抛去塞班系统,今天我们就来聊聊 Android和Ios两大主流系统里移动应用的发展历史。

过去的几年可以说是移动互联网的高速发展期,无论是原生App还是跨平台APP,移动应用的爆发为移动互联网发展提供了有力的支持。今天,我们就来谈一谈移动端应用形态。

OEM SDKs

OEM是英文Original Equipment Manufacturer的缩写,按照字面意思,应翻译成原始设备制造商,指一家厂家根据另一家厂商的要求,为其生产产品和产品配件,亦称为定牌生产或授权贴牌生产。即可代表外委加工,也可代表转包合同加工。国内习惯称为协作生产、三来加工,俗称加工贸易。

SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包

OEM SDKs的意思就是基于设备制造商平台开发商软件开发包的开发。

Apple iOS SDK于2008年发布,2009年发布Google Android SDK。这两个SDK分别基于不同的语言:Objective-C和Java。

应用构建步骤:

您的应用程序会与平台进行交互,以创建小部件或访问相机等服务。小部件呈现给屏幕画布,并且事件被传回给小部件。这是一个简单的架构,但是你需要为每个不同的平台创建单独的应用程序。

由于我们开发的程序最终都是需要运行在设备提供商的平台和设备上的,所以使用OEM SDK可以实现与硬件最高效率的交互。

WebViews

第一个跨平台框架基于JavaScript和WebViews。

例如Titanium和一系列相关的框架:PhoneGap,Apache Cordova,Ionic等等。在苹果发布iOS SDK之前,他们鼓励第三方开发者为iPhone构建webapps,所以用web技术构建跨平台的应用程序是一个显而易见的步骤。

应用构建步骤:

使用WebView作为OEM SDK的载体来加载网页程序,中间使用一个“桥”来与平台Rom进行交互,由于不能直接操作硬件平台,再加上所有的视图都是由前端页面构建,所以在使用本地硬件时会有一定不便和性能问题,在UI展示上也不能很好的实现原生的流程效果。

Reactive Views

最近几年,React变得越来越流行,相比大家对ReactJS等其他的反应视图都有了一定的了解,在跨平台领域借助于ReactJS可以很方便的简化Web视图的创建,React Native的诞生更是在很大程度上方便了跨平台开发者。

应用构建步骤:

从构建步骤不难看出,React Native使用了和WebView不同的方式,使用“桥”很好地让ReactJS与OEM SDKs沟通 而非与webView沟通。

在React Native中所有的View基本都是继承于原生平台的View,这使得React Native在原生体验上基本可以达到原生应用的层次,但是在动画高帧率方面还是有很大的不足。

Flutter

像React Native一样,Flutter也提供反应式风格的视图。Flutter采用不同的方法来避免由于使用编译的编程语言而导致的性能问题。Flutter使用AOT编译成多个平台的本地代码。这使得Flutter可以与平台进行通信,而无需通过执行上下文切换的JavaScript桥。编译为本机代码也可以提高应用程序的启动时间。

应用构建步骤:

在Flutter中通过使用本地内部的View来构建View树,然后使用AOT技术在原生平台编译为原生View,中间少了JavaScript桥,在性能上可以说是有了很大的提高,再加上使用的完全都是原生界面的东西,所以在原生界面的还原上也是非常出色的。

小结

虽然每一种类型的应用都有多少的优缺点,但是无论哪一种类型的应用都有存在的价值,并不是说哪一种是最好的,只能说是最合适的。在移动互联网十分发达的今天我们不仅需要快发开发应用的能力,更需要的是无限的创意与更佳优质的服务。

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

打赏请备注姓名或者昵称,方便我后期统计哦

关注公众号,及时查阅最新文章