手机APP开发调研

手机APP类型调研

参考链接:
1、 H5 手机 App 开发入门:概念篇——阮一峰.
2、 H5 手机 App 开发入门:技术篇——阮一峰

一、 概述

手机APP最初的形式都是基于各自平台开发的,也就是原生APP,我们比较熟悉的有Android、IOS、Windows Phone等。对应不同平台衍生了负责不同手机端开发的岗位,例如安卓开发,IOS开发。但由于原生APP也存在一定不方便,如开发成本高等特点,近几年有衍生出了一些新型的APP。整体上包括混合APP跨平台APP两大类。

1、原生APP开发

特定平台对应特定开发技术,APP只能在对应平台运行。性能和体验比较高,可以调用手机本身的软硬件资源,充分利用手机性能。缺点是开发成本较高,需要专门的开发团队,开发调试周期较长。而且必须下载整个软件才能安装,包括系统版本升级也需要

2、混合APP开发

使用 Web 技术(HTML5 + CSS + JavaScript)开发页面,再由框架分别打包成 iOS 和安卓的 App 安装包。

优点:开发便捷、周期短、成本低。使用 HTML 语言编写页面,再用 WebView 控件加载页面,所以只写一次页面,就能支持多个平台。

缺点:功能性能有限,不能充分发挥手机性能,展示类功能比较适合。复杂功能需要的APP不适合。

3、跨平台APP

跨平台技术栈的框架,都是使用自己的语法编写页面,不使用 Web 技术,编译的时候再将其转为原生控件,或者使用自己的底层控件,生成原生 App。这样就完全解决了 Web 页面性能不佳的问题。

  • React Native: 使用 JavaScipt 语言编写页面 。所有控件都是自己定义的,编译时再一一翻译为对应的原生控件。这种做即保证了性能,又做到了跨平台支持。

    但存在问题:UI 抽象层翻译出来的 iOS 和安卓原生页面,做不到完全一致,尤其是复杂页面,样式或功能存在差异。编译出来两个平台的原生 App 往往是一个正常,另一个会出现各种奇怪的小毛病。React Native 的底层还是没有做到无缝适配,它至今没有发布 1.0 版(2019年底是 0.61 版),这多多少少也说明了一些问题。

  • Xamarin:使用 C# 语言编写页面 。Xamarin 是微软公司的跨平台 App 开发框架,原理跟 React Native 很相似,只不过它的语言是 C#。

  • Flutter:使用Dart 语言编写页面。Flutter 是谷歌公司最新的跨平台开发框架。它为了解决 React Native 的平台差异问题,采用了一个完全不同的方案。

    它自己实现了一套控件。打包的时候,会把这套控件打包进每一个 App,因此不存在调用原生控件的问题。不管什么平台,都调用内嵌的自己那套控件,就能做到 iOS 和安卓体验完全一致。
    存在问题:Flutter 历史还不长,应用还不广泛,API 也没稳定下来。

二、总结

(1)原生技术栈的技能和体验最好,对于复杂的大型 App,如果条件允许,应该采用这种方式开发。

(2)混合技术栈的成本低,灵活性好,对性能要求不高的简单 App,尤其是纯展示性的页面,可以采用这种方式开发。

(3)跨平台技术栈适用于,存在外部或内部条件的限制,只有一个团队开发跨平台 App 的情况。

你可能感兴趣的:(Java,APP开发,H5,android,java,app,ios)