此文转载自OSChina上置顶文章
作者:star
终于完成了自己的一个App开发作品,这是一个真正意义上通过跨平台技术完成的纯原生体验App产品。回顾一下整个过程,把我个人的学习历程分享出来,希望能对大家有所帮助。谨以此文,献给像我一样“在路上”创业的小伙伴们,也献给一路上帮助我成长的那个名为“And”的技术大神!
相信每个人都能感受到,这几年移动技术的高速发展和App开发的强劲需求,这些因素交织在一起造成了应用开发人才供求的严重不平。这让那些做IOS和Android的程序员工资水平,像打了鸡血一样翻倍的往上涨,相比之下也让普通Web开发者者望尘莫及。曾经很不幸,小编本人就是众多web开发程序员中的一猿,而且自认是深受传统Java的跨平台思想教育的一个资深愤青。几年来,我怀揣着“一次编码,处处运行”的梦想一路追下来,试图要另辟蹊径杀入到移动开发圈里去。从5年前学习phoneGap开始,我花了大量时间去研究和尝试,用过Xamarin, NativeScript, React Native,Appcan, Apicloud等移动开发产品,我没有放过每一个跨平台移动开发平台,不断坚持亲自去尝试和体验。对于技术上敢吃螃蟹的先行者,我难免也要为之付出一些代价:跨平台技术确实在不断改进,可伴随着发展“坑”也是越来越大。这些让人又爱又恨的产品,让我不断享受着那种“带你装b带你飞带你冲进垃圾堆”的感觉。经过痛苦的学习和实践经历之后,我不禁真心想问上几个问题:Html5技术在移动开发领域里真的能替代原生开发成为未来吗?达不到原生体验效果的跨平台技术还有和意义?“learn once write anywhere”的方式成本这么高,到底能帮程序员省下多少力气?通过反射和桥接技术,用js或c#调用ios和android原生api,有何实用价值,在真实的项目里真有人能忍受得起这么折腾吗?
当然,对技术的吐槽是没有意义的,无论产品发展过程有多么曲折,软件技术本身总是在一步步趋于成熟,没有人能阻挡这个潮流。梦想最终还是落到了现实,无意间一次接触DeviceOne移动开发平台,让我逐渐找到了感觉。算是功夫不负有心人吧,这次尝试,凭我一人之力,一款名为《纳豆》App产品终于上线发布了(包括IOS和Android两个版本)。这个真实的实践经历,让我惊喜的感受到,App跨平台开发时代的这回真的到来了!
好了,闲话少说,感激之情难以言表,还是有图有真相吧:
来感受一下我的App的体验效果吧,大家以扫描二维码下载体验,也可以直接到下面的地址安装:
古人云:“不管黑猫白猫能抓住老鼠就是好猫,不想当老师的程序员就不是好厨子”。是的,好东西就要拿出来与大家分享,接下来我来给小伙伴们详细介绍一下我学习过程。
最初我刚接触到DeviceOne时,也是抱着试试看的态度。直到在QQ技术讨论群看见群里有人展示他做出一款叫做“慧影时间流”日程管理应用,让我信心大增。我尝试着安装体验了一下这个App,结果完全出乎我的意料:两侧时间轴强大的同步能力,精准的计算和流畅体验真是让人叹服,尼玛这是中间件开发出来的应用吗,就算原生开发也很难做到呀!对于这款应用,大家还是自己来体验一下吧。
(作者居然说还不够完美,还要继续完善后才能上appstore。所以这个应用是企业证书签名的,打开之前需要先授权)
当然,别人做的东西再好,也不如自己亲自去做来的实在。于是我就跟着教程,一步步学习,亲自学习了一遍下面这个应用的开发。
官网上还有一些很多小的学习实例,可供大家学习参考:
http://doc.deviceone.net/web/doc/code4do.htm
简单介绍一下DeviceOne的原理,它彻底抛弃html和webview作为跨平台的核心,也不像reactnative那样使用类似html的结构,完全使用自己的一套json格式的ui描述,胆子真够大,不过还好它有可视化的IDE,可以拖拽可以“WYSWYG”的方式构造ui。最最神奇的是它们的ui能自动适配所有手机屏幕,我开发app都基本忘记了屏幕的差异性。逻辑代码可以用JavaScript编写(还能用lua,我没试过),但是对js的要求不高,因为绝大部分功能都是DeviceOne提供的将近100个原生组件来实现的。
好了,我就先介绍这么多吧,时间有限,大家如果有问题还是去官网http://www.deviceone.net/ QQ技术讨论群里问技术大神吧,等我下一个应用发布后会继续分享给大家的。
小伙伴们,实践是检验真理的唯一标准,技术这东西不能靠吹牛的,是不是好东西还要自己亲自尝试过才知道。