前言
随着移动端开发技术越来越成熟,近些年,工程师们除了致力于解决工程需求外,更多地将精力放在如何更大程度地提高移动端应用的开发效率。开发移动端应用有一个非常令人困扰的问题是平台不统一,对于主流的iOS与Android平台,开发其应用使用不同的编程语言和不同的开发框架使得开发周期和成本都提高。Flutter框架就是为处理应用跨平台问题提供的一种解决方案。
在Flutter之前,已经有许多问世的跨平台应用开发框架,例如PhoneGap框架与React Native框架,其中有些是基于Web与原生的交互实现跨平台,有些是基于JavaScript引擎渲染原生页面实现跨平台,Flutter则是跨过原生层,直接向GPU提供视图数据进行页面的渲染,相比其他框架,Flutter能表现出更好的性能。
对于开发者Flutter框架表现得非常友好,首先其拥有快速开发的特点,Flutter的热重载机制可以更快地进行UI的构建和测试,添加功能和修改错误都可以瞬间得到反馈,这是纯原生开发无法企及的。Flutter框架中提供了丰富的UI组件,包括标签、按钮、滚动视图与列表视图等。使用这些组件可以快速地进行页面的构建,并且可以在各个平台上保持一致的体验。在代码编写方面,Flutter选择Dart作为应用开发语言,其语法简洁,拥有许多现代化编程语言的特性。同时,Flutter提供了与原生API交互的能力,基本可以实现实际应用的所有需求。
本书结构
本书分为10个章节对Flutter应用开发进行全面的讲解。
第1章为入门章节,主要介绍Flutter框架的历史、发展过程以及应用场景,并且在这一章中将帮助读者配置开发Flutter应用程序必备的开发环境。
第2章和第3章将介绍Flutter应用开发的语言基础,主要介绍Dart语言的语法,帮助读者更快地掌握开发Flutter必备的语言技能,使读者可以无障碍地进行后续内容的学习。
第4章和第5章着重介绍Flutter框架中UI组件的应用,第4章介绍基础组件的应用,第5章介绍高级组件的应用。一款完整的应用程序是由多个页面组合而成的,页面又是由各种组件组合而成的,Flutter框架中默认提供了非常丰富的组件供开发者使用,并且可以通过插件的方式扩展使用其他第三方组件,如果依然无法满足需求,那么可以通过自定义组件的方式定制需要使用的组件。通过这两章的学习,读者可以自主开发简单的独立页面。
第6章将介绍Flutter中动画与手势的相关技术,Flutter是一个优秀的UI跨平台框架,动画是UI开发中非常重要的一部分,炫酷的动画可以给用户带来眼前一亮的快感。通过Flutter的手势系统可以定制出各种复杂情境下的交互逻辑。通过本章的学习,读者将会对UI开发更加得心应手。
第7章介绍Flutter中的网络与数据相关技术,网络是现代应用程序必备的功能,网络为应用程序提供必要的内容数据,通过使用插件在Flutter中可以方便地对网络数据进行解析,将解析的数据渲染到页面上,即可完成一个完整Flutter页面的开发。
第8章和第9章将安排两个完整的Flutter应用程序供读者练习,通过实战练习综合应用前面所学习的知识,帮助读者更快、更牢固地掌握所学到的内容。第8章将通过一个新闻客户端项目帮助读者更好地掌握网络请求、数据解析、页面渲染等方面的知识。第9章将安排一个小游戏,通过游戏的开发深入理解Flutter动画框架的应用。通过这两章的练习,读者将拥有独立开发一款完整Flutter应用的能力。
第10章介绍了如何将Flutter快速应用于iOS、Android项目和Web应用程序。
视频教学与源码下载
本书提供了完整的源代码供读者在学习过程中进行参考,并提供了一套Dart语言极速入门的视频课程,读者在学习本书的同时可以参考这些资料。
扫描以下二维码可以下载本书教学视频:
扫描以下二维码可以下载本书源代码:
如果你在下载过程中遇到问题,请发送邮件至booksaga@126.com,邮件主题是“用Flutter极速构建原生应用”。
致谢
感谢你选择本书作为学习Flutter应用开发的入门教程,衷心希望本书可以带给你预期的收获,帮助你掌握新技术,更具行业竞争力。本书能够出版还要感谢清华大学出版社的王金柱编辑,在本书写作的过程中,王金柱编辑提供了非常多有价值的建议与资料,并且对本书中的内容进行了严格的校对,没有他的付出,本书无法顺利地到达读者的手上。
目前,Flutter框架依然在飞速地完善和更新中,本书是作者学习和开发经验的总结,限于水平和时间,本书肯定存在理解不当的地方,欢迎读者朋友和业界专家批评指正。
张益珲
2019年8月18日