[🔝top]Flutter学习资料总结
前言
本来参考Flutter | 老孟及自己在学习中对一些资料的收集。希望能帮到想学习flutter的开发者。
Flutter 阶段
千呼万唤始出来,主角-Flutter终于登场了,Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。
dea4df2cc523fa270bd0c3e0d4fe7e9eFlutter
吸收了前面的经验,它既没有使用WebView
,也没有使用原生控件进行绘制,而是自己实现了一套高性能渲染引擎来绘制UI
,这个引擎就是大名鼎鼎的Skia
,Skia
是一个2D
绘图引擎库,Chrome
和Android
都是采用Skia
作为引擎。Flutter
完美的解决了跨平台代码复用和性能问题,大家都在感叹:似乎UI迎来了终极解决方案
。
Flutter局限性
Flutter
并不是无所不能的,当你选取Flutter
作为技术方案时,首先要了解Flutter
无法实现哪些功能。
-
UI平台一致性
由于Flutter
使用自己的引擎
进行UI渲染
,而不是用原生控件
渲染,导致控件显示效果和原生不是完全一样,虽然肉眼看起来基本一样,但还是有一些细微的差别,尤其当Android
和iOS系统
升级导致原生控件效果发生变化时,Flutter开发
的App
并不会进行相应的变化,如果您的App
需要原生控件保持完全一致,Flutter
可能并不适合您。 -
动态化更新
动态化功能在国内来说是一项非常重要的功能,
Google官方
已经明确现阶段不会实现动态化功能
。
此功能并不是技术上
无法实现,更多的还是政策和法律上
的约束。
因此如果您的App
需要动态化
功能,那么Flutter
可能并不适合您。
总结
既然Flutter
已经如此优秀了,那是不是以后使用Flutter
就可以了呢?答案是否定的,未来很长一段时间应该是原生、Hybird、React Native、Flutter
共存时代。
- 原生开发是无法完全避开的,一些硬件(比如蓝牙、传感器等)功能、音视频和
ARVR
等相关功能必须使用原生开发
,有人说我开发蓝牙功能没用写原生代码啊,直接引入即可,你没有写,那是因为有人为你封装好了第三方插件。 -
Hybird
虽然有一些缺陷,但依然有其使用的场景,比如京东、天猫App
中的营销活动都是是H5
实现的。 -
React Native
可以使用原生控件渲染,因此,如果您需要使用原生控件而又想跨平台,React Native
是不错的选择。
官方学习地址
Flutter环境配置
flutter安装和配置
英语比较好的,看英文官网:https://flutter.dev/docs/get-started/install
中文:https://flutter.cn/docs/get-started/install
中国的网络环境下使用 Flutter
,请先看一下这篇文章
创建Flutter 项目
设置应用程序名称和图标
App调试运行
打包部署
Flutter Package
Flutter Package
文本组件
c2be12a477eb1fcd9642fb3f0e73917e基础组件
52abefb72d6eafecd54abf20247e66af布局组件
9eedc03cda7ac7ca0b34612d9d7086ad定位装饰权和重组件
8498570a355dbd12d896398b965fbc16手势识别组件
2bab93962ac3a55ad187fe6fa2fb58f3滚动和大数据组件
c57229629f6d8f8886642e6bd20ae284Sliver系列组件
b34d7ce204f47cc04cd605920a01b4b3功能性组件
45925d60387b0bc11df5be8097d704eeApp级别组合
7346c25036b858940175d21b9ac30fe8组件总结和实战
20d4e1c0615e38bd5cf30e1822a18638动画
b19ac2480a63abdadb8d54593cadbea3路由
dfb304e42463786ae82e83f1a51fdaa0数据库储存和网络请求
84e0031c2dab6a26af1f8d20c55e8202混合开发
731474269e00db5a7e9e542fec042b2e国际化
94ac31ee13d6a1d4442e4ee01e3ea0faFlutter | 老孟
Flutter | 老孟
Flutter组件
flutter实战
flutter源码分析
flutter优秀文章
flutter插件
Drat
插件开发 pub
Dart异步与网络请求
Dart中的异步
异步async、await和Future的使用技巧