描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787519814243
序1
前言5
第1 章混合移动App 11
Ionic 框架是什么?12
Ionic 2 有什么新特性?12
不同移动开发方式的比较13
理解Ionic 的技术栈15
进行Ionic 应用程序开发的条件17
小结18
第2 章配置开发环境19
安装Ionic 框架19
新建Ionic 项目22
安装平台工具25
配置模拟器26
配置你的设备28
添加移动平台31
在模拟器上测试31
在设备上测试32
小结33
第3 章理解Ionic 命令行界面34
指定编译平台36
管理Cordova 插件37
Lonic 生成器38
预览你的App38
指定IP地址39
模拟运行Ionic App 40
在设备上运行Ionic App42
输出日志42
CLI的信息42
小结43
第4 章Angular 和TypeScript 基础44
Angular 2 是什么?44
理解ES6 和TypeScript 54
类型化函数60
小结60
第5 章Apache Cordova 基础61
Cordova(即PhoneGap)历史63
Apache Cordova 与Adobe PhoneGap63
深入了解Cordova 64
配置你的Cordova App65
设备的可访问性(即插件)65
界面组件:缺失的拼图66
为什么不使用Cordova66
理解Web 标准66
小结68
第6 章理解Ionic 69
HTML的构成69
Ionic组件71
理解SCSS 文件71
理解TypeScript 73
小结74
第7 章编写我们的Ionic2Do App 75
添加平台76
预览Ionic2Do App 76
修改页面结构87
添加全扫手势98
简单主题99
正确地声明类型100
保存数据101
创建FireBase 账号101
安装Firebase 和AngularFire 2102
Ionic 编译系统103
将AngularFire 添加到appmodulets 文件105
使用Firebase 数据105
使用Ionic Native108
小结112
第8 章创建一个基于Tab 的App 113
引导我们的App 118
通过HTTP 服务加载数据119
显示我们的数据122
生成新页面125
理解Ionic 2 的导航模型126
修改公园详情页128
渲染Google 地图131
添加大头钉133
添加查找功能137
设置App 的样式140
虚拟滚动142
定制表格header 144
小结146
第9 章构建一个天气应用147
开始147
探究侧滑菜单模板149
侧滑菜单选项152
显示菜单152
转换模板153
模拟天气提供者156
显示天气数据158
进度显示:loading 对话框和下拉刷新161
添加Geolocation 163
访问在线天气数据165
将Geolocation 和Weather 提供者关联166
获取其他地区的天气169
下拉刷新:第二部分171
编辑地址172
使用Geocoding 服务177
动态刷新侧滑菜单180
Ionic事件181
Observable183
调整App 的样式187
添加天气图标191
下一步194
小结195
第10 章调试并测试你的Ionic 应用196
解决CORS 问题201
用iOS 或Android 模拟器运行202
在设备上进行调试203
调试Ionic 的初始化204
其他工具205
小结206
第11 章部署你的应用程序207
修改configxml 文件207
App 图标和splash 图片208
编译你的Android APK 208
编译你的iOS App 211
小结225
第12 章探索Ionic Cloud 226
创建Ionic Cloud 账号226
生成你的Ionic App ID 227
配置你的App227
Ionic 部署228
安全文档236
Ionic 打包242
Ionic View245
Ionic Creator248
小结249
第13 章渐进式Web 应用250
但是,什么是渐进式Web App?251
manifestjson 文件252
推送通知256
小结257
第14 章终章258
下一步265
Ionic 论坛265
小结266
附录A 从Ionic 1 升级到Ionic 2267
附录B 理解configxml 文件270
附录C Ionic 组件库280
序
在2013 年,我们小组正忙于几个拖曳式工具的开发,用在两个流行的移动和桌面Web 框架上:jQuery Mobile 和Bootstrap。我们发现在Web 开发中的可重用组件和框架发生了快速增长,正在创建更好和更具包容性的工具,让它们的使用变得更加简单。
刚好在那个时候先后发布了iPhone 5 和iOS 7,Web 性能得到了明显提升,新的Web API 也开放了,移动浏览器App 的性能和特性达到了前所未有的程度。我们开始设想,能不能利用这些新特性搭建出一个框架,提供类似原生一样的UI工具包,让Web 开发者能够用标准的浏览器技术创建出原生品质的App ?你可能会说,这是“移动版的Bootstrap”吧?
恰逢此时,Angular 1 被广泛使用于各种Web 开发环境, 完美地解决了JavaScript 和HTML Web 组件的重用问题。我们决定搭建一个移动优先的 WebUI 框架,使用高速增长的Angular 1 框架,来实现交互性和可分发。
Ionic 的版发布于2013 年末,它吸引了Web 开发者的兴趣,这个项目使其在GitHub 上的star 数目和用npm 安装的数目快速增长。一年半后,创业公司、开发团队和企业用户用这个项目开发超过100 万个App。
2015 年,JavaScript 在一夜之间发生了翻天覆地的变化。ES 5,这个从Web 2.0时代就广为人知的JavaScript 版本变成了过去式。取而代之的是ES 6,新一代的JavaScript 版本产生了,具有全新的面向对象开发特性,如新的sharing 和loading 模块,更简洁的语法等。整个JavaScript 世界因为浏览器运行时沸腾不已,开发者争先恐后地用上了ES 6。转译器被编写出来了,用于将新的JavaScript 语法转译成ES 5 语法以便浏览器能够理解。开发者正在摸索将JavaScript 库分发为可重用模块的做法。新的用于编译和发布独立JavaScript 模块的构建工具不断被发明、抛弃和重建。试图减少错误并使现代JavaScript 语法更加标准化的新项目出现了,比如TypeScript和Flow。随着ES 7 以后的实验特性不断被添加到转译器中,在新特性进入生产代码库之前,那些被抛弃和从标准中删除的特性会让保守的JavaScript 开发者更加懊悔。总之,这是一场混乱。
来自ES 6 之前时代的框架作者,突然会面临着一个令人生怯的任务,将自定义的抽象换成标准的ES 6 以后有效的抽象。这些框架,很少有动力开发出像Angular 1 一样的抽象。对于Angular 来说,问题十分简单:如何将所有的和框架相关的东西比如scope、controller、directive 等转换成标准的JavaScript 类、Web 组件一类的东西呢?
通过JavaScript 的这次罕见的升级,Angular 团队从个主要的JavaScript 框架的构建中取得了一些经验,并在未来的兼容Web 和移动开发的框架中应用这些经验。这并不妨碍将Angular 1 的主要概念映射成非常成熟的ES 6 概念。事实上,从许多方面来说,它们在ES 6 中变得更自然。
当得知Angular 2 要开发出来的时候,我们立即意识到这是一个机会,将从Ionic 1 的构建以及那100 万App 的制作中得到的经验用到新的框架中来。
Ionic 团队从2015 年春开始编写Ionic 2。经过一年半的开发,犯了一些错,找到了新的解决方案,进行了大胆的尝试,我们终兴奋地推出了一个大版本,可用于生产的Ionic 2。
从表面上看,Ionic 2 和Ionic 1 一样。组件使用自定义HTML 标签编写,这些标签被Ionic 转换成强大的移动组件。Action 被绑定到类的回调上,这个类扮演着App 中某个页面的控制器角色。项目的编译和测试使用的是相同的命令行工具。外观和主题是类似的,Ionic 2 的外观和Ionic 1 别无二致。
不同的地方在于底层。Ionic 2 底层是用TypeScript 和Angular 2 重写的。所有的Ionic 代码都是类型化的,在我们自己的代码中明显降低了bug 和类型问题的出现几率。还有一些让人惊喜的新特性,比如,对于使用Atom 和Visual StudioCode 的开发者而言,可以使用行内文档并能轻松重构了。代码更加面向对象了,特别是对于一个UI 框架来说,尤其有用。结构不再像Angular 1 那么原始。
Angular 2 为实现在手机上平滑运行进行了重构,采用了一系列手段,比如降低性能消耗,使核心操作(比如变化感知)变得流畅。因此,Ionic 2 App 运行起来比Ionic 1 App 更快,能够处理更复杂的任务。
Ionic 的目的一直是使用轻松的方法构建优秀的移动应用。如果我们不能确信在提升功能的同时使Ionic 变得更易用,我们是不会花费时间和成本重写框架的。我们相信TypeScript 能够使Ionic 代码书写和理解起来都更加轻松。我们相信Angular 2 比Angular 1 更加容易使用,它需要的域特定语言和知识要少得多。我们相信Ionic 2 项目更简洁,组织性更好,组件的使用更加简单。
除了底层技术,Ionic 2 还有几个主要的新特性。现在,Ionic 2 通过对材料设计的支持和简化的主题样式,让App 的外观和运行时的平台相适配。我们的导航系统能够创建出各种灵活的、与原生App 类似的导航,而这是在浏览器中无法做到的。我们添加了太多的特性、组件和数不清的原生API。
另外,移动领域在2016 年还发生了一个剧烈变化。突然之间,移动Web 又重新流行起来,同时渐进式Web App 以一种强势的方式进入前台。Google 打通了一个全新的世界,App 运行在浏览器中,不需要安装,不管网络带宽和网络是否连接,都能够提供良好的用户体验,移动开发者对于将移动Web 作为他们的移动解决方案深信不疑。
使用Ionic 2 的开发者现在可以在不修改任何代码的情况下迁移到移动Web。Ionic App 既是一个运行在iOS 和Android 设备上的原生App,也是一个运行在移动Web 上的渐进式Web App。一次编写,随处运行。
我们将全部重心放在Ionic 2,很高兴能够将Ionic 2 推荐给可用于生产的移动App。我们希望你能够和我们一样发现它是一个高性能的、灵活的框架,用它编写移动App 和移动网站比你想象的还要容易。有接近三百万的App 是用Ionic构建的。我们对如何搭建高质量的App 框架略知一二,汲取了每一个经验教训,并将它们全部用到了Ionic 2 中。
如果你喜欢Ionic 2,希望你也了解一下我们编写的配套工具,它们能给Ionic 开发者提供一些便利,包括快速测试工具Ionic View、快速原型创建工具、快速App 开发工具Ionic Creator,以及在Ionic Cloud 中的一整套轻量级后端集成服务。Ionic 正在变成一个和移动开发相关的“一站式”商店。
我代表全体Ionic 团队成员,预祝你Ionic 2 用得开心,让我们在论坛(https://forum.ionicframework.com)中再见!
——Max Lynch
创始人/CEO
评论
还没有评论。