乐趣区

关于an-d-ro-id:如何学习Flutter学会这些你就入门了

如果你真的感觉很难,保持不了了,那就放弃,既然放弃了就不要埋怨没有失去。

抉择你酷爱的,保持你抉择的,不埋怨放弃的。

前言

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 最终称王不得说,可能前面也会有更好的开发框架,然而这种自绘应该就是趋势。

以上是我理论开发教训的总结心得,也不肯定是完全正确的,让咱们刮目相待吧。

退出移动版