1. Flutter是什么?
Flutter可以用一份代码同时生成iOS、Android两个平台下的高性能的、高保真的App
2. 为什么要用Flutter?
在Flutter的官网其实也已经给出了答案,
- Be highly productive(提高开发效率)
- 一份代码同时开发iOS和Android
- 用更少的代码去干更多的事
- 快速迭代
- 通过热加载,在App运行时可以直接通过更改代码就能直接看到效果
- 修复crash并且可以从从应用程序停止的地方继续进行调试
- Create beautiful, highly-customized user experiences(漂亮、高度定制的用户体验)
- Flutter提供了丰富的Material Design和Cupertino(iOS风格)的widget
- 实现定制、美观、品牌驱动的设计,而不受原生控件的限制
简单的解读下,就是Flutter提供很多针对与iOS和Android平台下小组件,能够高效的、快速的跨平台开发
3. Flutter的核心原则
-
一切皆为widget widget是Flutter应用程序的基本构建模块,可以自由组合不同的widget,而且widget还可以存储状态。单个widget的结构其实跟树差不多,如图:
4. Flutter VS React Native
我们可以对比一下由Flutter和React Native开发的程序的区别不难发现
- Flutter不会调用系统自带的UI组件,只需要操作系统提供一个画布(Canvas),渲染部分由应用代码和Flutter自己完成,这样的架构就减少了应用代码跟系统平台之间的性能消耗
- React Native是把JS代码编译成JS文件,这个文件会映射到virtual DOM这个虚拟的JS数据结构中,通过bridge传递到native,然后根据数据属性设置各个对应的真实native的View
简单的说了这么多,那我们就开始愉快Flutter之旅吧!
5. 开发系统与工具选择
工欲善其事必先利其器,开发系统与工具的选择也就尤其重要了,磨刀不误砍柴工!
- Windows还是Mac?
操作系统 | 价格 | 功能 |
---|---|---|
Windows | 价格亲民 | 无法开发iOS |
Mac | 价格较高 | 能同事开发iOS和Android |
- Android Studio还是Visual Studio Code?
VS虽是前端的开发利器,但并不能调试Android项目,AS的话是google的亲儿子,所以在一些新特性的兼容上会比VS更快更好,包括一些调试也会更方便,所以我们选择AS作为我们的开发工具,当然官方推荐也是AS
6.开发环境的搭建
Flutter中文网已经介绍得很详细了,这里就不多做赘述。传送门