Flutter App开发 从入门到实战

Flutter App开发 从入门到实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-10
版次: 1
ISBN: 9787115568755
定价: 99.90
装帧: 平装
页数: 386页
字数: 585千字
9人买过
  • Flutter是谷歌公司推出的跨平台开源UI框架,同时支持Android App与iOS App开发,使用这一框架可以大大提高开发效率。本书共14章,系统讲解Flutter背景、Dart语言的语法基础、Flutter组件、状态管理、事件处理、路由管理、动画、网络编程、数据存储、相机、主题与国际化、混合开发等核心内容,并通过多个案例以及“天气预报”App和“我的视频”App两个完整的实战项目,将理论知识与实践结合,提升读者的实战开发能力。通过对本书的学习,读者将会对Flutter框架以及跨平台开发有全面的认识,并可在实践中使用Flutter大大提高移动开发效率。
      本书适合正在使用Flutter以及对Flutter感兴趣的开发人员阅读和参考。 李元静,移动开发工程师,目前就职于某互联网金融公司,主导跨平台混合项目开发和兼容性测试工作。他担任过CSDN知识库编辑,拥有多年移动开发经验,对Android App开发、iOS App开发以及跨平台开发有丰富的研究和应用经验。他热衷于技术的传播与分享,撰写了大量关于移动开发的技术文章,文章阅读量超过140万次。 第 1章  初识Flutter1

    1.1  Flutter简介1

    1.2  Flutter的优势1

    1.2.1  跨平台性2

    1.2.2  高帧率的流畅UI2

    1.2.3  热重载2

    1.2.4  对开发环境要求不高2

    1.2.5  高性能2

    1.2.6  学习成本低3

    1.3  Flutter的技术特性3

    1.4  Flutter的架构3

    1.4.1  Flutter框架3

    1.4.2  Flutter引擎4

    1.5  开发环境的搭建4

    1.5.1  安装Android Studio5

    1.5.2  在Android Studio中安装Flutter开发库5

    1.5.3  在VSCode中安装Flutter开发库8

    1.5.4  搭建Dart语言开发环境9

    1.5.5  通过IntelliJ IDEA搭建纯Dart语言开发环境10

    1.6  创建第 一个Flutter项目11

    1.7  体验热重载13

    1.8  习题14

    第 2章  Dart语言:一切皆对象15

    2.1  Dart语言简介15

    2.1.1  一切皆对象15

    2.1.2  面向接口编程15

    2.1.3  类型可选16

    2.2  Hello World16

    2.3  变量与常量17

    2.3.1  变量17

    2.3.2  常量17

    2.4  内置类型18

    2.4.1  数值类型18

    2.4.2  布尔类型19

    2.4.3  字符串类型20

    2.4.4  列表类型21

    2.4.5  键值对类型23

    2.4.6  动态类型与Object23

    2.4.7  符号字符24

    2.4.8  符号25

    2.5  运算符25

    2.5.1  三目运算符25

    2.5.2  取商运算符26

    2.5.3  自定义类操作符26

    2.5.4  级联操作符27

    2.6  get和set方法27

    2.7  异常捕获28

    2.7.1  throw28

    2.7.2  try-catch28

    2.8  循环语句29

    2.8.1  for循环29

    2.8.2  while循环30

    2.8.3  do-while循环30

    2.9   switch语句30

    2.10  函数31

    2.10.1  main()函数31

    2.10.2  可选参数31

    2.10.3  必选参数31

    2.10.4  可选位置参数32

    2.10.5  默认参数32

    2.10.6  函数作为参数传递32

    2.10.7  函数作为变量33

    2.10.8  级联33

    2.11  异步编程34

    2.11.1  Future34

    2.11.2  async和await35

    2.12  抽象方法和抽象类36

    2.13  接口37

    2.14  继承37

    2.15  mixin38

    2.16  泛型40

    2.17  库42

    2.17.1  导入库42

    2.17.2  拆分库43

    2.18  习题43

    第3章  Flutter组件45

    3.1  基础组件45

    3.1.1  Text46

    3.1.2  Button47

    3.1.3  Icon49

    3.1.4  Image49

    3.1.5  FlutterLogo51

    3.2  单一子元素组件51

    3.2.1  Container51

    3.2.2  Padding54

    3.2.3  Align55

    3.2.4  Center55

    3.2.5  FittedBox55

    3.2.6  AspectRatio57

    3.2.7  SingleChildScrollView57

    3.2.8  FractionallySizedBox58

    3.2.9  ConstrainedBox58

    3.2.10  Baseline59

    3.3  多子元素组件60

    3.3.1  Scaffold60

    3.3.2  AppBar61

    3.3.3  Row和Column62

    3.3.4  ListView63

    3.3.5  GridView66

    3.3.6  CustomScrollView67

    3.3.7  CustomMultiChildLayout68

    3.3.8  Stack69

    3.3.9  IndexedStack70

    3.3.10  Table70

    3.3.11  Flex71

    3.3.12  Wrap72

    3.3.13  Flow73

    3.4  其他常用组件的应用75

    3.4.1  TextField75

    3.4.2  TextFormField77

    3.4.3  侧滑菜单79

    3.4.4  轮播广告81

    3.4.5  折叠相册82

    3.5  习题85

    第4章  状态管理86

    4.1  状态管理组件86

    4.1.1  Widget树86

    4.1.2  Context树87

    4.1.3  StatelessWidget87

    4.1.4  StatefulWidget88

    4.2  State89

    4.3  Key94

    4.3.1  GlobalKey94

    4.3.2  LocalKey95

    4.4  InheritedWidget99

    4.5  包管理102

    4.6  习题103

    第5章  事件处理104

    5.1  原始指针事件104

    5.1.1  基本用法104

    5.1.2  忽略PointerEvent106

    5.1.3  命中测试107

    5.2  GestureDetector109

    5.2.1  基本用法109

    5.2.2  常用事件110

    5.2.3  GestureDetector实战111

    5.2.4  手势冲突113

    5.3  事件通知115

    5.3.1  通知冒泡115

    5.3.2  通知栏消息117

    5.3.3  通知数提醒118

    5.4  习题119

    第6章  路由管理120

    6.1  路由简介120

    6.1.1  基本用法120

    6.1.2  静态路由121

    6.1.3  动态路由123

    6.1.4  参数回传125

    6.2  路由栈128

    6.2.1  路由栈详解128

    6.2.2  pushReplacementNamed()方法128

    6.2.3  popAndPushNamed()与pushReplacement()方法129

    6.2.4  pushNamedAndRemoveUntil()方法129

    6.2.5  popUntil()方法131

    6.3  fluro库131

    6.3.1  创建路由管理类131

    6.3.2  实现路由跳转133

    6.4  习题135

    第7章  动画136

    7.1  动画的原理136

    7.1.1  帧136

    7.1.2  插值器137

    7.2  Flutter动画核心类138

    7.2.1  Animation138

    7.2.2  Animatable138

    7.2.3  AnimationController138

    7.3  Tween类140

    7.3.1  Tween.animate142

    7.3.2  Curve142

    7.4  动画的封装与简化145

    7.4.1  AnimatedWidget145

    7.4.2  AnimatedBuilder146

    7.4.3  ScaleTransition148

    7.5  路由动画149

    7.5.1  Hero150

    7.5.2  Hero动画原理151

    7.5.3  自定义路由动画153

    7.6  组合动画156

    7.7  动画实战160

    7.7.1  实现支付宝“咻一咻”

    动画160

    7.7.2  Flare动画164

    7.8  习题167

    第8章  网络编程168

    8.1  网络协议基础168

    8.1.1  HTTP168

    8.1.2  URL和URI171

    8.1.3  Get和Post172

    8.1.4  为什么普及HTTP 2.0172

    8.1.5  HTTPS174

    8.2  网络编程175

    8.2.1  HttpClient库175

    8.2.2  http库177

    8.3  JSON解析179

    8.3.1  手动解析JSON数据179

    8.3.2  手动将JSON数据显示到界面180

    8.3.3  自动解析182

    8.4  dio库186

    8.4.1  基本用法186

    8.4.2  单例模式188

    8.4.3  拦截器189

    8.4.4  适配器192

    8.5  异步编程193

    8.5.1  隔离193

    8.5.2  事件循环194

    8.5.3  线程模型196

    8.5.4  事件流198

    8.5.5  创建并使用隔离200

    8.5.6  使用compute()函数202

    8.5.7  FutureBuilder202

    8.6  网络状态判断204

    8.7  习题207

    第9章  数据存储208

    9.1  SharedPreferences208

    9.1.1  基本操作208

    9.1.2  实现登录账号存储功能209

    9.2  文件存储212

    9.2.1  基本操作213

    9.2.2  实现留言板功能214

    9.2.3  自定义外部存储目录路径216

    9.2.4  实现文件浏览器功能218

    9.2.5  实现文件夹的添加和删除功能220

    9.3  SQLite数据库223

    9.3.1  基本操作224

    9.3.2  封装数据库操作230

    9.3.3  用sqflite库实现添加客户信息功能233

    9.4  访问服务器端数据库237

    9.4.1  基本操作237

    9.4.2  访问云端数据库实战239

    9.5  习题241

    第 10章  相机242

    10.1  camera库242

    10.1.1  基本用法242

    10.1.2  使用takePicture ()方法拍照245

    10.1.3  切换摄像头248

    10.1.4  录制视频249

    10.2  视频播放251

    10.2.1  本地视频播放252

    10.2.2  网络视频播放254

    10.2.3  视频资源播放256

    10.2.4  视频样式258

    10.3  浏览图片和视频262

    10.3.1  调用相机拍摄图片263

    10.3.2  调用相机拍摄视频265

    10.3.3  选择图片与视频268

    10.3.4  完善自定义相机269

    10.4  下载图片和视频273

    10.5  识别二维码和条形码274

    10.6  生成二维码278

    10.6.1  qr_flutter库的基本用法278

    10.6.2  实现二维码生成器279

    10.7  习题280

    第 11章  主题与国际化281

    11.1  主题换肤281

    11.1.1  ThemeData组件的属性281

    11.1.2  全局主题应用282

    11.1.3  局部主题应用284

    11.1.4  主题换肤实战285

    11.2  第三方库换肤286

    11.2.1  状态管理配置287

    11.2.2  变更主题样式288

    11.2.3  第三方库换肤实战289

    11.3  国际化292

    11.3.1  自定义LocalizationsDelegate类294

    11.3.2  通过MyLocalizations类

    国际化296

    11.4  第三方库easy_localization299

    11.4.1  初始化配置300

    11.4.2  手动切换语言实战301

    11.5  习题303

    第 12章  混合开发304

    12.1  在Android原生项目中嵌入Flutter技术304

    12.1.1  创建Flutter模块304

    12.1.2  关联Flutter模块304

    12.2  Flutter与Android交互305

    12.2.1  Activity嵌入Flutter界面306

    12.2.2  Flutter向Activity传递参数308

    12.2.3  Activity向Flutter回传参数310

    12.2.4  Flutter向Activity回传参数312

    12.2.5  Flutter与Fragment313

    12.3  FlutterBoost框架315

    12.3.1  FlutterBoost架构315

    12.3.2  配置FlutterBoost框架的开发环境316

    12.3.3  使用FlutterBoost框架进行混合开发317

    12.4  aar模块化打包322

    12.5  习题323

    第 13章  实战项目1:“天气预报”App324

    13.1  需求分析及技术获取324

    13.1.1  获取定位信息324

    13.1.2  获取天气数据326

    13.1.3  项目使用的库326

    13.1.4  项目目录结构328

    13.2  业务功能开发328

    13.2.1  获取当前城市名称328

    13.2.2  获取天气数据329

    13.2.3  存储天气数据332

    13.3  主界面开发333

    13.3.1  背景动画333

    13.3.2  标题栏334

    13.3.3  当前天气详情335

    13.3.4  横向ListView组件336

    13.3.5  纵向ListView组件337

    13.3.6  HomePage代码338

    13.4  城市天气切换340

    13.4.1  路由管理340

    13.4.2  切换城市界面342

    13.5  城市搜索匹配345

    13.5.1  SearchDelegate类345

    13.5.2  实现SearchDelegate类346

    13.5.3  搜索文本框默认显示内容348

    13.6  导出App349

    13.6.1  使用命令行创建一个签名文件349

    13.6.2  在android目录下创建一个key.properties文件350

    13.6.3  修改android/app/build.gradle文件内容350

    13.6.4  导出APK文件351

    第 14章  实战项目2:“我的视频”App352

    14.1  实战项目概述352

    14.1.1  项目结构352

    14.1.2  界面分析353

    14.2  启动界面与主界面354

    14.2.1  启动界面354

    14.2.2  主界面355

    14.2.3  主界面内容357

    14.3  网络与JSON数据365

    14.4  路由管理368

    14.5  视频播放界面370

    14.6  短视频376

    14.7  个人中心界面381
  • 内容简介:
    Flutter是谷歌公司推出的跨平台开源UI框架,同时支持Android App与iOS App开发,使用这一框架可以大大提高开发效率。本书共14章,系统讲解Flutter背景、Dart语言的语法基础、Flutter组件、状态管理、事件处理、路由管理、动画、网络编程、数据存储、相机、主题与国际化、混合开发等核心内容,并通过多个案例以及“天气预报”App和“我的视频”App两个完整的实战项目,将理论知识与实践结合,提升读者的实战开发能力。通过对本书的学习,读者将会对Flutter框架以及跨平台开发有全面的认识,并可在实践中使用Flutter大大提高移动开发效率。
      本书适合正在使用Flutter以及对Flutter感兴趣的开发人员阅读和参考。
  • 作者简介:
    李元静,移动开发工程师,目前就职于某互联网金融公司,主导跨平台混合项目开发和兼容性测试工作。他担任过CSDN知识库编辑,拥有多年移动开发经验,对Android App开发、iOS App开发以及跨平台开发有丰富的研究和应用经验。他热衷于技术的传播与分享,撰写了大量关于移动开发的技术文章,文章阅读量超过140万次。
  • 目录:
    第 1章  初识Flutter1

    1.1  Flutter简介1

    1.2  Flutter的优势1

    1.2.1  跨平台性2

    1.2.2  高帧率的流畅UI2

    1.2.3  热重载2

    1.2.4  对开发环境要求不高2

    1.2.5  高性能2

    1.2.6  学习成本低3

    1.3  Flutter的技术特性3

    1.4  Flutter的架构3

    1.4.1  Flutter框架3

    1.4.2  Flutter引擎4

    1.5  开发环境的搭建4

    1.5.1  安装Android Studio5

    1.5.2  在Android Studio中安装Flutter开发库5

    1.5.3  在VSCode中安装Flutter开发库8

    1.5.4  搭建Dart语言开发环境9

    1.5.5  通过IntelliJ IDEA搭建纯Dart语言开发环境10

    1.6  创建第 一个Flutter项目11

    1.7  体验热重载13

    1.8  习题14

    第 2章  Dart语言:一切皆对象15

    2.1  Dart语言简介15

    2.1.1  一切皆对象15

    2.1.2  面向接口编程15

    2.1.3  类型可选16

    2.2  Hello World16

    2.3  变量与常量17

    2.3.1  变量17

    2.3.2  常量17

    2.4  内置类型18

    2.4.1  数值类型18

    2.4.2  布尔类型19

    2.4.3  字符串类型20

    2.4.4  列表类型21

    2.4.5  键值对类型23

    2.4.6  动态类型与Object23

    2.4.7  符号字符24

    2.4.8  符号25

    2.5  运算符25

    2.5.1  三目运算符25

    2.5.2  取商运算符26

    2.5.3  自定义类操作符26

    2.5.4  级联操作符27

    2.6  get和set方法27

    2.7  异常捕获28

    2.7.1  throw28

    2.7.2  try-catch28

    2.8  循环语句29

    2.8.1  for循环29

    2.8.2  while循环30

    2.8.3  do-while循环30

    2.9   switch语句30

    2.10  函数31

    2.10.1  main()函数31

    2.10.2  可选参数31

    2.10.3  必选参数31

    2.10.4  可选位置参数32

    2.10.5  默认参数32

    2.10.6  函数作为参数传递32

    2.10.7  函数作为变量33

    2.10.8  级联33

    2.11  异步编程34

    2.11.1  Future34

    2.11.2  async和await35

    2.12  抽象方法和抽象类36

    2.13  接口37

    2.14  继承37

    2.15  mixin38

    2.16  泛型40

    2.17  库42

    2.17.1  导入库42

    2.17.2  拆分库43

    2.18  习题43

    第3章  Flutter组件45

    3.1  基础组件45

    3.1.1  Text46

    3.1.2  Button47

    3.1.3  Icon49

    3.1.4  Image49

    3.1.5  FlutterLogo51

    3.2  单一子元素组件51

    3.2.1  Container51

    3.2.2  Padding54

    3.2.3  Align55

    3.2.4  Center55

    3.2.5  FittedBox55

    3.2.6  AspectRatio57

    3.2.7  SingleChildScrollView57

    3.2.8  FractionallySizedBox58

    3.2.9  ConstrainedBox58

    3.2.10  Baseline59

    3.3  多子元素组件60

    3.3.1  Scaffold60

    3.3.2  AppBar61

    3.3.3  Row和Column62

    3.3.4  ListView63

    3.3.5  GridView66

    3.3.6  CustomScrollView67

    3.3.7  CustomMultiChildLayout68

    3.3.8  Stack69

    3.3.9  IndexedStack70

    3.3.10  Table70

    3.3.11  Flex71

    3.3.12  Wrap72

    3.3.13  Flow73

    3.4  其他常用组件的应用75

    3.4.1  TextField75

    3.4.2  TextFormField77

    3.4.3  侧滑菜单79

    3.4.4  轮播广告81

    3.4.5  折叠相册82

    3.5  习题85

    第4章  状态管理86

    4.1  状态管理组件86

    4.1.1  Widget树86

    4.1.2  Context树87

    4.1.3  StatelessWidget87

    4.1.4  StatefulWidget88

    4.2  State89

    4.3  Key94

    4.3.1  GlobalKey94

    4.3.2  LocalKey95

    4.4  InheritedWidget99

    4.5  包管理102

    4.6  习题103

    第5章  事件处理104

    5.1  原始指针事件104

    5.1.1  基本用法104

    5.1.2  忽略PointerEvent106

    5.1.3  命中测试107

    5.2  GestureDetector109

    5.2.1  基本用法109

    5.2.2  常用事件110

    5.2.3  GestureDetector实战111

    5.2.4  手势冲突113

    5.3  事件通知115

    5.3.1  通知冒泡115

    5.3.2  通知栏消息117

    5.3.3  通知数提醒118

    5.4  习题119

    第6章  路由管理120

    6.1  路由简介120

    6.1.1  基本用法120

    6.1.2  静态路由121

    6.1.3  动态路由123

    6.1.4  参数回传125

    6.2  路由栈128

    6.2.1  路由栈详解128

    6.2.2  pushReplacementNamed()方法128

    6.2.3  popAndPushNamed()与pushReplacement()方法129

    6.2.4  pushNamedAndRemoveUntil()方法129

    6.2.5  popUntil()方法131

    6.3  fluro库131

    6.3.1  创建路由管理类131

    6.3.2  实现路由跳转133

    6.4  习题135

    第7章  动画136

    7.1  动画的原理136

    7.1.1  帧136

    7.1.2  插值器137

    7.2  Flutter动画核心类138

    7.2.1  Animation138

    7.2.2  Animatable138

    7.2.3  AnimationController138

    7.3  Tween类140

    7.3.1  Tween.animate142

    7.3.2  Curve142

    7.4  动画的封装与简化145

    7.4.1  AnimatedWidget145

    7.4.2  AnimatedBuilder146

    7.4.3  ScaleTransition148

    7.5  路由动画149

    7.5.1  Hero150

    7.5.2  Hero动画原理151

    7.5.3  自定义路由动画153

    7.6  组合动画156

    7.7  动画实战160

    7.7.1  实现支付宝“咻一咻”

    动画160

    7.7.2  Flare动画164

    7.8  习题167

    第8章  网络编程168

    8.1  网络协议基础168

    8.1.1  HTTP168

    8.1.2  URL和URI171

    8.1.3  Get和Post172

    8.1.4  为什么普及HTTP 2.0172

    8.1.5  HTTPS174

    8.2  网络编程175

    8.2.1  HttpClient库175

    8.2.2  http库177

    8.3  JSON解析179

    8.3.1  手动解析JSON数据179

    8.3.2  手动将JSON数据显示到界面180

    8.3.3  自动解析182

    8.4  dio库186

    8.4.1  基本用法186

    8.4.2  单例模式188

    8.4.3  拦截器189

    8.4.4  适配器192

    8.5  异步编程193

    8.5.1  隔离193

    8.5.2  事件循环194

    8.5.3  线程模型196

    8.5.4  事件流198

    8.5.5  创建并使用隔离200

    8.5.6  使用compute()函数202

    8.5.7  FutureBuilder202

    8.6  网络状态判断204

    8.7  习题207

    第9章  数据存储208

    9.1  SharedPreferences208

    9.1.1  基本操作208

    9.1.2  实现登录账号存储功能209

    9.2  文件存储212

    9.2.1  基本操作213

    9.2.2  实现留言板功能214

    9.2.3  自定义外部存储目录路径216

    9.2.4  实现文件浏览器功能218

    9.2.5  实现文件夹的添加和删除功能220

    9.3  SQLite数据库223

    9.3.1  基本操作224

    9.3.2  封装数据库操作230

    9.3.3  用sqflite库实现添加客户信息功能233

    9.4  访问服务器端数据库237

    9.4.1  基本操作237

    9.4.2  访问云端数据库实战239

    9.5  习题241

    第 10章  相机242

    10.1  camera库242

    10.1.1  基本用法242

    10.1.2  使用takePicture ()方法拍照245

    10.1.3  切换摄像头248

    10.1.4  录制视频249

    10.2  视频播放251

    10.2.1  本地视频播放252

    10.2.2  网络视频播放254

    10.2.3  视频资源播放256

    10.2.4  视频样式258

    10.3  浏览图片和视频262

    10.3.1  调用相机拍摄图片263

    10.3.2  调用相机拍摄视频265

    10.3.3  选择图片与视频268

    10.3.4  完善自定义相机269

    10.4  下载图片和视频273

    10.5  识别二维码和条形码274

    10.6  生成二维码278

    10.6.1  qr_flutter库的基本用法278

    10.6.2  实现二维码生成器279

    10.7  习题280

    第 11章  主题与国际化281

    11.1  主题换肤281

    11.1.1  ThemeData组件的属性281

    11.1.2  全局主题应用282

    11.1.3  局部主题应用284

    11.1.4  主题换肤实战285

    11.2  第三方库换肤286

    11.2.1  状态管理配置287

    11.2.2  变更主题样式288

    11.2.3  第三方库换肤实战289

    11.3  国际化292

    11.3.1  自定义LocalizationsDelegate类294

    11.3.2  通过MyLocalizations类

    国际化296

    11.4  第三方库easy_localization299

    11.4.1  初始化配置300

    11.4.2  手动切换语言实战301

    11.5  习题303

    第 12章  混合开发304

    12.1  在Android原生项目中嵌入Flutter技术304

    12.1.1  创建Flutter模块304

    12.1.2  关联Flutter模块304

    12.2  Flutter与Android交互305

    12.2.1  Activity嵌入Flutter界面306

    12.2.2  Flutter向Activity传递参数308

    12.2.3  Activity向Flutter回传参数310

    12.2.4  Flutter向Activity回传参数312

    12.2.5  Flutter与Fragment313

    12.3  FlutterBoost框架315

    12.3.1  FlutterBoost架构315

    12.3.2  配置FlutterBoost框架的开发环境316

    12.3.3  使用FlutterBoost框架进行混合开发317

    12.4  aar模块化打包322

    12.5  习题323

    第 13章  实战项目1:“天气预报”App324

    13.1  需求分析及技术获取324

    13.1.1  获取定位信息324

    13.1.2  获取天气数据326

    13.1.3  项目使用的库326

    13.1.4  项目目录结构328

    13.2  业务功能开发328

    13.2.1  获取当前城市名称328

    13.2.2  获取天气数据329

    13.2.3  存储天气数据332

    13.3  主界面开发333

    13.3.1  背景动画333

    13.3.2  标题栏334

    13.3.3  当前天气详情335

    13.3.4  横向ListView组件336

    13.3.5  纵向ListView组件337

    13.3.6  HomePage代码338

    13.4  城市天气切换340

    13.4.1  路由管理340

    13.4.2  切换城市界面342

    13.5  城市搜索匹配345

    13.5.1  SearchDelegate类345

    13.5.2  实现SearchDelegate类346

    13.5.3  搜索文本框默认显示内容348

    13.6  导出App349

    13.6.1  使用命令行创建一个签名文件349

    13.6.2  在android目录下创建一个key.properties文件350

    13.6.3  修改android/app/build.gradle文件内容350

    13.6.4  导出APK文件351

    第 14章  实战项目2:“我的视频”App352

    14.1  实战项目概述352

    14.1.1  项目结构352

    14.1.2  界面分析353

    14.2  启动界面与主界面354

    14.2.1  启动界面354

    14.2.2  主界面355

    14.2.3  主界面内容357

    14.3  网络与JSON数据365

    14.4  路由管理368

    14.5  视频播放界面370

    14.6  短视频376

    14.7  个人中心界面381
查看详情
12
相关图书 / 更多