概述

Flutter是什么?Flutter是Google推出的一套开源跨平台UI框架,可以快速地在Android、iOS和Web平台上构建高质量的原生用户界面。在过去的两年时间里,Flutter的更新频率是相当的快,也有很多的公司开始使用它来进行跨平台应用开发,可以说,将Flutter称为2019年最流行的跨平台技术也不为过。

作为一个移动互联网的老兵,我先后研究过Hybrid APP、React Native和Weex等跨平台技术,并且有幸出版过相关的书籍。对于Flutter,给我的感觉是,不管是从社群和社区的活跃来看,还是从技术的水准上来看,Flutter无疑都是目前最优秀的跨平台开发方案。

在国内,除了阿里、腾讯、美团等大厂外,国内很多的中小团队也开始使用Flutter来作为移动应用开发的首选,并且很多公司在移动招聘方面也要求具有Flutter开发的背景。那么对于Flutter这个新生事物,Apple的态度是怎样的呢?以后会不会封杀呢,就像之前的JSPatch等。

RN、Weex、小程序

首先,让我们先来认识下RN和Weex。RN 和 Weex 其实使用的是类似的技术方案,即它们都使用JavaScript作为编程语言,然后通过中间层转换为原生平台的组件后再使用原生平台的渲染引擎执行渲染操作。并且它们都是期望团队开发业务的同学可以开发一套代码供多端使用,更多追求的是跨平台能力,在做这个方案的同时正好也具备了动态化能力。

关于动态性方面本身具有一定的审核风险,这里明确表示是不合规的,参考审核规则 2.5.2 苹果动态性审核条款,只不过 RN 和 Weex 的风险不如当年的 JSPatch 那么大,所以Apple方面也是睁一只眼闭一只眼。

而当年的JSPatch 等热修复解决方案则是通过底层操作使得开发者可以用 JS 语言调用任意原生代码,这直接导致了用户 App 在苹果审核之后,依然可能做大范围的改动,这会使得苹果的审核机制形同虚设。想象一下,你一个明面上说是新闻类的 App,审核通过后摇身一变变成了博彩 App,你说合不合规,既影响 App Store 整体的体验,更会给苹果带来系统性的合规问题,这是一大封杀 JSPatch 的原因。

RN和Weex 苹果的建议是不提倡、不承诺不封杀,从我的理解是苹果对于这类相对低风险的方案,秉持的态度是观望,比如某天发现影响了他们的审核,就会毫不犹豫的封杀;如果在审核期间,通过这类技术动态改变页面,很有可能会被直接拒审。

至于小程序,其实本身是当年 H5 离线包的一个开发语法标准化的衍伸,本身确实也具备了跨平台和动态化能力,从苹果目前的态度来看,只要不做的特别过分,目前是可以的,尤其是目前各大平台都出了自己的小程序解决方案与开放平台的情况下,总不能把这些 App 都干掉吧。

Flutter

Flutter 与 RN、Weex、小程序最大的不同就是,Flutter是一个跨平台解决方案,而非一个动态化解决方案。如果你阅读Flutter相关的介绍,会发现Flutter直接使用skia引擎来渲染视图,并且Flutter的Widget使用现代响应式框架进行构建,和平台没有直接的关系。

而从技术实现上来说,Flutter直接通过NDK编译成本地库的(libflutter.so),也就是说,Flutter执行是AOT(静态编译)执行,而不是JIT(即时编译),性能上完全没问题。而在实际表现中,也优于Android原生下JIT状态时的效率,本地库的特性也导致Flutter自身不具备热更新能力。而JSPatch这类东西,就和Android原生的热修复框架Tinker之类的类似,是影响编译效率的,尤其对启动速度影响比较大。出于用户体验方面的考虑,肯定是会被封杀的,这方面Google Play也是一样做法。

目前,从Flutter的发展趋势来说,Google 是想把 Flutter 打造成为新一代的移动端开发标准,在做任何事情时都会考虑合规问题,所以才会在考虑了 iOS 上动态化能力时,依然不考虑支持这个特性,因为一旦 Flutter 在 iOS 上具备了这个能力,也就存在了审核风险,这个审核风险是系统性的。

苹果已经明确表示 Flutter 目前没有合规上的风险,因为它本身就不是一个动态化解决方案,但一样秉持不提倡、不承诺不封杀,因为 Flutter 的崛起会吃掉苹果 App 原生开发人员的份额,苹果不建议使用官方以外提供的 Native 开发方案,苹果是绝不能容忍开发人员的大面积消失。一旦这种情况发生,苹果的生态就会遭人掣肘,这是苹果爸爸就会出来保护苹果 App 原生开发人员,这个时候也就是 Flutter 份额降低影响力降低的时刻,苹果也在不断推行 Swift 和 SwiftUI 等对原生开发人员更友好的解决方案,力图抵挡住各跨平台解决方案对苹果 App 原生开发人员的蚕食。

参考:移动跨平台方案对比:WEEX、React Native、Flutter和PWA

Apple为什么不封杀 Flutter,以后会封杀吗相关推荐

  1. 苹果为什么不封杀 Flutter ?

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

  2. 巨头垄断,Facebook直接封杀了一个国家!

    天下熙熙攘攘皆为利来! 1 封杀澳大利亚! 一夜之间,facebook把澳洲新闻"封杀了". 消息一出,瞬间登上了各大新闻媒体的头版头条 BBC ABC 卫报 想一下,自己天天使用 ...

  3. 微信封杀下的互联网江湖

    3Q大战后,曾因垄断成为被告的腾讯,选择对外开放,一年一度的开发者大会成为这一战略的最好背书. 显然,2019年初一齐推出的那三款社交软件多闪.马桶MT.聊天宝,并不在它的开放边界内,淡定的微信一律& ...

  4. 需求管理工具_wetool封杀后,微信群管理工具还能指望哪个?

    长期从事社群运营工作的人员,肯定对wetool有所耳闻,说不准,还是wetool的老用户.作为微信社群管理工具,wetool着实是为社群运营者带来了不小的便利,与此同时,解决了工作中的多种棘手问题.正 ...

  5. 微信到底该不该封杀多闪,聊天宝还有马桶APP

    这几天看头条最火的也就是3大聊天软件挑战微信的新闻了, 其实没发布前大家都知道,以微信的个性肯定会封杀的,而且封杀跟以前的一个套路,链接存在诈骗诱导性质,或者不安全,真的不安全吗?其实这点大家心知肚明 ...

  6. 汤唯遭“封杀”被证实 广电总局:对事不对人

    汤唯被广电总局封杀一事引起社会各界关注,广电总局副局长张海涛前日在政协会议上回应说,该项政策"对事不对人",首次官方证实"封杀"汤唯的做法. 前日有台湾地区记者 ...

  7. 对比Compose 、kotlin、flutter 移动端跨平台的未来。

    此篇文章主要讨论移动端-跨平台技术: 你是否掌握了大部分Android开发需要的知识点呢? 你是否完整的看完过一本Android基础入门的书呢? 你的技术栈是否还是片面的一角? Kotlin Mult ...

  8. 如何在没有 Mac 的情况下使用 Flutter 和 Codemagic 构建和分发 iOS 应用

    如果您在 Linux 或 Windows 上工作,请从这篇文章中了解如何构建和发布 iOS 应用程序.我们将展示如何使用 Flutter 和Codemagic(https://flutterci.co ...

  9. 阿里P6工作四年,女友跑路、晋升无望、年薪45W买不起房,加班加到焦虑!

    点击"开发者技术前线",选择"星标????" 在看|星标|留言,  真爱 来源:码农突围 回复"666",获取一份专属大礼包 导读:本文描述 ...

最新文章

  1. LeetCode实战:字符串相加
  2. location和location.href跳转url的区别
  3. 螺丝刀还能悬浮起来?
  4. html5调用手机摄像头和相册,h5 调用手机摄像头/相册
  5. NSBundle 的理解和 mainBundle
  6. 解析C#中is和as操作符的用法
  7. Windows ×××服务器配置6-启用L2TP方式CA模式访问①
  8. 【bzoj4695】最假女选手 线段树区间最值操作
  9. 鸟哥的 Linux 私房菜学习笔记
  10. Android系统架构
  11. 计算机的管理选项文件错误,如何修复Microsoft Teams错误文件在Windows PC中被锁定...
  12. http中长连接与短连接的区别,和实现方式。
  13. 使用讯飞tts实现安卓语音中文合成播报
  14. python如何通过以太网发送指令_Python编写的客户端给服务器发送指令执行相应的命令并返回结果...
  15. Python基础学习:operator模块
  16. 【BAT】BAT 阶段技能汇总:全功能小程序
  17. 移动应用众包测试综述
  18. 关于chm提示 已取消到该网页的导航的解决方法
  19. 用 JPress 创建模板及发布文章
  20. r76800h怎么样r7 6800h参数

热门文章

  1. Flutter listview下拉刷新 上拉加载更多 功能实现
  2. hdu1754(线段树单点更新)
  3. 【SoC FPGA】外设PIO按键点灯
  4. BOSS创投社群:要想成为富人,得改变原有思维,谈谈什么是富人思维模式!
  5. jellyfin自定义css主题
  6. 仿商城商品生成分享海报图片和识别图中二维码并跳转商品详情页
  7. QQ邮箱测试域用户密码过期邮件提示
  8. 2023 年值得关注的十大人工智能趋势,还不快码住来看!
  9. ros2 launch 常见问题
  10. STM32下载中出现Flash Download failed - Target DLL has been cancelled报错