在现如今快速迭代的开发大环境下,能够实现“一套代码、多端运行”是众多互联网开发团队的梦想,阿里、腾讯也都做过很多尝试,美团也一样!重点说说美团的开发团队,他们做了非常多跨平台开发框架的尝试:React Native、PWA、Weex 等等。但都没有得到很好的解决,直至遇到 Flutter。
Flutter有哪些优势:
1.开源
正因为Flutter的开源属性,所以在全球开发者的疯狂支持下,这几年flutter飞速发展,越来越趋于完善,现如今的Flutter3.0更是大放光彩,希望不久的将来能够真正做到一套代码多端部署。
2.稳定
Flutter UI由于自绘UI,从而避免了平台层面的UI和系统升级导致的各种兼容问题。但是作为跨平台开发技术不可避免的需要去维护底层适配层和各种插件实现与原始平台的通信,这是所有跨平台的通病。
3.高效
对开发者来说,使用 Flutter 开发应用十分高效。Flutter 广受好评的 Hot Reload 功能可以在 1 秒内实现代码到 UI 的更新,使得开发操作周期被大幅缩短。
Flutter 提供了一整套从底层渲染逻辑到上层开发语言的完整方案,具有跨平台、高保真、高性能等等优秀特点。因此从发布开始,热度一路攀升,受到开发者们的热切青睐,也有了 今日头条、阿里闲鱼、腾讯 Now 等等在内的一众知名商业案例。
然而我有很多小伙伴告诉我他正在或打算学 Flutter ,但他们中的大部分都遇到了这些麻烦问题:
- 看了不少 Flutter 的教学视频,但感觉flutter太重视应用层 API 各个参数的介绍以及实现细节,有点学起来无从下手的感觉。
- Flutter 从语言到开发框架都是全新的,技术栈的积累必须从头开始,学起来很费力。
其实要想学好 Flutter,不应该仅停留细节层面,更要深入它的原理、设计思路和通用理念。
与此同时,现在市面上有关于Flutter的系统学习资料比较少,不过之前有收集整理到一份 15年大厂项目开发 精心整理出来的《Flutter实战演练:第二版》,能够帮助大家 快速上手 Flutter 开发应用,掌握精髓并建立属于自己的知识体系。有需要完整版的朋友,可文末获取。
《Flutter实战演练:第二版》
目录
第一章 起步
- 移动开发技术简介
- 初识 Flutter
- 搭建Flutter开发环境
- Dart语言简介
第二章 第一个Flutter应用
- 计数器应用示例
- Widget 简介
- 状态管理
- 路由管理
- 包管理
- 资源管理
- 调试Flutter应用
- Flutter异常捕获
第三章 基础组件
- 文本及样式
- 按钮
- 图片及ICON
- 单选开关和复选框
- 输入框及表单
- 进度指示器
第四章 布局类组件
- 布局类组件简介
- 布局原理与约束(constraints)
- 线性布局(Row和Column)
- 弹性布局(Flex)
- 流式布局(Wrap、Flow)
- 层叠布局(Stack、Positioned)
- 对齐与相对定位(Align)
- LayoutBuilder、AfterLayout
第五章 容器类组件
- 填充(Padding)
- 装饰容器(DecoratedBox)
- 变换(Transform)
- 容器组件(Container)
- 剪裁(Clip)
- 空间适配(FittedBox)
- 页面骨架(Scaffold)
第六章 可滚动组件
- 可滚动组件简介
- SingleChildScrollView
- ListView
- 滚动监听及控制
- AnimatedList
- GridView
- PageView与页面缓存
- 可滚动组件子项缓存
- TabBarView
- CustomScrollView 和 Slivers
- 自定义 Sliver
- 嵌套可滚动组件 NestedScrollView
第七章 功能型组件
- 导航返回拦截(WillPopScope)
- 数据共享(InheritedWidget)
- 跨组件状态共享(Provider)
- 颜色和主题(Theme)
- ValueListenableBuilder
- 异步UI更新(FutureBuilder、StreamBuilder)
- 对话框详解
第八章 事件处理与通知
- 原始指针事件处理
- 手势识别
- Flutter事件机制
- 手势原理与手势冲突
- 全局事件总线
- 通知(Notification)
第九章 动画
- Flutter动画简介
- 动画结构
- 自定义路由过渡动画
- Hero动画
- 交织动画
- 通用“动画切换”组件(AnimatedSwitcher)
- 动画过渡组件
第十章 自定义组件
- 自定义组件方法简介
- 组合现有组件
- 组合实例:TurnBox
- CustomPaint与Canvas
- 自绘实例:圆形渐变进度条
- 自绘组件:CustomCheckbox
- 自绘组件:DoneWidget
- 水印组件实例:文本绘制与离屏渲染
第十一章 文件操作与网络请求
- 文件操作
- Http请求-HttpClient
- Http请求-Dio package
- 实例:Http分块下载
- WebSocket
- 使用Socket API
- Json转Dart Model类
第十二章 Flutter扩展
- 包和插件
- Flutter Web
第十三章 国际化
- 让App支持多语言
- 实现Localizations
- 使用Intl包
- 国际化常见问题
第十四章 Flutter核心原理
- Flutter UI框架(Framework)
- Element、BuildContext和RenderObject
- Flutter启动流程和渲染管线
- Flutter 布局(Layout)过程
- Flutter 绘制(一)绘制原理及Layer
- Flutter 绘制(二)组件树绘制流程
- Flutter 绘制(三)Layer实例
- Flutter 绘制(四)Compositing
第十五章 一个完整的Flutter应用
- Github客户端示例
- Flutter APP代码结构
- Model类定义
- 全局变量及共享状态
- 网络请求封装
- APP入口及主页
- 登录页
- 多语言和多主题
需要这份《Flutter实战演练:第二版》的可以在下方领取,看到大家消息会及时回复并分享资料。

总结
不论是什么时代的开发技术,解决的问题无非就是:性能,开发效率以及热更新。而这前两者Flutter已经接近完美解决了,至于热更新相信随着后面不断的更新迭代,会有越来越优秀的解决方案。
我相信flutter这种跨平台开发技术就是未来,flutter在未来能否称王不好说,后面也许会有更好的开发框架,所以现在抓紧学会flutter,不仅现在收益,在不久的以后新技术产出,就能更快速的上手,吃到一波非常大的红利!