Flutter不能做什么:局限性

老孟导读:您在网络上一定看过很多Flutter如何优秀的、如何完美的文章,而这篇文章将会告诉你Flutter不能做什么,注意并不是Flutter的缺点,比如第三方插件少、Dart不流行等,在我看来这都不算什么。
看完这篇文章希望对您是否使用Flutter来开发App起到一些作用。
在我们做新的技术评估时,什么东西不能做,甚至比能做什么更有用,虽然这样的列表可能会让你感到沮丧,但我想这是非常重要的。
本机平台视图
Flutter使用Skia渲染所有内容,所以和本机原生视图有一点点的区别,对于99%的用户来说可能感觉不到,但对于一些极客来说,是会发现一些区别的。
另外新的系统可能会带来新的UI设计,Flutter并不会立即更新。
有什么影响?
Flutter的渲染机制保证了应用程序不管在哪一个平台或者系统版本都是一致的,您的应用程序不会根据不同的平台渲染不同的样式。
这会改变吗?
不会,这是Flutter的核心渲染机制。
热更新
注意这里说的不是hot relaod,而是热更新,通过热更新,开发人员可以立即将补丁发布到其应用程序中,而无需通过应用商店发布。
Bug可以在没有新版本的情况下进行修复,在React Native,Cordova和Ionic支持此功能。而Flutter不支持此功能。
热更新功能在国内来说尤其重要。
有什么影响?
Flutter应用程序的所有更新都必须经过发布新的版本,在应用商店进行更新。对于iOS,有时可能需要几天的时间。
这会改变吗?
官方给出的答案是暂时不会,具体原因请查看此文章Ian Hickson的这篇文章。您也可以关注此问题以进行更新。
电视,手表和汽车
您不能使用Flutter为tvOS,watchOS,CarPlay或Android Auto构建应用。
有什么影响?
如果您的应用需要发布到这些平台,需要使用本机语言进行开发。
这会改变吗?
可能,但是可能需要一段时间。可以关注这些问题:位码支持,汽车支持和Wear OS支持方面存在问题。
从Dart直接调用本机API
Flutter可以与本机平台API交互,但不能直接交互。您可以通过语言绑定,使用与编写应用程序时使用的相同语言来使用本机API 。
有什么影响?
您可以使用第三方插件,可能已经有人为您完成工作,但目前Flutter生态发展时间较短,所以在更多自定义场景中,您将不得不编写本机的Objective-C / Swift或Java / Kotlin代码,并通过平台渠道进行通信。
这会改变吗?
不会很快。
希望这些不会让您放弃,没有什么是完美的,Flutter非常棒,是目前最完美的跨平台解决方案,没有之一。
交流
老孟Flutter博客地址(近200个控件用法):http://laomengit.com
欢迎加入Flutter交流群(微信:laomengit)、关注公众号【老孟Flutter】:
![]() |
![]() |
Flutter不能做什么:局限性的更多相关文章
- flutter在2019年会有怎样的表现?
2019独角兽企业重金招聘Python工程师标准>>> Flutter的趋势 在移动端,受成本和效率的驱使,跨平台一站式开发慢慢成为一个趋势.从Hybird,RN,WEEX,Flut ...
- Flutter 布局(六)- SizedOverflowBox、Transform、CustomSingleChildLayout详解
本文主要介绍Flutter布局中的SizedOverflowBox.Transform.CustomSingleChildLayout三种控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析. ...
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
以前写过两个Android开发配置文档,使用NDK进行JNI开发,这样能够利用以前已经写好的C++代码. 前两篇博客地址: http://blog.csdn.net/watkinsong/articl ...
- 理解 Flutter 中的 Key
概览 在 Flutter 中,大概大家都知道如何更新界面视图: 通过修改 Stata 去触发 Widget 重建,触发和更新的操作是 Flutter 框架做的. 但是有时即使修改了 State,Flu ...
- Flutter学习笔记(1)--环境安装
flutter最近显得格外的火,公司的同事也一直在谈论flutter,感觉自己不学学就要失业了...所以决定顺应潮流学习以下flutter,做一下学习笔记,希望可以给需要的同学带来一些帮助~ 正文为f ...
- Flutter介绍
1. flutter简介 Flutter是Google使用Dart语言开发的移动应用开发框架,使用一套Dart代码就能快速构建高性能.高保真的ios和Android应用程序, 并且在排版.图标.滚动. ...
- Canonical通过Flutter启用Linux桌面应用程序支持
子标题:Ubuntu团队为所有Linux发行版上的Flutter应用程序制作了一个新的基于GTK +的主机. 此文翻译自:https://medium.com/flutter/announcing-f ...
- 自绘引擎时代,为什么Flutter能突出重围?
导语 | Flutter 框架是当下非常热门的跨端解决方案,能够帮助开发者通过一套代码库高效构建多平台精美应用,支持移动.Web.桌面等多端开发.但仍然有很多产品.设计.甚至开发同学并不了解 Flut ...
- 我对Flutter的第一次失望
老孟导读:此文翻译自:https://medium.com/@suragch/my-first-disappointment-with-flutter-5f6967ba78bf 我喜欢Flutter. ...
随机推荐
- wget下载整个网站---比较实用--比如抓取Smarty的document
wget下载整个网站可以使用下面的命令 wget -r -p -k -np http://hi.baidu.com/phps, -r 表示递归下载,会下载所有的链接,不过要注意的是,不要单独使用这个参 ...
- Python玩转人工智能最火框架 TensorFlow应用实践 学习 教程
随着 TensorFlow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架.而在昨天机器之心发起的框架投票中,2144 位参与者中有 1441 位都在使用 Tenso ...
- 【Django 2.2文档系列】Model 外键中的on_delete参数用法
场景 我们用Django的Model时,有时候需要关联外键.关联外键时,参数:on_delete的几个配置选项到底是干嘛的呢,你知道吗? 参数介绍 models.CASCADE 级联删除.Django ...
- hash算法解决冲突的方案
1, 开放定址法: 所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入 公式为:fi(key) = (f(key)+di) MOD m ...
- @SessionAttributes 和 @SessionAttribute的区别
@SessionAttributes 和 @SessionAttribute的区别 Spring MVC中有两个长得非常像的注解:@SessionAttributes 和 @SessionAttrib ...
- BootStrap的栅格式布局
1.栅格系统(布局) Bootstrap内置了一套响应式.移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列. 我在这里是把Bootstrap中的栅 ...
- Android Studio快捷键动态演示
Android Studio出来很久了,大部分已经转过来了,相对于Eclipse又是毋庸置疑,更好的使用快捷键必定达到事半功倍的效果. 友情提示:某些电脑按F1-F12键需要先按住FN,比如我的Mac ...
- 如何在Vue项目中优雅的使用sass
开始之前,请先确保有一个基于webpack模板的项目(vue-cli脚手架一键安装~) 1.打开项目终端,安装sass的依赖包 npm install --save-dev sass-loader / ...
- 现代软件工程讲义 如何提出靠谱的项目建议 NABCD
互联网时代对于创新者来说, 既是一个伟大的时代, 又是一个糟糕的时代. 你有很多机会做出影响世界的产品, 但是, 似乎任何想法都被别人想到过了, 做出来了, 上市了, 移植到各种平台上去了- 那么 ...
- CS Requirements and Resources
有感于国内令人发指的CS教育,决定以自学为主. 路线会按照计算机科学与技术的技能树,主要学习四大的比较完整的课程,video没时间看,但reading会仔细看.lab会认真做,对于一些比较有意义.代码 ...

