Flutter基础(一)移动开发跨平台技术的百家争鸣

本文介绍了移动开发中的跨平台技术,包括Web App、Hybrid App、语言编译转换、原生渲染和自绘UI等,重点讨论了Flutter、React Native、Cordova、Ionic、VasSonic、微信小程序和Xamarin等框架。文章探讨了各类技术的优缺点,指出跨平台技术的发展趋势和挑战。
摘要由CSDN通过智能技术生成

关联系列
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开发打酱油,随着应用越来越复杂,终于有

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值