新書推薦:
《
DK月季玫瑰百科
》
售價:HK$
210.6
《
为你想要的生活
》
售價:HK$
66.1
《
关键改变:如何实现自我蜕变
》
售價:HK$
77.3
《
超加工人群:为什么有些食物让人一吃就停不下来
》
售價:HK$
99.7
《
历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解)
》
售價:HK$
62.7
《
不在场证明谜案(超绝CP陷入冤案!日本文坛超新星推理作家——辻堂梦代表作首次引进!)
》
售價:HK$
58.2
《
明式家具三十年经眼录
》
售價:HK$
524.2
《
敦煌写本文献学(增订本)
》
售價:HK$
221.8
編輯推薦:
只需掌握Web技术就能开发移动应用是不是很爽?有了Ionic之后,App的开发变得如此简单:使用我们熟知的HTML、CSS和JavaScript技术就可以同时开发iOS和Android应用。
本书指导Web开发者使用Ionic和AngularJS创建移动应用。通过大量带有注释的示例,本书展示了如何使用移动UI组件,如何利用当前地点数据,如何集成相机等原生设备功能,如何添加手势操作以及外部数据存储等功能,让我们能创建出更加原生的应用。本书还介绍了如何通过测试提升应用的稳定性以及在开发中定位错误。然后,使用命令行工具教会大家如何创建并将应用发布到应用商店。内容包括:
使用HTML、JavaScript和CSS创建移动应用
使用Ionic UI组件创建复杂交互
一次编译,到处发布(iOS和Android)
使用原生设备硬件以及设备特定功能
涵盖完整的移动应用开发过程
读者需要了解HTML、CSS和JavaScript知识;对于AngularJS,懂一些*好,不懂也没有关系。
內容簡介:
Ionic是近几年很火的一项跨平台开发技术。Ionic最大的亮点是集成了Angular和Cordova,对于有开发经验的前端工程师来说上手难度大大降低,并且能直接使用现有的大量第三方库和框架。本书是一本详尽的 Ionic实战教程,不仅告诉你“怎么做”,还告诉你“为什么”,这正是大部分入门书籍所欠缺的。无论你是否有相关开发经验,这本书都可以帮助你快速掌握Ionic。
關於作者:
奇舞团是一个专业翻译团队,其成员都是各大技术公司位居一线的程序员或架构师,具有丰富的理论知识和实践经验,而且语言文字水平都很高,翻译的图书质量均上佳。 Jeremy Wilken是一位资深UX软件工程师,常年使用Ionic、AngularJS和Node.js。他现在居住在德克萨斯州的奥斯汀。
购买本书就可以免费访问Manning 出版社维护的一个私有网络论坛,你可以写书评、问技术问题并收到作者和其他用户的反馈。如果要访问论坛并注册,请在浏览器中访问www.manning.combooksionic-in-action。
目錄 :
第1章 Ionic和Hybrid应用介绍 .. 1
1.1 Ionic是什么 . 2
1.2 移动开发类型 .................. 3
1.2.1 原生移动应用 ...... 4
1.2.2 移动端网站(Web应用) ......... 5
1.2.3 Hybrid应用 .......... 6
1.3 理解Ionic技术栈 .............. 7
1.3.1 Ionic:用户界面框架 ............... 8
1.3.2 Angular:Web应用框架 ........ 10
1.3.3 Cordova:Hybrid应用框架 ... 10
1.4 为什么选择Ionic ............ 11
1.4.1 开发者为什么要选择 Ionic .... 11
1.4.2 Ionic的缺点 ....... 12
1.5 使用Ionic构建应用的前提 ................. 13
1.5.1 掌握 HTML、CSS和 JavaScript................ 13
1.5.2 掌握 Web应用和 Angular ...... 13
1.5.3 拥有移动设备 .... 14
1.6 Ionic支持的移动设备和平台 ............. 14
1.6.1 苹果的 iOS ......... 14
1.6.2 谷歌的 Android .. 15
1.7 总结 ........... 16
第2章 配置开发环境 .............. 17
2.1 快速上手 ... 18
2.1.1 设置开发环境 .... 18
2.1.2 创建一个新项目 21
2.1.3 项目文件夹结构 22
2.1.4 在浏览器中预览 23
2.2 配置预览环境 ................ 24
2.2.1 安装平台工具 .... 25
2.2.2 配置模拟器 ........ 26
2.2.3 配置连接设备 .... 31
2.2.4 给项目添加平台 32
2.2.5 在模拟器中预览 32
2.2.6 在移动设备上预览 ................. 33
2.3 总结 ........... 35
第3章 AngularJS必备知识 ..... 37
3.1 AngularJS初探 ............... 39
3.1.1 视图和模板:描述内容 ......... 39
3.1.2 控制器、模型和作用域:管理数据和逻辑 ................... 41
3.1.3 Serivce:可重用的对象和方法 .................. 43
3.1.4 双向数据绑定:在控制器和视图之间共享数据 ........... 43
3.2 配置本章的项目 ............ 43
3.2.1 获取项目文件 .... 44
3.2.2 启动开发服务器 44
3.3 Angular应用基础 ........... 46
3.4 控制器:控制数据和业务逻辑 ......... 47
3.5 加载数据:使用控制器来加载数据并显示在视图中 ............... 50
3.5.1 过滤器:转换视图中的数据 . 53
3.6 处理选择笔记的单击事件 ................. 54
3.7 创建一个指令,用来解析Markdown格式的笔记. 56
3.8 使用模型来管理内容编辑 ................. 59
3.9 保存和删除笔记 ............ 62
3.9.1 添加 save方法 63
3.9.2 使用 Angular表单进行验证 .. 64
3.9.3 添加和删除方法 64
3.10 继续学习Angular ......... 65
3.11 挑战.......... 66
3.12 总结 ......... 66
第4章 Ionic导航和核心组件 ... 68
4.1 配置项目 ... 70
4.1.1 创建一个新应用并手动添加代码 .............. 70
4.1.2 克隆完整版应用 70
4.2 配置应用导航 ................ 70
4.2.1 设计良好的应用导航 ............. 72
4.2.2 使用状态管理器来声明应用视图 .............. 73
4.3 构建主视图 .................... 77
4.3.1 创建内容容器 .... 77
4.3.2 使用 CSS组件并添加一个简单的链接列表 .................. 78
4.3.3 给列表元素添加图标 ............. 80
4.4 使用控制器和模型来开发预订视图 . 81
4.5 把数据加载到天气视图中 ................. 85
4.5.1 给天气视图添加模板 ............. 86
4.5.2 创建天气控制器加载外部数据 .................. 87
4.5.3 给天气视图添加一个载入指示器 .............. 89
4.6 在餐馆视图中使用卡片和无限滚动 . 91
4.7 使用幻灯片组件来实现应用介绍 ..... 94
4.8 挑战 ........... 97
4.9 总结 ........... 98
第5章 选项卡、高级列表和表单组件 .......... 99
5.1 配置本章的项目 .......... 101
5.1.1 手动创建项目并添加代码 ... 101
5.1.2 克隆完整项目 .. 101
5.2 ionTabs:添加选项卡和导航 ........... 101
5.2.1 给应用添加选项卡容器和三个选项卡 .... 103
5.3 给每个选项卡添加ionNavView ....... 104
5.4 加载并显示当前的比特币汇率 ....... 109
5.5 在同一个选项卡视图中显示货币细节 ................ 114
5.6 刷新比特币汇率并显示帮助信息 ... 117
5.6.1 IonRefresher:下拉刷新汇率 ................... 118
5.6.2 $IonicPopover:弹出帮助信息 ................. 120
5.7 绘制历史数据 .............. 123
5.7.1 配置第三方库 .. 123
5.7.2 历史信息选项卡模板:使用 Highcharts和下拉列表来切换货币... 124
5.7.3 历史信息选项卡控制器:加载数据并配置图表 ......... 125
5.8 货币选项卡:支持重新排序和开关 .................... 129
5.8.1 IonReorderButton:让列表支持重新排序 .................... 129
5.8.2 IonToggle:给列表元素添加开关 ............ 131
5.9 挑战 ......... 132
5.10 总结 ....... 132
第6章 使用 Ionic开发一款天气应用............. 134
6.1 项目配置 . 135
6.2 设置侧滑菜单和视图 .. 136
6.3 地理位置搜索 .............. 139
6.4 增加设置视图和数据的服务 ........... 142
6.4.1 创建收藏地点和设置服务 ... 142
6.4.2 在侧滑菜单列表中显示收藏的地点 ........ 144
6.4.3 增加设置视图模板 ............... 145
6.4.4 设置视图控制器 ................... 147
6.5 设置天气视图 .............. 148
6.5.1 获取 Forecast.io API 密钥 .... 148
6.5.2 使用 Ionic 命令行代理 ......... 149
6.5.3 增加天气视图的控制器和模板 ................ 150
6.6 ionScroll:制作自定义滚动内容组件 .................. 151
6.6.1 在页面中使用 ionScroll ....... 152
6.6.2 为天气数据查询创建过滤器 .................... 158
6.7 活动菜单列表:显示可选列表 ....... 160
6.8 ionModal:显示日出和日落数据表 162
6.8.1 配置弹窗 .......... 164
6.8.2 数据列表集:让日出和日落时间列表显示得更快 ..... 166
6.9 弹框:提示并确认收藏地点修改 ... 169
6.10 挑战 ....... 171
6.11 总结........ 172
第7章 开发高级应用 ............ 173
7.1 配置本章项目 .............. 174
7.1.1 获取代码 .......... 174
7.2 使用 Sass 自定义 Ionic 样式 ............ 174
7.2.1 设置 Sass .......... 175
7.2.2 使用 Sass 变量自定义 Ionic . 176
7.2.3 使用 Sass 编写样式 .............. 177
7.3 如何支持联网和离线模式 ............... 178
7.4 处理手势事件 .............. 180
7.4.1 使用 Ionic 事件指令监听事件 .................. 180
7.4.2 使用 $ionicGesture 服务监听事件 ............ 182
7.4.3 支持的手势事件 ................... 185
7.5 数据持久化 .................. 186
7.5.1 使用 localStorage .................. 187
7.5.2 使用 Web SQL、IndexedDB 和 SQLite ... 189
7.5.3 Cordova 插件提供的其他选项 ................. 190
7.6 制作跨平台的应用 ...... 191
7.6.1 一种尺寸并不能满足所有情况 ................ 191
7.6.2 根据平台或者设备类型适配样式 ............ 192
7.6.3 为平台和设备类型适配交互 .................... 194
7.7 使用 $ionicCon.gProvider编辑默认交互行为 ..... 196
7.8 总结 ......... 197
第8章 使用Cordova插件 ...... 198
8.1 Cordova 插件 ................ 199
8.1.1 使用插件要考虑的问题 ....... 200
8.1.2 安装插件 .......... 201
8.1.3 使用插件 .......... 201
8.1.4 在模拟器中使用插件 ........... 202
8.1.5 插件和系统限制 ................... 203
8.1.6 Angular 和 Cordova 陷阱 ..... 203
8.1.7 关于设备和模拟器的一些常见问题解决办法 ............. 205
8.2 ngCordova 207
8.2.1 安装 ngCordova .................... 207
8.3 在应用中使用相机和相册插件 ....... 208
8.3.1 创建相机应用 .. 208
8.3.2 增加相机插件 .. 209
8.3.3 创建相册视图 .. 210
8.4 在天气应用中使用地理位置 ........... 212
8.4.1 配置地理位置插件示例 ....... 213
8.4.2 添加地理位置插件和 ngCordova ............. 214
8.4.3 请求用户的地理位置 ........... 214
8.4.4 优化天气应用 .. 216
8.5 本章挑战 . 218
8.6 总结 ......... 219
第9章 预览、调试和自动化测试 ............... 220
9.1 预览、调试和测试之间的区别 ....... 220
9.1.1 为什么测试如此重要 ........... 222
9.2 配置本章示例 .............. 222
9.3 预览应用的其他方法 .. 223
9.3.1 Ionic Lab ........... 223
9.3.2 Ionic View ........ 224
9.4 使用真机调试 .............. 226
9.4.1 在 Android 设备上进行调试 227
9.4.2 在 iOS 或模拟器中进行调试 .................... 229
9.5 自动化测试 .................. 232
9.5.1 使用 Jasmine 和 Karma 进行单元测试 .... 233
9.5.2 使用 Protractor 和 WebDriver 进行集成测试 ............... 240
9.6 更多的测试示例 .......... 245
9.7 总结 .....
內容試閱 :
译者序刚入职的时候,团队参加Hackathon 的过程中需要制作一款移动应用,在没有iOS 和Android 工程师的情况下,经过调研,Ionic 成了我们最终的技术解决方案,也为我翻译本书打下了契机。我经常说技术没有银色子弹,没有最完美的,只有最适合的。Web App 虽然有为人诟病的性能问题,但是在人员、时间、功能、性能等的权衡下,Ionic 必然是有它的受众的。本书是In Action 系列的一员,这就注定了它是一本实战书的命运。而事实也是如此,基本上每章都会用一个示例贯穿全章。我喜欢这种感觉,纯理论的书读起来让我昏昏欲睡,实战这种从0 到1 将最终成品展现在眼前的形式让我非常有成就感。相信这也是大多实战派钟爱的感觉吧!当然这并不是说理论不重要,我希望的是以实战为引,通过实战慢慢去理解并深入理论,而后将理论反作用于实战,相辅相成才是最终奥义。实战书不好的地方在于它势必会贴很多代码,我甚至在有的书上看到过整页整页的代码。相信本书的作者也不想这样,所以很多时候他只列出了一些必要的代码并提醒大家可以到Github 仓库上查看完整代码。在这里也推荐大家在看完本书中的内容后再去看看仓库中的示例,虽然书上的注解非常详细,但我相信大家定会有另一番收获。书上的代码是基于Ionic 1.x 的,而Angular 2 发布在即,Ionic 2 也发布了Beta 版。很多人对于这本书是否已经过时产生了疑问。对于这一点大家大可放心,官方文档对于修改的地方详细地列出了新旧版本的写法,而且Ionic 2 的接口和组件基本上都维持了原样。当然,我个人觉得还是要理解Ionic 的精髓,举一反三才能对代码的理解大有助益。本书算是我翻译的处女作,虽然我已经尽全力但难免有纰漏,如果你在阅读的过程中有不明白的地方可通过i@imnerd.org 联系我。这里首先要感谢奇舞团给了我这样一个机会,然后我要感谢本书的另一位译者梁杰在翻译过程中提供的帮助,此外我还要感谢李松峰老师,他百忙之中帮我们审校译文。感谢我的妈妈在我人生中给予我的无私的爱。当然还要感谢书本前的你,我们的不期而遇定会触发新的奇迹。祝君好运!李喆明2016 年5 月15 日