为深入推进党的二十大精神进教材、进课堂、进头脑,落实立德树人根本任务,实施课程思政,南宁职业技术学院“双高计划”建设专业群软件技术专业群教学团队,组织一线教师编写面向高职层次师生使用的《Flutter跨平台应用开发》教材。秉持德技并修的教材编写理念,突出“应用性”“实践性”“项目化”和“递进式”原则,充分体现高职教育特色。教材按照项目教学模式递进组织教学内容,以项目为载体,项目的选择突出Flutter技术应用和Hybrid混合应用开发技能训练,将Flutter开发流程以体系化的课程项目案例贯穿始终,形成“项目-任务”体例结构。通过项目和任务的实践教学,培养造就更多高技能人才,把大国工匠精神、创新精神融入项目任务和教学单元中。
教材共包含8个项目:
项目一:简要介绍Flutter的基本概念及总体架构。介绍Flutter SDK的下载方法,Android Studio的安装与配置及制作第一个Flutter项目。
项目二:介绍Dart语言。包括Dart语言的内置数据类型与注释、变量与常量、函数、选择、分支与循环、面向对象、异步编程、泛型的使用。
项目三:介绍基本Flutter组件的使用方法。基本组件实现底部导航功能。
项目四:介绍布局的使用方法。重点介绍事件实现用户信息功能、布局设计和实际应用的具体实施方案。
项目五:介绍路由的使用方法。重点用户登录功能。
项目六:介绍动画和手势的使用方法。重点介绍手势实现带有动画效果的页面切换功能。
项目七:介绍JSON解析方法和Provider的使用方法。基于JSON解析实现分类页面功能。
项目八:移动电商实战项目,包括登录功能、App首页、商品分类页面、会员中心等功能。
教材由南宁职业技术学院软件技术专业群许建豪和胡集仪担任主编,负责全套教程的编写思路、体例结构和内容设计,南宁职业技术学院黄伟、禤静、苏叶健担任副主编。编者均为优秀一线教学教师,积累丰富的项目开发经验。教材内容循序渐进,按照初学者学习思路编排,条理性强,语言通俗,容易理解。为便于复习和自学,编写团队还开发了丰富的教学资源,每章均配备丰富的习题。
在本教材编写过程中,参考了国内外的著作和文献,在此对著作者致以由衷的谢意。同时得到了许多同行和企业专家的帮助和支持,在此一并致谢。特别感谢编委成员辛勤的付出,他们治学严谨,帮助我们解决了教材编写过程中遇到的问题。
限于编者水平,教材中错误和缺点在所难免,欢迎广大读者提出宝贵意见和建议,我们不胜感激。
项目一搭建Flutter环境1
1.1任务11 下载Flutter SDK2
1.1.1访问英文官网2
1.1.2访问Flutter中文开发者网站4
1.2任务12 安装与配置Flutter SDK6
1.2.1安装Flutter SDK6
1.2.2配置环境变量6
1.2.3检查Flutter环境9
1.3任务13 安装Flutter开发工具10
1.3.1安装Android Studio10
1.3.2安装Visual Studio Code25
1.4任务14 启动并创建第一个Flutter项目28
1.4.1下载Flutter插件28
1.4.2创建Flutter项目32
1.4.3测试Flutter项目35
1.5扩展与提高36
1.5.1了解Flutter36
1.5.2了解Flutter总体架构36
1.6项目小结37
思政小结37
1.7拓展练习38
项目二认识Dart语言39
2.1任务21 掌握注释与数据类型40
2.1.1注释40
2.1.2数据类型41
2.2任务22 掌握Dart中的变量与常量41
2.2.1变量声明41
2.2.2常量声明43
2.3任务23 掌握内置类型的常用操作44
2.3.1数值类型44
2.3.2字符串45
2.3.3布尔类型46
2.3.4列表46
2.3.5映射47
2.4任务24 掌握运算符的使用47
2.4.1算术运算符47
2.4.2类型判断运算符48
2.4.3条件表达式48
2.4.4级联运算符49
2.4.5条件成员访问符49
2.5任务25 掌握条件选择与循环49
2.5.1条件选择49
2.5.2循环50
2.6任务26 掌握函数的使用52
2.6.1定义函数52
2.6.2函数的参数53
2.6.3匿名函数56
2.6.4箭头函数56
2.7任务27 掌握Dart中的面向对象57
2.7.1类的定义57
2.7.2Getters和Setters58
2.7.3构造方法59
2.7.4类的初始化列表61
2.7.5运算符重载62
2.7.6类的继承63
2.7.7抽象与接口65
2.8任务28 掌握异常处理66
2.9任务29 实现泛型68
2.10任务210 掌握库与导入69
2.11任务211 实现异步编程70
2.12扩展与提高71
2.12.1创建dart文件71
2.12.2编写代码72
2.12.3运行与测试72
2.13项目小结73
思政小结73
2.14拓展练习73项目三基于基础组件实现底部导航功能74
3.1任务31 认识material包74
3.2任务32 认识Widget75
3.3任务33 认识StatelessWidget和StatefulWidget76
3.3.1StatelessWidget76
3.3.2StatefulWidget77
3.4任务34 认识Material组件中的应用程序结构和导航组件79
3.4.1MaterialApp79
3.4.2Scaffold81
3.4.3AppBar82
3.4.4BottomNavigationBar84
3.5任务35 认识ThemeData86
3.6任务36 实战案例:实现底部导航87
3.7项目小结96
思政小结96
3.8拓展练习97
项目四基于布局实现用户信息功能98
4.1任务41 认识基础组件Text98
4.2任务42 认识ListView与ListTile102
4.3任务43 认识Container容器104
4.4任务44 认识BoxDecoration容器107
4.5任务45 认识Row与Column109
4.5.1Row109
4.5.2Column112
4.6任务46 实战案例:实现用户信息114
4.7项目小结119
思政小结120
4.8拓展练习120
项目五基于路由实现用户登录功能121
5.1任务51 认识基本的布局组件121
5.1.1Center121
5.1.2Padding123
5.1.3SizeBox126
5.2任务52 认识基本的表单组件128
5.2.1TextFormField128
5.2.2按钮130
5.3任务53 认识剪裁组件134
5.4任务54 认识路由137
5.5任务55 认识校验组件和事件处理139
5.5.1TextFormField的可选参数139
5.5.2validator 校验140
5.5.3调用数据校验140
5.6任务56 实战案例:实现用户登录143
5.7项目小结151
思政小结151
5.8拓展练习151
项目六基于手势实现页面切换功能152
6.1任务61 了解Flutter中的动画152
6.6.1Animation153
6.6.2Tween153
6.2任务62 实现淡入淡出动画效果154
6.3任务63 实现缩放动画效果157
6.4任务64 实现旋转动画效果159
6.5任务65 实现左右滑动动画效果162
6.6任务66 认识手势组件165
6.6.1Pointers165
6.6.2手势165
6.7任务67 实现手势的垂直滑动166
6.8任务68 实战案例:实现手势实现页面切换动画效果168
6.9项目小结176
思政小结176
6.10拓展练习176
项目七基于JSON解析实现分类页面功能177
7.1任务71 认识JSON文件177
7.1.1JSON简介177
7.1.2JSON的基本语法178
7.1.3JSON对象178
7.2任务72 实现通过Dio发起HTTP请求179
7.2.1引入Dio库到Flutter项目中179
7.2.2HTTP请求方法179
7.2.3获取远程数据180
7.3任务73 使用 dart:convert手动序列化JSON182
7.3.1内连序列化JSON182
7.3.2在模型类中序列化JSON184
7.4任务74 使用代码生成库序列化JSON187
7.4.1在项目中设置json_serializable187
7.4.2以json_serializable的方式创建model类187
7.4.3运行代码生成程序188
7.4.4使用json_serializable模型189
7.5任务75 认识InkWell组件189
7.6任务76 认识Provider191
7.7任务77 实战案例:实现商品分类页面194
7.8项目小结209
思政小结209
7.9拓展练习209
项目八实现移动电商实战项目210
8.1任务81 介绍项目210
8.2任务82 实现登录页面211
8.3任务83 实现APP首页212
8.4任务84 实现商品分类页面213
8.5任务85 实现用户中心213
8.6任务86 实现手势切换页面214
8.7项目小结214
思政小结215
参考文献216
1.适用对象
本教材可作为高等院校软件技术相关专业的教材,也可作为有关专业技术人员的培训教材,同时也是广大移动应用开发爱好者以及Flutter应用开发爱好者必备的参考教材。
2.学习本教材需要具备的知识和能力基础
阅读本教材,需要至少熟悉一种编程语言,最好接触过PC客户端、移动开发或Web前端开发中的一种,具有查阅文献资料的基本能力。
3.本教材预期达到的学习效果
本教材旨在提升学生的知识素养、专业技能与编程兴趣,构建学生在程序设计方面的逻辑思维,逐步提升Flutter编程能力,为移动开发专业课程的程序设计奠定基础。
预期达到的学习效果如下:
(1)专业能力效果
分析并完成实际项目,能够理解并分析需求,培养具有分析能力和解决问题能力的综合素质人才。总结Flutter开发编程思想,理解并熟练运用程序设计中的基本概念;理解模块的概念,运用模块化的思想,提出解决方案。
(2)素质能力效果
提升学生的移动开发素质,养成良好的学习习惯,提升分析问题、解决问题的能力。能够与团队成员良好合作,相互协作完成任务,能够针对教师布置的任务自主学习新技术和新方法,并提出解决方案。
(3)工程能力效果
理解一个完整的Flutter项目的设计与实施流程,培养学生的工程实践能力,能够根据需求,设计、实现Hybird混合应用开发的全过程。