字节团队内部出品《Flutter完整开发实战详解⼿册》带你参透Flutter的终究奥义Flutter ⼤⽕的原因
有⼈说 Flutter ⼤⽕主要原因是它选择了 Dart 语⾔,Dart 有着⾼性能的表现和可快速分配内存的能⼒,能同时⽀持 JIT 和 AOT 模式,允许在带类型的语⾔中⽀持形变和有状态热重载,能编译出⾼效率的 ARM 机器码指令,Dart 作为⾯向对象的语⾔也能让绝⼤多数开发者更快速上⼿。我认可 Dart 语⾔有⼀定的优势,但这样的优势并⾮ Dart 独有,我想这更不会是⼤家选择 Flutter 的核⼼原因,这是因果倒置。事实上,Dart 是 2011 年推出的,在 Flutter 出现之前,Dart 曾⼀度⼏乎被⼈遗忘。正是因为近年来 Flutter 的⽕爆,才让 Dart 重新进⼊⼤众的视线。Flutter 当初选择 Dart,或者仅因为 Google 的 Flutter 和 Dart 这两个团队离得⽐较近,交流⽐较⽅便。
我认为 Flutter 之所以⼤⽕,主要是以下⼏个原因:
⼀、现有跨平台技术存在缺陷
在移动互联⽹时代,Android 和 iOS 两⼤阵营长期共存,再加上体系成熟的 Web 前端技术,导致出现同⼀个应⽤需多端重复开发的⼈⼒成本问题。正因如此,移动时代下的跨平台技术是⼀个需要长期研究的课题。如果当下的跨平台技术已经有⽐较完美的解决⽅案,可能就没有新技术萌芽的机会。⽽事实上,⽬前业界⽐较成熟的跨平台技术都存在⼀定的缺陷,⽐如⼩程序(WebView)渲染耗时过长,⽩屏率会影响转化收益,能实现的功能⾮常受限;再⽐如 React Native 的性能不⾜、问题排除难、维护成本⾼等。
⽽ Flutter 的出现,让这些跨平台开发问题有所改善,它还是 Google 开源的技术,⾃⾝也具备⼀定的热度。另外,⼀直备受关注且神秘的 Fuchsia 系统在 UI 框架上使⽤的也是 Flutter,可作为长期战略投⼊,这也增强了⼤家对 Flutter 的信⼼。
⼆、研发效率就是竞争⼒
移动互联⽹进⼊下半场,出现⼀些新兴互联⽹独⾓兽、⼩巨头,在没有历史包袱的情况下,更愿意尝试技术上限更⾼的新技术。从校招和社招的难度上不难发现:客户端的⼈才相⽐之前更为稀缺,尤其是 iOS ⼯程师。⽽下半场会有更多竞争和更为激烈的赛道,⽐如教育等⽅向。Flutter 本⾝⾮常适合从零开始的没有历史包袱的应⽤开发,对于新业务尤其是在团队⼈⼒紧缺的情况下,在技术选型上考虑 Flutter,能加快产品在多端落地、快速试错。
三、集漂亮与流畅集于⼀⾝
Flutter “⼀出⽣”就以“UI 漂亮、像素级可控、性能流畅、可媲美原⽣性能”等特点吸引⼴⼤开发者的眼球,⾃渲染引擎甚⾄具备开发游戏的能⼒。移动下半场,没有⼈⼝红利,竞争更为激烈,如何能更好地满⾜⽤户对⾼品质、⾼流畅的需求,便是移动端⼀种强有⼒的竞争⼒。跨平台技术想要拥有更⾼的流畅度,采⽤⾃渲染技术的⽅案便是更优解,也是⼀个更为彻底的跨平台技术⽅向。
虽然不敢说 Futter 是跨平台开发的终极之选,但是他确实能带来了不⼀样的未来。
Flutter作为⼀门新开源的移动UI框架,⽬前学习的⼈也不在少数,在设计之初,⾕歌的⼯程师就考虑到了开发者在学习Flutter的成本问题,Dart语⾔与Flutter的结合,获得泛型、class等强类型语⾔的特性保证了我们开发的应⽤安全可控,同时Flutter借鉴了FaceBook成熟开源框架React的单向数据绑定的特性,使我们在开发的过程中可以恰到好处的更新和控制我们的页⾯。
本来计划整理⼀份能由浅⼊深、系统介绍Flutter的学习⼿册,但最近正好看到⼀份由团队出品的Flutter学习资料,我连夜从床上爬起来,将Fluteer项⽬撸了个遍,其内分为两个部分《Flutter完整开发实战详解⼿册》和《Flutter⼊门与实战》,我这就分享出来给⼤家,独乐乐不如众乐乐嘛。
《Flutter完整开发实战详解⼿册》组织结构
这份⼿册采⽤由浅⼊深的⽅式介绍Flutter技术原理,分为 14 章,总计 193 页,整理⽬录如下:
⼀、Dart语⾔和Flutter基础
本章节主要涉及:环境搭建、Dart语⾔、Flutter的基础。
⼆、快速开发实战篇
本章节将为你着重展⽰:如何搭建⼀个通⽤的Flutter App 常⽤功能脚⼿架,快速开发⼀个完整的 Flutt
reactnativeui框架
er 应⽤。
三、打包与填坑篇
本章节将为你着重展⽰:Flutter开发过程的打包流程、APP包对⽐、细节技巧与问题处理。描述的Flutter的打包、在开发过程中遇到的各类问题与细节。
四、 Redux、主题、国际化
本章节主要介绍 Flutter 中 Redux 的使⽤,并结合Redux 完成实时的主题切换与多语⾔切换功能。
五、深⼊探索
本章节主要探索下 Flutter 中的⼀些有趣原理,帮助我们更好的去理解和开发
六、深⼊Widget原理
本章节主要在前⽂的探索下,针对描述⼀下 Widget 中的⼀些有意思的原理。
七、深⼊布局原理
本章节主要在前⽂的基础上,再深⼊了解 Widget 和布局中的⼀些常识性问题。
《Flutter⼊门与实战》组织结构:
其内容分为5个章节,总计441页
第⼀章、Flutter基本功能