前段时间,看了
阿里云云栖社区
发布的文章开发跨平台 app 推荐 React Native 还是 flutter?
阿里云云栖社区文章
今天又看到了 2019 年前端框架对比
思考了很久,决定发出这篇文章,跟大家共同探讨
说说几种常见的
APP
开发模式
-
Native App
传统的原生 APP 开发模式,有 IOS 和 AOS 两大系统,需要各自语言开发各自 APP。
优点:性能和体验都是最好的
缺点:开发和发布成本高
举个栗子:网易管家 APP(Tab1,Tab2)
应用技术:Swift,OC,JAVA -
WebApp
移动端的网站,常被称为 H5 应用,说白了就是特定运行在移动端浏览器上的网站应用。一般泛指 SPA(Single Page
Application)模式开发出的网站,与 MPA(Multi-page Application,再后面做介绍)对应。
优点:开发和发布成本最低
缺点:性能和体验不能讲是最差的,但也受到浏览器处理能力的限制,多次下载同样会占用用户一定的流量
举个栗子:网易管家 APP(Tab3)
应用技术:ReactJS,RegularJS 等 -
Hybrid App
混合模式移动应用,介于 web-app、native-app 这两者之间的 app,兼具“Native App 良好交互体验的优势”和“Web App 跨平台
开发的优势”(百度百科解释)
主要的原理是,由 Native 通过 JSBridge 等方法提供统一的 API,然后用 HTML+CSS 实现界面,JS 来写逻辑,调用 API,最终的页
面在 webview 中显示,这种模式下,Android、iOS 的 API 一般有一致性,Hybrid App 所有有跨平台效果。
优点:开发和发布都比较方便,效率介于 Native App、Web App 之间
缺点:学习范围较广,需要原生配合
举个栗子:网易云音乐,我爱我家 App
应用技术:PhoneGap,AppCan,Wex5 -
React Native App
Facebook 发现 Hybrid App 存在很多缺陷和不足,于是发起开源的一套新的 APP 开发方案 RN App。。使用 JSX 语言写原生界面,
js 通过 JSBridge 调用原生 API 渲染 UI 交互通信。
优点:效率体验接近 Native App,发布和开发成本低于 Native App
缺点:学习有一定成本,且文档较少,免不了踩坑
举个栗子:Facebook、youtube、discord、QQ、百度等等 -
WEEX App
阿里巴巴开发团队在 RN 的成功案例上,重新设计出的一套开发模式,站在了巨人肩膀上并有淘宝团队项目做养料,广受关注,
2016 年 4 月正式开源,并在 v2.0 版本官方支持 Vue.js,与 RN 分庭抗礼。
优点:开发效率和体验上跟 RN 不相上下,并且跨平台性更强
缺点:刚刚起步,社区没有 RN 活跃
举个栗子:淘宝、天猫、饿了么等 -
Flutter
咸鱼正在使用,而且他们也推荐大家尝试新技术 来自谷歌,不过貌似国内岗位少,有人说写这个 35 岁后可以出国。(我等将信将疑)原文链接
但是好像
PWA
这个技术被遗忘了,我个人觉得这是一个非常不错的技术, 强大的service worker
,当然现在百度的LAVAS
对VUE
的PWA
支持也很好,希望能继续深入下去。LAVAS
(基于 Vue.js 的 PWA 解决方案帮助开发者快速搭建 PWA 应用,解决接入 PWA 的各种问题)
-
PWA
的介绍:- 可靠 – 即使在不稳定的网络环境下,也能瞬间加载并展现
- 体验 – 快速响应,并且有平滑的动画响应用户的操作
- 粘性 – 像设备上的原生应用,具有沉浸式的用户体验,用户可以添加到桌面
- 渐进式 – 适用于所有浏览器,因为它是以渐进式增强作为宗旨开发的
- 连接无关性 – 能够借助 Service Worker 在离线或者网络较差的情况下正常访问
- 类似应用 – 由于是在 App Shell 模型基础上开发,因为应具有 Native App 的交互和导航,给用户 Native App 的体验
- 持续更新 – 始终是最新的,无版本和更新问题
- 安全 – 通过 HTTPS 协议提供服务,防止窥探和确保内容不被篡改
- 可索引 – 应用清单文件和 Service Worker 可以让搜索引擎索引到,从而将其识别为『应用』
- 粘性 – 通过推送离线通知等,可以让用户回流
- 可安装 – 用户可以添加常用的 webapp 到桌面,免去去应用商店下载的麻烦
- 可链接 – 通过链接即可分享内容,无需下载安装
- PWA 是对站点体验的一个飞跃式的提升,可以在移动设备上的 Chrome(version > 52) 访问 天气 PWA 体验一下。
5G
即将到来,不知道你对APP
的未来是怎样看待的?会是全部走服务端渲染吗?显然不可能,很想听听大家的见解。
但是这些是可以肯定是:
- 1、重视和提升用户体验
手机APP
开发只有提高用户体验,才可能得到用户的喜爱与欢迎。并且面对应用市场 APP 逐渐饱和的环境,若是再不重视和真正提高用户的体验,就很有可能遭到用户抛弃,被市场淘汰。因此未来手机APP
的开发要与时俱进,专注给用户带来个性化的体验、安全的保障等。 - 2、简约风格的设计
产品设计上应保持整洁简约,给用户第一眼的感觉要是舒适、清新的。因此未来手机APP
设计上要走简约风格,在配色上注重简约和质感,给用户带来良好的视觉感受。还可以通过将图片和字体适量加大,以丰富页面的层次,呈现给用户一种惊喜和视觉上的画面感。简洁明了,层次清楚,这样用户才能在小小的屏幕中发现自己需要的内容 (可以参考微信
) - 3、重视社交元素
互联网时代,很多网购平台为了发挥对产品的用户凝聚力,提高用户粘性,会在 APP 添加社交功能。通过添加社交元素,吸引更多用户的下载使用,并且重视社交元素还能提高产品自身的魅力,从而更受用户的欢迎(搞社区化,情怀,参考网易云音乐和抖音
)。
最近也是在不断尝试
PWA
,希望各位路过的小哥哥小姐姐们都发表下自己的看法。