登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』Flutter之旅

書城自編碼: 3538219
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 张德立
國際書號(ISBN): 9787111662341
出版社: 机械工业出版社
出版日期: 2020-08-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 714

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
李鸿章及其时代:中西方世界的历史撞击
《 李鸿章及其时代:中西方世界的历史撞击 》

售價:NT$ 330.0
剑桥罗马骑士等级史(历史学堂)
《 剑桥罗马骑士等级史(历史学堂) 》

售價:NT$ 1277.0
脉络:小我与大势
《 脉络:小我与大势 》

售價:NT$ 484.0
权势转移:近代中国的思想与社会(修订版)
《 权势转移:近代中国的思想与社会(修订版) 》

售價:NT$ 435.0
欧洲四千年
《 欧洲四千年 》

售價:NT$ 435.0
孙中山与海南(1905—1913)
《 孙中山与海南(1905—1913) 》

售價:NT$ 429.0
故宫雅趣:紫禁城皇室生活与君臣轶事
《 故宫雅趣:紫禁城皇室生活与君臣轶事 》

售價:NT$ 484.0
金钱、奇珍异品与造物术:荷兰黄金时代的科学与贸易
《 金钱、奇珍异品与造物术:荷兰黄金时代的科学与贸易 》

售價:NT$ 539.0

建議一齊購買:

+

NT$ 782
《 Flutter实战 》
+

NT$ 550
《 Flutter App开发 从入门到实战 》
+

NT$ 516
《 剑指Offer(专项突破版):数据结构与算法名企面试题精讲 》
+

NT$ 605
《 图解Java并发编程 》
+

NT$ 474
《 PHP 7+MySQL 8动态网站开发从入门到精通(视频教学版) 》
+

NT$ 549
《 大型网站技术架构:核心原理与案例分析(最接地气的网站架构经验,网站生存技术心要,应对大数据挑战的干货分享!) 》
編輯推薦:
本书全彩色、全方位展示Flutter的基本概念与操作方式。只需12天便可完成完成Flutter之旅。本书文笔幽默、表达细腻,希望带领读者背上行囊去旅行,去见证Flutter框架的优雅和精简、丰富和强大。
內容簡介:
本书从一个Android原生开发者的角度去认识和了解Flutter,本书作者以幽默生动的故事描写手法,记录在Flutter学习中所遇见的景色,并呈现给读者,主要内容包括:Flutter的安装与基本概念,Dart语法、组件与容器、布局基础、动画与手势、自定义组件、资源与路由、Flutter框架、Flutter与Redux、Flutter与iOS、插件开发、综合案例等。
●  对调试的认识和对Flutter初始项目的分析。
●  Flutter整体认知和Dart常用语法速览。
●  常用组件的用法介绍和如何自定义绘制组件。
●  Flutter动画、手势的使用和路由跳转。
●  从框架层源码角度进一步认识Flutter渲染机制。
●  异步和流的详解与文件操作方法。
●  共享数据的处理方式和状态管理。本书从一个Android原生开发者的角度去认识和了解Flutter,本书作者以幽默生动的故事描写手法,记录在Flutter学习中所遇见的景色,并呈现给读者,主要内容包括:Flutter的安装与基本概念,Dart语法、组件与容器、布局基础、动画与手势、自定义组件、资源与路由、Flutter框架、Flutter与Redux、Flutter与iOS、插件开发、综合案例等。
主要内容包括:
●  对调试的认识和对Flutter初始项目的分析。
●  Flutter整体认知和Dart常用语法速览。
●  常用组件的用法介绍和如何自定义绘制组件。
●  Flutter动画、手势的使用和路由跳转。
●  从框架层源码角度进一步认识Flutter渲染机制。
●  异步和流的详解与文件操作方法。
●  共享数据的处理方式和状态管理。
●  使用SQLite数据库、XML配置文件等实现数据持久化存储。
●  通过Flutter与平台间的通信制作插件的方法。
●  如何将Flutter集成到现有项目以进行混合开发。
關於作者:
张德立 
笔名张风捷特烈,编程技术爱好者。喜欢分享技术知识,在技术社区发布过大量受欢迎的技术文章。喜欢Flutter框架,是开源项目FlutterUnit的作者。参与过多个前端项目和Android项目的开发,有探索精神,对新技术保持兴趣和热情。
目錄
Day 1 初识Flutter与技能储备1
1.1 Flutter初始项目分析1
1.1.1 Flutter初始项目结构1
1.1.2 入口文件及MyApp分析2
1.1.3 MyHomePage与_MyHomePageState分析5
1.1.4 pubspec.yaml文件6
1.2 基本Debug技能7
1.2.1 断点和放行7
1.2.2 变量查询和唤醒程序8
1.2.3 Debug要点补充9
1.3 辅助技能储备10
1.3.1 三个实用工具10
1.3.2 片段代码和快速重构12
1.3.3 三个基础知识QA14
1.4 Widget知识储备15
1.4.1 命令式UI编程与声明式UI编程16
1.4.2 认识Widget体系16
1.4.3 Widget源码初识18
1.4.4 组件的提取抽离21
Day 2 Dart实用语法速览23
2.1 基础语法23
2.1.1 常用的数据类型23
2.1.2 变量与常量26
2.1.3 函数的使用27
2.2 通过Size类看Dart中的面向对象30
2.3 其他语法点34
2.3.1 常用符号与关键字34
2.3.2 库的使用和可见性35
2.3.3 泛型36
2.3.4 异步37
2.3.5 异常处理38
Day 3 界面风格和简单绘制39
3.1 Material风格40
3.1.1 Scaffold和BottomNavigationBar40
3.1.2 TabBar和TabBarView41
3.1.3 标题栏按钮和菜单组件42
3.1.4 弹出对话框43
3.1.5 界面的左右滑页43
3.1.6 showSnackBar和showBottomSheet44
3.2 Cupertino风格45
3.2.1 CupertinoPageScaffold和CupertinoTabScaffold46
3.2.2 CupertinoNavigationBar和CupertinoTabBar46
3.2.3 CupertinoTabView47
3.2.4 CupertinoAlertDialog和showCupertinoModalPopup47
3.3 认识CustomPainter绘制49
3.3.1 绘制网格49
3.3.2 Canvas初级绘制50
3.3.3 移植绘制n角星52
3.3.4 移植绘制粒子数字54
Day 4 基础Widget56
4.1 Text组件56
4.1.1 Text的基本使用56
4.1.2 Text的阴影和装饰线57
4.1.3 文字方向、对齐和溢出处理58
4.1.4 RichText的使用59
4.1.5 RichText与Text.rich60
4.2 Image组件60
4.2.1 Image资源的加载61
4.2.2 图片的适应模式62
4.2.3 图片颜色及混合模式63
4.2.4 图片对齐模式及重复模式63
4.2.5 用centerSlice实现图片局部放大64
4.3 Container的使用65
4.3.1 Container的基本使用65
4.3.2 Padding的使用66
4.3.3 Container的边线装饰66
4.3.4 Container的约束和变换67
4.3.5 Container与布局的渊源68
4.4 常用多子布局71
4.4.1 图解Flex布局71
4.4.2 Stack布局75
4.4.3 Wrap包裹布局76
Day 5 列表与滑动79
5.1 组件封装79
5.1.1 静态布局79
5.1.2 头像组件封装80
5.1.3 条目组件封装81
5.1.4 封装聊天信息组件82
5.2 ListView的使用84
5.2.1 基本用法85
5.2.2 ListView的构造及分隔线85
5.2.3 ListView的不同样式87
5.2.4 ListView的上拉与下拉87
5.3 常用滑动组件90
5.3.1 单子滑动组件SingleChildScrollView90
5.3.2 滑动控制器ScrollController92
5.3.3 滑页组件PageView94
5.3.4 网格组件GridView97
5.4 Sliver家族99
5.4.1 SliverAppBar的使用100
5.4.2 Sliver中的列表布局、网格布局及普通布局101
5.4.3 吸顶效果SliverPersistentHeader103
Day 6 动画与路由106
6.1 动画闲谈106
6.1.1 FPS106
6.1.2 动画控制器AnimationController107
6.1.3 运动盒108
6.2 Flutter动画详解111
6.2.1 Animation和Animatable111
6.2.2 动画状态监听和Animation方法116
6.2.3 动画简化和封装117
6.2.4 封装强化版FlutterContainer118
6.3 路由与导航122
6.3.1 打开路由122
6.3.2 路由的传参125
6.3.3 路由的跳转动画128
6.3.4 Hero跳转动画130
Day 7 手势组件与自定义组件132
7.1 手势组件与使用132
7.1.1 InkWell水波纹的使用132
7.1.2 GestureDetector的使用133
7.1.3 手写板的实现135
7.2 根据现有组件实现自定义组件137
7.2.1 切换Widget组件137
7.2.2 颜色选择圆钮组件ColorChooser139
7.2.3 函数运动组件MathRunner142
7.3 绘制自定义组件143
7.3.1 能力分析组件AbilityWidget143
7.3.2 图片放大组件BiggerView147
7.3.3 波纹线RhythmView150
Day 8 Flutter渲染机制153
8.1 认识三棵树153
8.1.1 漫谈Widget、Element、RenderObject154
8.1.2 认识RenderObject和Element156
8.1.3 三棵树结构158
8.1.4 三个根结点的初始化159
8.2 Element的装配162
8.2.1 RenderObjectToWidget-Element的装配162
8.2.2 StatelessElement和StatefulElement的装配164
8.2.3 多子元素挂载166
8.3 State类全解析168
8.3.1 State的生命周期回调169
8.3.2 State切换和跳转时生命周期测试173
8.3.3 setState做了什么175
Day 9 异步与资源 178
9.1 认识异步与流 178
9.1.1 Dart中的异步任务 178
9.1.2 Dart中的流 181
9.2 文件中的异步与流 184
9.2.1 文件的简单操作 184
9.2.2 文件读写的异步操作 186
9.2.3 文件读写的流操作 188
9.2.4 使用文件打造图标转换工具 190
9.3 网络请求与json解析 193
9.3.1 使用GitHub开放API 测试网络访问 193
9.3.2 json解析 197
9.3.3 异步方法的基本使用 199
Day 10 数据共享与状态管理 202
10.1 数据共享和参数传递 202
10.1.1 数据共享的传统实现方式 202
10.1.2 用InheritedWidget实现数据共享 204
10.2 状态管理的原始处理过程 207
10.2.1 数据准备与界面说明 207
10.2.2 FutureBuilder与StreamBuilder的使用 209
10.3 使用插件进行状态管理 213
10.3.1 BLoC对数据状态的管理 213
10.3.2 Provider对数据状态的管理 219
10.3.3 Redux对数据状态的管理 225
Day 11 数据持久化和读取 230
11.1 Flutter中的数据库存储 230
11.1.1 数据库的初始化 231
11.1.2 使用sqflite进行增删改查 234
11.1.3 数据库数据与UI界面的对接 237
11.2 表单与数据持久化 240
11.2.1 表单注册页 240
11.2.2 持久化json数据和读取 241
11.2.3 持久化XML数据和读取 243
Day 12 插件及混合开发 245
12.1 Flutter和平台间的通信方式 246
12.1.1 FlutterDart端 246
12.1.2 AndroidKotlin端 247
12.1.3 用toast连接两个世界 248
12.1.4 Flutter向平台传参 250
12.1.5 插件的使用和上传 253
12.2 Flutter常见插件的使用 255
12.2.1 路径插件和权限插件 255
12.2.2 音频播放插件audioplayer 257
12.2.3 视频播放插件video_player 259
12.2.4 图片拾取器image_picker 261
12.2.5 通过webview_flutter使用已有Web页面 262
12.3 Flutter的混合开发 264
12.3.1 Flutter和Android混合开发 264
12.3.2 Flutter和iOS混合开发 269
12.3.3 让Android视图加入Flutter 271
內容試閱
我目前从事Flutter桌面应用的开发,深刻领会到Flutter功能的强大。Flutter对于桌面的支持已经很不错了,网络、数据库、UI界面这三者都已经完备。在众多开发者的推动之下,Flutter正在不断壮大和完善,我相信它的未来是光明的。

Flutter框架中内置的Widget有300多个,对于一个初学者而言,把它们全都看完是不现实的,也没有必要。很多初学者认为Widget是Flutter的一切,其实Widget只是半壁江山,Flutter还拥有强大的绘制接口、异步处理能力、完整的网络、文件操作接口以及状态管理工具。

本书主要想让初学者对Flutter有一个比较全面的认识。我觉得一次学习过程就像一次旅行,对我们要去的地方从全然不知,到渐渐熟悉,当我回首时,发现这一路的成长中包括了困惑、犹豫、兴奋、痛苦、快乐。现在,我又回到了起点,背起行囊带你一起出发,一点点去认识Flutter。

旅途之初,我会为你备好行囊和工具:介绍Debug和开发工具,然后介绍Dart语言和基础的组件使用。本书介绍了很多实用的组件,以及动画、路由,还介绍了一些Flutter框架渲染层的知识和相关源码,虽然不是非常深入,但会让你对Flutter的了解更加深入。本书还包括数据的处理和状态管理、异步处理、数据库操作等,最后介绍了插件和混合开发。

本书没有把纷繁复杂的组件都讲了,只挑一些重要的组件深入剖析,让读者学会认识组件。为了让读者掌握如此多的组件,我特意开源了一个FlutterUnit项目,地址为https:github.comtoly1994328FlutterUnit。其中收录了约250个组件,每一个组件都会附加详细的说明和示例代码。这个项目目前已支持Android、iOS、MacOS和Windows系统,可以帮初学者快速、直观地了解Flutter中有哪些组件可以使用,以及如何使用。FlutterUnit项目可以全面搜索并具备完整的分类,可以很容易地找到想要了解的组件。开源的另一个好处就是方便更新与修改。

由于Flutter多平台的特性,它的环境配置、开发环境搭建、模拟器运行等操作比较多,也比较简单。但是实际应用中总会遇到一些问题,为此我综合考虑了很多,最后决定在FlutterUnit项目中也列出问题及解决方案。在项目的主页里还列出了关于Flutter在各平台上的配置方面的文章。另外,我会不定期在Issues中分享一些经验和错误处理方式,当然你也可以一起分享,这也是建立FlutterUnit的初衷。后期会根据Issues的分享将其加入FlutterUnit中,作为入门者的最佳助力。此外,在Issues的point标签中,还会收录一些易错点和要点,对本书的勘误也在Issues中指出。FlutterUnit是我的个人开源行为,任何人都可以享用。

本书主要面向有一定编程经验的读者,对基础知识讲解不多,如果你觉得本书太难,那你需要自行补充一些基础的编程知识。遇到困难试着多读几遍,对着源码仔细推敲,或许就能豁然开朗。如果书中存在错误,还请读者见谅,有任何建议也请及时联系我。

【本书的源码规划】
本书用的源码Flutter SDK版本为 1.12.13 hotfix.8。许多编程书的demo案例都按照章节组织,或每个知识点是一个小项目,这有很大的缺点:找起来比较麻烦,而且打开一个项目也很费时间,更大的问题的是项目产生的垃圾很占内存。所以按知识点分立项目并不可取。

由于Flutter可以让一个个知识点独立成Widget进行展现,因此本书将所有代码放在同一个项目中。在学习的过程中你可以新建一个空白项目,然后一点一点累积成源码的结构,记录自己的成长。
例如,每章的源码在一个day里,每个day中有相应的知识点包,每个包里都有一个可运行的main.dart文件,每一个包代表一个小知识点或小节。这样就可以独立记录细碎的知识点,并且很清楚地记录它如何一步步演变,比如状态管理如何一步步演变得更优雅。

另外,Flutter可以指定运行的main入口,这就让这种处理方式更加优雅,如下图右侧所示,这样每个小的知识点包也可以作为单独的运行块。你可以快速切换,以查看该小节知识点运行的情况。也就是说,花3秒就能切换一个知识点。如果知识点在一个单独的项目里,那么切换一个知识点至少需要一分钟,也无法感受到知识的连贯性。
但这样做也会存在一个缺点,就是如果一个项目中代码过多,那么定位知识点会比较麻烦。一个服务器上的数据资源也是非常多而杂乱的,但是可以很方便地获取特定资源,这归功于统一资源定位符,即URL。
具体进行如下处理:你会发现在书中的相关源码处专门有个头标指向源码的地址,如下图所示。这样你可以迅速定位到相关位置,只要运行该包下的main.dart就可以立刻看到该知识点的展示效果。你可以将它看作内存寻址,源码就是资源库,而标识就是指向某一资源的指针,使用该指针就能打开相应的资源。
希望书和源码两者结合能擦出智慧的火花,为你的阅读过程带来便利。

【关于Widget图鉴】
为了让大家对Flutter组件有整体的认识,我特意制作了Widget图鉴,地址为https:github.comtoly1994328FlutterUnittreemasterwidgets_unity。
这些图鉴以图片形式放在FlutterUnit项目中,这样方便维护和更新。其中包含大多数常用的Widget,图鉴中的每个组件都可以在FlutterUnit项目源码中看到。图鉴主要包括StatelessWidget、StatefulWidget、SingleChildRenderObjectWidget和MultiChildRender-
ObjectWidget组件,这四种组件涵盖了日常工作中使用的绝大多数组件。
图鉴提供常用Widget的基本效果图,对常用的属性进行标注,主要目的是让初学者更直观地了解常用组件,不至于被众多组件弄糊涂。如果想要看某个图鉴具体效果的实现,可以在FlutterUnit项目中通过全局搜索获得。

你也可以在FlutterUnit的App中搜索,其中每个组件都有详情介绍。每个知识点都会有对应的组件使用效果,点击右侧的折叠按钮,可以展开对应的代码,并且提供代码的复制功能,这样你可以很方便地得到一个组件用法的源码。
【本书知识规划】
我在写作时更想专注于Flutter技术本身,希望让你在每一页都能学到东西。我还想向你分享一些我的思考方式和对问题的见解。另外,书中有大量的图片、类比的手法,相信你在读书过程中不会觉得太无趣。希望让你有种背上行囊随我旅行12天,我们共同见证、欣赏Flutter世界的感觉。

Day 1:初识Flutter与技能储备。首先,重新认识Flutter初始项目,并在此基础上提出两个问题,借这两个问题来介绍Debug的使用方法。然后,介绍Android Studio中针对Flutter的实用工具,磨刀不误砍柴工,把拖鞋换成运动鞋再开始旅行。最后,分享一些关于Flutter中Widget的见解,从整体上先感受一下Widget,再说明组件抽离的必要性,不要把所有鸡蛋(组件)放在同一个篮子(文件)里。
Day 2:Dart实用语法速览。Dart作为新时代的编程语言,有着优秀且优雅的语法。本章分别从基础语法、面向对象和Dart特殊语法三个层面展开对Dart语法的介绍,并结合实际使用以及源码来学习。
Day 3:界面风格和简单绘制。介绍Flutter中的两种界面风格,以及一个简单的App界面如何搭建。对Flutter的视图层有一个整体的认知将为之后的学习打下基础。另外,还介绍Flutter中的简单绘制,可以看出Android等其他平台的绘制技能在Flutter中完全适用。
Day 4:基础Widget。首先通过基础的图文组件介绍属性的使用,以及批量制作某属性的对比图,让你摆脱属性黑洞的束缚。然后以图解的形式对容器组件和多子组件进行介绍,使你更直观地认识各个属性的作用,进而掌握基本的布局功能。
Day 5:列表与滑动。首先讲述如何将一个组件抽离,封装成条目以供列表使用,再通过ListView填充数据展现条目,通过一个聊天界面介绍如何实现下拉和上拉的功能。然后对滑动控制器和其他滑动进行介绍,如单子滑动组件和GridView、PageView以及Sliver家族。
Day 6:动画与路由。详细介绍在Flutter中如何实现动画,从一开始的运动盒到可以动态变化的n角星,努力揭示了动画的本质。然后介绍如何简化和封装组件,让动画更加强大、好用。本章介绍路由的跳转、传参、回参、管理、动画等知识,将路由放在这里是因为路由与动画有所关联,掌握这些知识就可以创建一个相对复杂的界面系统。
Day 7:手势组件与自定义组件。如果一个组件经常被用到,或者可以独立于项目之外分享给很多人用,那么封装成一个自定义组件是很好的方式。本章先简单介绍Flutter中手势的处理,并自定义一个手写板,然后通过原生组件实现自定义组件;通过绘制组件可以了解如何在Flutter的画板上绘制文字和图片,以及进行一些复杂的数学计算。
Day 8:Flutter渲染机制。本章将深入Flutter框架层的源码中,谈论Widget、RenderObject、Element三棵树,介绍Flutter的main函数是如何运行的,以及Element的加载流程,最后全面介绍State及其生命周期。
Day 9:异步与资源。本章将介绍异步与流这个强大武器,并通过文件的操作加深对两者的理解。然后介绍Flutter网络请求的方式以及对数据资源的处理方式。
Day 10:数据共享与状态管理。本章先介绍数据传输中InheritedWidget的解决方案,然后介绍状态管理的处理过程以及FutureBuilder和StreamBuilder的用法,最后介绍BLoC、Provider、Redux三个状态管理工具及其使用案例。
Day 11:数据持久化和读取。本章分别从数据库、json数据文件、XML配置文件来介绍如何进行持久化处理,并介绍如何访问数据库,查询结果并填充界面,并通过界面完成增、删、改、查操作。
Day 12:插件及混合开发。首先介绍Flutter和原生平台的通信机制,之后介绍几个常用的插件,包括路径和权限申请、音频播放、视频播放、图片拾取、Web页面,最后介绍Flutter与原生平台的混合开发。
 

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.