如果你真的感觉很难,保持不了了,那就放弃,既然放弃了就不要埋怨没有失去。
抉择你酷爱的,保持你抉择的,不埋怨放弃的。
前言
Flutter 越来越火,学习 Flutter 的人越来越多,对于刚接触 Flutter 的人来说最重要的是如何学习 Flutter,重点学习 Flutter 的哪些内容。上面是 Flutter 的学习路线图,学会这些你就入门了,当然这仅仅是初学者的学习路线图,前路漫漫。
理解 Flutter
这是一个十分虚的概念,也不用破费十分多的工夫去专门理解,只需在搜索引擎上搜寻大略浏览下相干内容即可,这能够让你对 Flutter 有一个全面的、站在顶层的理解,理解的内容如下:
- Flutter 是什么、历史倒退、有哪些长处。
- Flutter 比照其余跨平台技术有哪些劣势。
- Flutter 整体框架。
- Flutter 实现原理。
- Flutter 响应式编程实现原理。
- Flutter 与 Dart 的关系及 Dart 特点。
不要一看下面“原理”就感觉好浅近,对于初学者要理解仅仅是思维,晓得实现的思路,而不须要深刻学习。
环境搭建
其实学习每一项技术首先都须要搭建环境,这并不属于学习路线的一部分,拿到这里独自说,也并不是通知大家如何搭建环境,而是给大家举荐环境的抉择,因为 Flutter 的开发并没有专门的 IDE,能够应用 vscode、android studio 等,这里举荐应用 android studio,零碎倡议 Mac OS,因为 Flutter 目前次要用于 Android 和 IOS 的开发。
UI 控件
UI 控件的学习是进入 Flutter 的钥匙,因而第一个要学习的就是相干 UI 控件,Flutter 零碎提供的组件十分多(预计 300+),难道要都要学习一遍吗?就算一天学 3 个控件,那也须要好几个月,这显著是不迷信的,只须要学习罕用的组件即可,哪些是罕用组件?曾经为大家整顿好了罕用组件及相干用法,地址:http://laomengit.com,不仅有罕用组件,还有整顿了 150 多个组件的相干用法,不罕用组件只需浏览一下,晓得 Flutter 提供了相似的组件,用到的时候在来查阅。
Dart 根底
Flutter 是用 Dart 语言开发的,所以咱们须要 Dart 语言的基础知识,如果你有其余高级语言的根底,这一部分根本能够略过,只需理解如下内容:
如何导入包。
- 异步编程(Future、async、await)。
- 正文。
- 命名标准
- 如何定义变量作用域(private、public)
- 因为这些方面和其余高级语言有些区别,至于其余的办法差异不大。
对于没有其余语言根底,甚至没有编程根底,这时候你须要找一本 Dart 根底的书学习其中的常识。
手势事件及事件传递机制
Flutter 中有点击、长按、双击等各种手势事件,学习如何给控件绑定手势事件及事件的解决,最初须要对事件的传递机制有肯定的理解。
动画
Flutter 提供了大量的动画组件,但咱们不仅仅是会应用这些组件,还要理解动画组件的实现原理,自定义动画组件。
网络申请
任何一个 App 根本都离不开申请网络,学会网络申请数据,强烈建议先理解下 Dart 自带网络申请,而后应用 dio 第三方库获取网络申请。
本地数据存储
本地数据的存储有如下几种形式:
- 文件读取、写入。
- shared_preferences:通过 key-value 的形式存放数据,适宜存储简略的数据,比方配置数据等。
-
sqflite:数据库的模式存储数据,适宜存储大量数据。
路由治理
什么是路由?简略的了解就是页面的跳转,从一个页面跳转到另一个页面。路由治理就是对这些页面跳转到治理。
国际化
如果你的 App 须要国际化,那么你须要学习国际化相干的内容,如何设置不同国家的文案等。当然这并不是必须的。
混合开发
混合开发是一个十分重要的内容,即便你齐全应用 Flutter 开发一个全新的 App,也可能波及到原生开发。这部分你须要理解如下内容:
- 在原生我的项目中减少 Flutter 模块。
- Flutter 与原生通信。
- Flutter 与原生通信更为重要,因为一些波及硬件性能 Flutter 必须通过原生实现,比方相机、蓝牙等。
学习 Flutter 的理由
在我接触在大多 Flutter 萌新里,有很大一部分其实是“被迫”应用 Flutter,因为领导或者老板要求用 Flutter,所以不得不“欲拒还迎”地开始学习 Flutter,这就是最“无力的”理由之一:“老板(领导)要”,除非你抉择“跳槽”飞出三界。
尽管 Flutter 是全新的跨平台技术,但其背地的框架原理和底层设计思维,无论是底层渲染机制与事件处理形式,还是组件化解耦思路,亦或是工程化整体办法等,与原生 Android / iOS 开发并没有本质区别,甚至还从 React Native 那里排汇了不少优良的设计理念。就连 Flutter 所采纳的 Dart 语言,对于信息表白和解决的形式,也有诸多其余优良编程语言的影子。
因而,从实质上看,Flutter 并没有开翻新的概念。这也就意味着,如果咱们在学习 Flutter 时,可能深刻进去搞懂它的原理、设计思路和通用理念,并与过往的开发教训相结合,建设起属于本人的常识体系抽象层次,而不是仅停留在应用层 API 的应用上,就解脱了教训与平台的强绑定。
Flutter 到底该怎么学?
这份谷歌开源的《Flutter 残缺开发实战详解》,心愿能够帮忙大家用最短时间学习 Flutter。教程通俗易懂,实例丰盛,既有基础知识,也有进阶技能,可能帮忙读门者疾速入进阶,快珍藏起来!!!
一、Dart 语⾔和 Flutter 根底
⼆、疾速开发实战篇
**1、根底控件
2、数据模块
3、其余性能 **
三、打包与填坑篇
**1、打包
2、细节
3、问题解决 **
四、Redux、主题、国际化
**1、Redux
2、主题
3、国际化 **
五、深⼊摸索
**1、WidgetsFlutterBinding
2、InheritedWidget
3、内存
4、线程
5、热更新 **
六、深⼊ Widget 原理
七、深⼊布局原理
**1、单⼦元素布局
2、多⼦元素布局
3、多⼦元素滑动布局 **
⼋、实⽤技巧与填坑
九、深⼊绘制原理
**1、绘制过程
2、Slider 控件的绘制实现 **
⼗、深⼊图⽚加载流程
**1、图⽚流程
2、本地图⽚缓存
3、其余补充 **
⼗⼀、全⾯深⼊了解 Stream
1、Stream 由浅⼊深
2、StreamBuilder
3、rxdart
⼗⼆、全⾯深⼊了解状态治理设计
**1、scoped_model
2、BloC
3、flutter_redux
4、fish_redux**
⼗三、全⾯深⼊触摸和滑动原理
⼗四、混合开发打包 Android 篇
**1、前⾔
2、打包
3、插件
4、堆栈 **
Flutter ⾯试知识点集锦
**Dart 局部
Flutter 局部 **
Flutter 开发实战与前景瞻望 – RTC Dev Meetup
**1、挪动开发的现状
2、Flutter 实战
3、混合开发
4、PlatformView**
因为文章篇幅无限,文档资料内容较多,本能够提供链接下载,但无奈容易被谐和,所以全副存档,须要这些文档这里的敌人,能够【点击这里收费获取】,心愿可能共同进步,共勉!
总结
不论是哪一代的开发技术,解决的问题无非就是那么几个:性能,开发效率,热更新。前两者 flutter 曾经靠近完满解决了,至于热更新置信随着前面一直的更新迭代,会有越来越优良的解决方案。
可能很多人会认为 flutter 的最大弊病在于 dart,然而对于一个跨平台的计划来说一种语言应该不至于妨碍它的倒退,至多 flutter 抉择 dart 这门语言必定也是由它的劣势所在,最看的见得劣势就是 JIT,即时编译极大的进步了开发效率。当然还有各种劣势与弊病网上一搜一大把,这里就是仁者见仁智者见智了吧。
我想信 flutter 这种跨平台开发技术应该是就是将来,至于是不是 flutter 最终称王不得说,可能前面也会有更好的开发框架,然而这种自绘应该就是趋势。
以上是我理论开发教训的总结心得,也不肯定是完全正确的,让咱们刮目相待吧。