FlutterApp开发:从入门到实战免费阅读在线

简介: 本书系统讲解使用Flutter进行跨平台开发应具备的知识,包含丰富的代码示例与效果图片,组件功能一目了然。

第1章

自从“大前端”的概念被提出来以后,移动端与前端之间的边界越来越模糊。例如,开发人员可以通过Android与iOS原生技术来开发App,也可以使用React Native(RN)、H5等前端框架开发App。这些技术无不体现着移动端开发的前端化。

但不管是使用移动端原生开发App,还是使用前端技术开发App,都会导致同一个App被多端重复开发的问题,大大增加开发成本。正因如此,“一次编写,处处运行”成了移动互联网企业的美好愿景,但实际上往往无法如愿以偿。目前业界比较成熟的跨平台技术几乎都存在一定的缺陷,例如,微信小程序(基于X5内核的WebView)渲染耗时过长、白屏率过高会影响转化收益,能实现的功能非常受限;React Native具有性能不足、问题排除难、维护成本高等缺陷。所以,到目前为止,开发人员依然需要准备两套代码,分别运行在Android端与iOS端,这样不仅增加了开发的成本,还要维护两端代码,耗时、耗力。而Flutter的出现,让这些开发问题有所改善。

说了这些,想必你已经初步了解Flutter技术,迫不及待地想要加入这个“阵营”。那么,从现在开始,我就带你踏上学习Flutter的“旅程”,一步步引导你成为一名合格的跨平台开发人员。

1.1

Flutter是谷歌公司推出的一套跨平台的开源用户界面(User Interface,UI)框架,同时支持Android App与iOS App开发。Flutter在2017年5月发布第一个版本,在2018年12月发布了Flutter 1.0的稳定版,到本书成书时的版本是Flutter 1.13.6。

从Flutter团队开发的那么多版本,再结合目前的技术优势来看,谷歌公司正在大力推广Flutter。不管是在GitHub社区,还是在Stack Overflow网站上,关于Flutter的开源项目以及相关的提问越来越多。一直备受关注的、神秘的Fuchsia操作系统使用的也是Flutter的UI框架,这也增强了大家对Flutter的信心。下面让我们详细地了解Flutter的优势。

1.2

与其他前端技术相比,Flutter有着明显的优势。这些优势融入基础语言和软件开发工具包(Software Development Kit,SDK)设计中,以解决其他前端技术的常见问题。想要知道你为什么要为下一个项目选择Flutter,不妨先了解其技术优势。

一提到跨平台性,估计很多前端开发人员都会想到Facebook公司推出的React Native开发框架。开发人员可以利用JavaScript和React Native获得一致的开发体验,但其实React Native在实际的平台上还需要适配和桥接差异。

Flutter就不一样,它是依靠Flutter引擎虚拟机在iOS和Android上运行的,开发人员可以通过Flutter框架和应用程序接口(Application ProgrammingInterface,API)在内部进行交互。Flutter引擎是使用C/C++编写的,具有低延迟输入和高帧率的特点。所以Flutter不仅实现了将一套代码部署在多个平台,而且适合开发游戏,能达到120fps的超高性能技术实现。除此之外,Flutter还提供了自己的小组件集合,可以直接在操作系统提供的画布上描绘控件。

Flutter开发不使用WebView这种比较“老”的开发模式,也不使用操作系统的原生控件,而是使用Skia作为二维渲染引擎,保证了各个平台上UI的一致性,通过“自绘UI+原生系统”,可以实现高帧率的流畅UI,也可以避免对原生控件的依赖所带来的高昂的维护成本。

版权:人民邮电出版社