ionic2.X 自发布以来,吸引了很多的开发者进来尝试,品鲜。作为一个ionic的忠实粉丝,我从ionic1到ionic2,一直致力于在真实的项目中使用该技术,因此有些小的感悟,特跟大家分享一下。下面我将从3个方面进行分享,即:
1.使用ionic技术需要有哪些技术准备?
2.如何看待ionic开发中遇到的一些问题?
3.怎么组织ionic开发流程?
针对于上面的几个问题,我将依次进行分享。
1.使用ionic技术需要有哪些技术准备?
对于一个开发者来说,ionic技术已经屏蔽了许多原生开发的细节,我们真正可以做到一套代码,三端(webapp,ios,android)部署,而且提供完整的前端样式,让许多没有美工设计的app也能具有很多好看的界面。虽然ionic帮我们做了很多的事情,但是这并不是说我们就可以不懂实现细节。因此我们在用ionic技术敲完hello world程序后,需要有一些必须的技术了解。可是每个人的情况都不尽相同,我们该如何做这些准备?
根据我在ionic团队建设,成员由非ionic技术人员成长为ionic技术人员的过程的总结,我建议为每个人制定不同的技术准备计划。但总的来说,大体每个人的计划是这样的:
1.1 转型前是android或者 ios原生开发人员
针对这种人员,需要学习并掌握html5,js,css3,熟悉npm工具命令,针对ionic2.X还需要学习typescript和angular2的相关概念。学习使用网页调试工具(建议使用谷歌浏览器)和真机调试工具(谷歌浏览器的真机调试工具)
1.2转型前是pc端网页开发人员
针对这种人员,需要学习移动端网页开发基本知识,需要学习使用真机调试工具(谷歌浏览器的真机调试工具),需要学习一些原生app打包发布的流程。需要学会利用工具(android stdio 或者xcode)查看真机日志。
1.3 转型前是非上述人员
如果转型前没有做过网页开发或者android或者ios开发,那恭喜您,您可以直接学习ionic的开发,私聊我可以给您帮助。如果只是想快速的做一个,不想学那么多的话, 我建议你直接写您想写得程序,遇到问题可以咨询别人。
1.4 ionic团队建设
如果想建立ionic团队的话,最好团队内有人是从android或者ios转型过来的,有人做过服务端口开发,有人做过网页开发。
1.5 小结
其实在做技术准备的时候,不管是从哪种技术转型,都应该看一下官方给的demo和看1-3个别人的开源项目。这样的话就可以很快速的进行项目开发。
2.如何看待ionic开发中遇到的一些问题?
永远确定你不是遇到这个问题的第一个人,怀着这样的心态你遇到的问题都不是坑。
2.1 大部分的问题是因为开发者的“疏忽”
疏忽害死猫,就算用一个很牛逼的人去看疏忽的代码,也得花费不少的时间。但是对于ionic新手来说,疏忽就是最大的问题了。这是不可避免的,但是这也不可怕,一般疏忽的次数不会超过3次。当自己写得程序不知道怎么的就是运行不起来的时候,这时候就要仔仔细细检查一下自己的代码了。如果实在找不到错误,那就请教大神,最终你会有茅塞顿开的感觉。另外我建议,当自己写完一段代码后,最好立马检查一遍,因为这时候很容易发现错误。尤其在ionic视图模板时,更应该细心,更应该检查一遍。
2.2 语法不熟悉
这个问题,其实没什么好说的,每个人都有可能犯。毕竟要学的东西那么多,但是最基本的语法必须要熟记于心啊。就比如 [],(),[()],类的声明,component声明,几个基本的生命周期事件,导航的使用。我建议要做到心中有疑问,就要去查字典。
2.3 “墙”的原因和版本问题
如果你不懂得科学上网,请修改npm的源为国内的源。我们团队就是使用淘宝的源,下载和安装各种包都很快。(如果不想改变源的话,可以在要执行的命令后面直接添加--registry=https://registry.npm.taobao.org
)。
另外在这个过程中可能会出现node-sass安装不了的情况,解决方法如下:npm install node-sass --sass-binary-site = https://npm.taobao.org/mirrors/node-sass/
。
有一些bug是由于使用版本比较老,无法使用旧版本的功能,就比如RC3的版本无法使用ionViewWillLeave
事件,升级下版本就可以。有一些问题是因为nodejs版本问题,升级下就会没事。
总的来说,当遇到这些问题时,不要慌不要急,Try It Again.
2.4 小结
遇到问题不要怕,要学习总结,再学习再总结。当问题越来越少了,你就成长了。
3.怎么组织ionic开发流程?
虽然ionic可以一套代码生成多种平台的运行程序,但是为了更好的体验,仍然需要对各种平台进行小修小补。于是需要有一套流程和标准用来把控这些“小修小补”。
3.1 团队内人人都能接受的代码规范
一个良好的代码规范能够提升软件的产品质量,降低后续的维护费用等等,代码规范的好处可以自行百度,我就不再强调。但是既然有代码规范就要严格执行。当然这个代码规范也要随着ionic技术的发展不断的与团队内的成员一起优化和改进。
3.2 符合项目的开发流程
针对于不同的项目有不同的开发流程,但主体是一样的,下面结合代码管理功能列举了ionic编码阶段常用的几个流程:
- 网页开发阶段。主要就是利用ionic技术,开发出浏览器支持的webapp的阶段,这一阶段的目标 是构建平台无关的webapp应用。这一阶段对应 代码库的主干;
- 原生开发阶段(可选)。利用ionic的各种插件,构建平台无关的原生app,这一阶段对应 代码库的主干;
- 分支开发阶段(可选)。 针对于ios和android风格的表现不同,有针对性的修改,相应代码,以达到构建出平台有关的运行良好的程序。比如 js的Date对象,在android和ios实例化的方式不同,需要针对ios进行单独优化。这一阶段对应 代码库的各个分支;
- 开发后期(可选)。主要是把分支阶段针对于不同平台的不同点,进行提炼和抽象,并把提炼的结果合并到主干库中。这一阶段的主要目标是抽象现有代码平台的不同,为之后的升级维护提供便利。
3.3 小结
ionic的开发流程同样遵守软件工程的开发的流程和规范。在编码的过程中应该注意编码的规范性,在开发完成前要做分支开发的抽象和扩展,以方便以后的升级维护。