admin管理员组文章数量:1578639
关联系列
ReactNative入门系列
React Native组件
本文首发于公众号「刘望舒」
前言
本来这一篇应该介绍如何搭建Flutter开发环境的,但我想在了解Flutter前,不妨了解一下跨平台技术的演进,这样更有助于学习Flutter,也能认清Flutter的优势和本质。这篇文章还有一个目的,就是希望大家是玩技术的人,而不是被技术玩的人,对于不同的技术要有自己的判断。
1. 跨平台技术的诞生
我是2010年开始从事的Android开发,当时会Android和iOS开发的很少,也不火,所有人都在“摸着河底过河”,项目更没有第三方框架一说,大都是自己写的,不像现在各种的框架满天飞。随着移动开发的发展,互联网公司也是层出不穷,有些公司迫于竞争,想要更迅速的更省成本的进行开发,就不再满足Android端一套代码,iOS端一套代码。与此同时,其他技术领域和各大公司也都觊觎着这份大蛋糕,纷纷推出相关的技术,这样跨平台技术应运而生,并且开始在公司中生根发芽。
Android和iOS生态太大了,我们可以把它们比作第一级生态,想要颠覆这两个系统的曾经出现过,但都失败了,因此建立次级生态是最稳妥的策略,Android平台更加开放,因此次级生态的中心就是Android,次生态的形式多种多样,比如在Android系统的基础上魔改建立自己的生态,再或者推出各种跨平台技术建立生态。跨平台技术产生的框架实在太多了,很多还没等我们去学去了解,它们就没落了,成为了跨平台技术的发展的一个过度产物。跨平台技术的产物是不靠谱还是趋势,我想读完本篇文章你会有自己的理解。
跨平台技术的分类没有标准的答案,这里把它们分类为5种,分别Web App、Hybrid App、语言编译转换、原生渲染、自绘UI。下面分别介绍它们。
2. Web App
Web App是指基于Web的应用,运行于网络和标准浏览器上,相当于一个网页然后加一个App的壳。2014年HTML5的标准规范制定完成,在网络舆论上Web App大有取代Native App的气势,但Web App有以下缺点,使得它始终是“主角的心,配角的命” :
- 性能低,操作体验不好
- 无法调用原生API,很多功能无法实现,
- 依赖于网络,网速慢时体验很差,并且没有离线功能,优化不好的话会消耗流量
- 只能做为一个临时的入口,用户留存率低
在Web App的基础上,又出现了几个进化者,这里主要介绍PWA。
2.1 PWA
PWA(Progressive Web App)意为渐进式增强Web应用,它不是一门技术,而是一个概念,使用多种技术来增强 Web App的功能:
- 用Service Worker + HTTPS +Cache Api + indexedDB 等一系列web技术实现离线加载和缓存
- 实现了推送和通知
- 可以直接添加到手机的桌面上
- 使用Service Worker可以进行后台同步
总结起来,PWA的主要的能力就是离线、推送、桌面访问,可以说PWA赋予Web App原生的体验,但是PWA一直不温不火的原因主要有以下几点:
- 游览器对PWA技术支持还不够全面, 不是每一款游览器都能100%的支持PWA
- 国内一些手机厂商对Android系统各种魔改,对PWA的兼容性不好,甚至不支持PWA
- 平台的竞争,iOS对PWA的支持力度远远低于Android,所以PWA在iOS上的体验打了折扣。PWA面对类似的微信小程序和快应用的竞争中,并没有优势。
3. Hybrid App
除了采用原生和Web开发App,还可以采用HTML5+原生来进行混合开发,这就是Hybrid。
关于Hybrid的诞生有一个小故事,某个二线互联网公司的App是以原生为主,HTML5开发打酱油,随着应用越来越复杂,终于有
版权声明:本文标题:Flutter基础(一)移动开发跨平台技术的百家争鸣 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726399598a1069156.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论