flutter学习日记(一)————文章以及flutter介绍

216 阅读4分钟

flutter学习日记(二)————flutter的布局和页面组件

flutter学习日记(三)————Flutter的生命周期和路由

flutter介绍

话不多说,文章是面对flutter小白进行开始。先个人的了解对flutter进行一个介绍吧

Flutter是Google开源的一个移动应用开发框架,拥有丰富的组件和接口,几乎能够满足对一款软件的所有要求,用dart语言开发。

Dart语言的历史的话,说来就话长了,简单引用flutter实战作者的话语吧。

这里推荐一下Flutter的学习网址:

  1. flutter官网
  2. flutter中文网
  3. 《flutter实战》
  4. flutter插件官网
  5. Dart 官方教程/文章收集整理贴
  6. flutter优秀开源项目GSYGithubApp

开发效率高

Dart运行时和编译器支持Flutter的两个关键特性的组合:

基于JIT的快速开发周期:Flutter在开发阶段采用,采用JIT模式,这样就避免了每次改动都要进行编译,极大的节省了开发时间;

基于AOT的发布包: Flutter在发布时可以通过AOT生成高效的ARM代码以保证应用性能。而JavaScript则不具有这个能力。

高性能

Flutter旨在提供流畅、高保真的的UI体验。为了实现这一点,Flutter中需要能够在每个动画帧中运行大量的代码。这意味着需要一种既能提供高性能的语言,而不会出现会丢帧的周期性暂停,而Dart支持AOT,在这一点上可以做的比JavaScript更好。

快速内存分配

Flutter框架使用函数式流,这使得它在很大程度上依赖于底层的内存分配器。因此,拥有一个能够有效地处理琐碎任务的内存分配器将显得十分重要,在缺乏此功能的语言中,Flutter将无法有效地工作。当然Chrome V8的JavaScript引擎在内存分配上也已经做的很好,事实上Dart开发团队的很多成员都是来自Chrome团队的,所以在内存分配上Dart并不能作为超越JavaScript的优势,而对于Flutter来说,它需要这样的特性,而Dart也正好满足而已。

类型安全

由于Dart是类型安全的语言,支持静态类型检测,所以可以在编译前发现一些类型的错误,并排除潜在问题,这一点对于前端开发者来说可能会更具有吸引力。与之不同的,JavaScript是一个弱类型语言,也因此前端社区出现了很多给JavaScript代码添加静态类型检测的扩展语言和工具,如:微软的TypeScript以及Facebook的Flow。相比之下,Dart本身就支持静态类型,这是它的一个重要优势。

为何要用Flutter

  1. flutter用一套代码,即可跨安卓和ios平台开发
  2. 相对于安卓和ios平台独立开发,flutter的代码量甚至更少,运行速度更快
  3. flutter开发的时候,提供完整接口,而且调用非常简单
  4. 更加优美,flutter有完美的动画效果,以及可以在2dimensions网站指定优雅的动画效果自定义
  5. flutter类似react框架,有自己的diff算法,实现组件复用。同时提供了相应的开发者工具,让我们设计,构建,测试以及debug更加方便

Flutter的组件化

Flutter的组件分为两大块:StatelessWidget和StatefulWidget

看名字就能够知道StatelessWidget为静态组件,不需要动态加载,一般用来作为项目当中没有网络交互的组件,而StatefulWidget为动态组件,根据用户的交互,以及网络对其状态改变来改变其显示。Flutter为典型的mvvm框架。

Flutter的架构

flutter的架构不仔细展开来讲了,因为如果了解到这里面的知识了,相比也是很有经验的人了。这里就简单说一下,如下图,flutter是在平台的硬件接口上的c++上面的一层,跟js有点类似,不过flutter更类似js搭建的react框架。

总结

这里就只是简单的介绍了一下Flutter,不得不说,Flutter确实是一个很厉害的框架,就是可惜国内的人用的还不够多,但是值得追捧,如果你也阅读了Flutter官网上那些优秀的页面,不要怀疑,Flutter开发就是这么简洁而优雅。

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的点击加入群聊iOS交流群:789143298 进群密码123,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!