flutter入门与实战教程

本文针对的是flutter的初学者,旨在让你以一种通俗易懂的方式入门 。除了颤振代码,还将介绍语法、原理和特点等基础知识 。相信这篇文章可以帮助你学习和理解flutter 。
跨平台技术简介
让我们来看看当前的一些跨平台方案 。如果从前端渲染的角度来分类,大致可以分为以下几种方案 。
webview呈现
这个方案很好理解,现在很多项目都会嵌入h5页面 。它是用javascript等前端技术开发的,在客户端用webview渲染 。这个方案目前被微信小程序使用 。
它具有使用成熟的前端技术进行开发、学习成本低、开发效率高、支持动态代码发布等明显优势 。
但是缺点也很明显,表现体验和原生的差距还是很大的 。
本机控件呈现
由于webview的性能不够好,所以有一种用本机控件呈现的方案 。这个方案也是使用javascript开发的,但是不同的是它比较终是通过调用本机控件来呈现的 。这个方案的代表是脸书的反应原生 。
由于使用本机控件进行呈现,性能体验将更接近本机 。但是只是比较近,和原生还是有差距的,因为需要javascript和原生频繁的通信,通信效率比较低 。
另外,由于需要适应各个平台的控件,有可能系统控件已经更新,但是框架本身没有更新,导致了一些问题 。换句话说,该方案受到本机控件的限制 。
绘图引擎渲染
然后就是主角 。
在前端,如果完全不用原生控件,我们可以通过系统的绘图api来绘制一个用户界面 。从这个角度来说,每个平台都可以使用一个统一接口的绘图引擎来绘制接口,这个引擎比较终调用系统的api来绘制 。这样它的性能可以接近原生,不受原生控件的限制,可以实现不同平台的统一ui 。
flutter就是这样一个开发框架 。
flutter简介
跨平台用户界面解决方案
flutter是google开发的跨平台ui解决方案 。换句话说,原则上只处理ui 。如果涉及到平台本身的一些功能,比如调用蓝牙、摄像头等,一般需要本机代码才能操作 。但是现在会有一些第三方库来帮助我们解决这些问题 。
绘图引擎skia
flutter使用skia作为其绘图引擎 。skia已经被谷歌收购 。目前很多google产品都是skia画的,包括android 。
android内置skia,ios没有,所以玩ios安装包的时候,skia会一起敲进去 。结果,ios的包在打包了同样的flutter代码后,比android的包还大 。
开发语言dart
flutter使用一种叫做dart的开发语言 。dart也是google自己的,它是一种面向对象的语言,从中我们可以看到一些其他开发语言的影子 。学起来不难 。
当谈到跨平台解决方案时,我们可以发现其他解决方案基本上都是使用javascript作为开发语言,但是flutter为什么不用呢?就因为dart归谷歌所有?这个问题先留着,以后再说 。
搭建开发环境
这里的部分简单拍下,具体施工流程可以在:查看
https://flutter-io.cn/docs/get-started/install
主要建筑步骤如下:
fluttersdk
地址:
https://flutter.dev/docs/development/tools/sdk/releases
由于在中国的访问受限,这位官员为中国开发商树立了一个镜像:
https://flutter.dev/community/china
更新环境变量
解压缩后,将flutterin的完整路径添加到环境变量path中 。
安装开发工具
理论上文本编辑器都可以用来开发flutter应用,但是推荐的开发工具是androidstudio、intellij、vscode 。因为的flutter和dart插件可以安装在这些开发工具上,获得更好的开发体验 。本文使用androidstudio进行演示 。
如果打算开发ios应用,还需要安装xcode 。
安装插件