运气比较好,一入职就被调去开发移动端app,之前学过的只是web站点的开发,并且没有任何经验,就这样赶鸭子上架硬着头皮用了半个月时间学会了第一个app平台deviceone。放眼国内市场,类似的app开发平台有很多,大部分都是基于H5的开发,这类app优点在于只要会写JavaScript代码就能写app代码,它的原理就是将原本使用Java或者objectC开发的app转嫁到web浏览器上解析运行,说白了就是一个网页的集合体。还有一类是将Android和iOS的应用组件进行封装,然后通过JavaScript代码调用这些封装过的原生组件,device one就是后者。
刚开始学习deviceone的时候很不习惯,它完全不像是在做前端开发,首先它不支css也不能使用第三方库,那么剩下的只有干巴巴的js和它提供的一些组件了,它的优点在于搭建UI界面非常简单方便,只需要根据设计稿选择合适的UI组件,然后将组件拖入设计区域设置属性即可,然而这样也造成一些不便,有些属性并不能在程序中修改这样就造成一些特殊的效果实现难度很高。
说到拖拽UI组件来构建app页面,这个对于没有学习过编程的人来说是非常友好的,就像小孩子玩的积木一样,一层套一层一个落一个,但是对于代码的复用性就比较小了,每一个页面的代码基本上都需要重新编写,只有一些大部分页面都有的比如后退http请求之类的代码能够复用。使用它也半年了,我认为它只是适用于轻量级app,什么是轻量级app?我所谓的轻量级app指的是功能简单业务逻辑复杂度低,举个例子,一个新闻类的app它的逻辑比较少大部分功能都是用来展示新闻信息的这样的app用deviceone来写非常合适,但是如果想做一个电商类的或者音乐影视类的它就比较难以驾驭了。
最近公司想要使用react-native写app,于是我又转战到RN的阵营中,断断续续学习差不多快一个月了,说真的这个东西是我见过的自由度最高,同样坑也是最多的一个平台,构建页面的复杂程度远超web站点,官方文档也是一塌糊涂,照着文档都能报一堆错误,有时候查了一天的错误最后才发现是Android和iOS不兼容问题,然而官方并没有给出相关的解释说明,诶,选择IT就等于选择了最高难度的挑战,希望今后的收获对得起现在的努力付出吧。