前言
目前来说主流的App开发方式有三种:Native App 、Web App、Hybird App,而3种方式下又分别有众多的框架可供选择,一句话,前端的技术层出不穷,五花八门,让人应接不暇。这里简单介绍下这几种方式的优缺点以及分别挑几种热门的框架简单介绍下。
概述
Native App(原生APP开发模式):
Native App开发即我们所称的传统APP开发模式,该开发针对IOS(OC
或者swift
)、Android(Java
或者kotlin
)等不同的手机操作系统要采用不同的语言和框架进行开发,是专门针对某一类移动设备而生的,它们都是被直接安装到设备里, APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上。
优点:
1.可轻易调用手机所有硬件实现功能
2.速度更快、性能高、整体用户体验最好
3.质量安全性很高缺点:
1.开发周期长及维护成本高(比如ios和android需2端开发2个app)
2.学习成本高(ios必须会swift,android必须会Java)
Web App(HTML5 APP 框架开发模式):
Web App即我们通常所说的H5 app,主要通过HTML,CSS,JS构建页面,然后发布到服务器,用户通过手机网络访问这些页面。类似微信公众号等
优点:
1.项目独立,维护更容易,兼容多平台
2.开发周期短,学习成本低
3.更新发版更容易缺点:
1.体验不好,对设备和网络要求高,经常卡顿,性能差
2.无法调用系统硬件
Hybrid App(混合模式移动应用):
Hybrid App是指介于Web App、Native App这两者之间的app, Hybrid App主要以JS+Native两者相互调用为主,从开发层面现“一次开发,多处运行”的机制,成为真正适合跨平台的开发,是目前乃至未来发展的趋势。
优点:
1.维护容易,能调用部分系统硬件,兼容多平台
2.开发周期短,学习成本低缺点:
1.可能需要会原生开发以支持更多的硬件调用
2.性能跟原生还是有差距,对设备有一定要求
NativeApp
以前ios开发用的OC语言,现在基本都是用swift了。而android,以前用的都是Java,去年google官宣kotlin成为android开发的官方语言,不过,现在用的开发者还是比较少,android studio已支持kotlin。
Web App
JQuery Mobile
看名字就知道,这个是使用html和jQuery构建的手机应用,它唯一的优点估计也就是上手简单了,以前jQuery毕竟是前端必备技能,这几年连jQuery都很少开发者用了,甚至大公司都在重构准备去jQuery化,所以,这个框架,基本凉了,不过不得不承认jQuery那些年的影响力,太大了。
AmazeUI
号称中国首个开源 HTML5 跨屏前端框架,移动端优先,基于jQuery,现在用的人还是有不少,它提供了不少的web组件和js插件,而且调用极其简单,样式也还可以。
但是,amazeui项目github2年前就停更了,后面又搞了个基于react的amazeui-touch框架,不过在出了1.0release后,也停更了,最后一次更新是在2017年10月。
其他H5 UI框架
其他还有蛮多的,甚至纯js,html也可以开发web app,普遍存在性能差,对设备和网络要求高等问题。这些年,兴起的公众号和小程序甚至快应用,基本可以取代它们了。
Hybird App
Hybird App近年来发展势头猛,个人觉得也是移动开发的趋势。
Flutter
要说最近最火的跨平台移动开发框架,非flutter莫属。flutter是google的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。注意,是原生用户界面,意味着,它的性能基本是和原生一样的。
flutter与用于构建移动应用程序的其它大多数框架不同,因为flutter既不使用WebView,也不使用操作系统的原生控件。 相反,Flutter使用自己的高性能渲染引擎来绘制widget,flutter使用C、C ++、Dart和Skia(2D渲染引擎)构建;flutter 用Dart作为开发框架和widget的语言。
Ionic
Ionic提供了一个免费且开源的移动优化HTML,CSS和JS组件库,来构建高交互性应用。基于Sass构建和Angular优化。
即将发布的Ionic4是一次重大的升级,它第一次实现了与框架无关,不再必须使用Angular,你可以使用Vue,React,JQuery或者干脆不使用任何框架来进行Ionic开发,这一切都是因为可以使用Stencil来构建标准web components
React Native
React Native是Facebook 开源的跨平台移动应用开发框架,使用JavaScript编写原生移动应用,通过声明式的组件机制来搭建丰富多彩的用户界面。React Native 经过 3 年多的发展,已经比较成熟,虽然至今没有发布 1.0 版本,但其社区很活跃
React Native所使用的基础UI组件和原生应用完全一致。 基础组件使用JavaScript和React的方式组合起来。
Weex
Weex 集成了 WeexSDK 之后,可以使用 JavaScript 和现代流行的前端框架来开发移动应用,使用同一套代码来构建 Android、iOS 和 Web 应用。目前主要支持 Vue.js和 Rax这两个前端框架。起步比较晚,社区没有 React Native 活跃,资料和开源项目也相对较少
缺点:文档