朱祁林       zhuqilin   

大话企业级移动应用的开发策略

移动原生态应用和web应用

    如今移动应用开发这块可以说三分天下: 苹果的iOS ,google 的 Android ,微软的Windows Phone,不像桌面操作系统,windows一家独大。对于众多的开发人员来说,大多任选其中一种平台进行学习。对于一家软件企业开发来讲,开发的产品就必须支持多种移动开发平台。移动应用程序开发可以分为两种形式:移动原生态应用和web应用,就藐视.net的windows form和asp.net。移动原生态用户体验好,运行在客户端,但需要支持多个手机系统平台,导致开发和维护成本高;而web应用为浏览器应用程序,程序运行在服务器上,这样开发和维护的成本就不那么高了。那么正确的确定何时使用原生态的移动应用开发,何时使用原生态的移动web开发,就能降低软件企业的开发成本。

    这篇文章先谈谈我自己的移动开发体会;然后具体谈谈何时使用原生态的移动应用开发,何时使用原生态的移动web开发;最后提出一种软件企业的移动开发策略,既满足现在,又能把控未来。当然自己是做企业级开发,这里所说的软件是指企业级软件,并非互联网软件。

我与移动应用开发

     原生态的应用我自己选择了iOS学习了一段时间;随后学习了jquery mobile开发框架;服务端是使asp.net webservice。 这三者的结合就可以很完美的开发一个移动应用程序。在使用iOS开发应用程序的时候,自己思考最多的是未来如何快速的移植到Android ,Windows Phone上。后来发现jquery mobile这个web开发框架,隐隐感觉到这个才是未来,使用它开发出来的界面与iOS的界面并无二致,而且只需将jquery mobile开发的程序部署在服务器上,iOS 、Android 、Windows Phone上都可以使用。缺点是用户体检没有原生态应用那么完美,前面说到web应用主要是运行到服务端,解析之后发送到客户端的浏览器上,加上手机的带宽有限,响应速度就没那么快了。那么对于企业来说原生态应用和web应用如何抉择呢?

如何抉择

    对于下面几种场景,建议使用原生态的开发方式。

  1、创建游戏:尽管你可以使用web的方式开发移动游戏,但是无论如何是不能跟原生态媲美的。

  2、需要精确地定位:浏览器也可以定位,但是不精确。

  3、使用摄像头

  4、使用加速计

  5、需要访问移动设备的本地文件系统

   6、离线用户

除了上面等几种情况之外,建议都可以使用web 开发应用程序。

企业的开发的策略

乔布斯说Web是未来,虽然现阶段Native给了用户更好的体验。如果现在的开发者不有效的利用Web技术,那他就落伍了。但如果过分依赖Web,完全不用Native那也未必就是好事。

那么企业现阶段到底如何进行移动应用的开发呢?个人觉得解决方案是使用webview。开发方式是原生态+web。

webview是浏览器控件。可以使用在原生态的应用程序中内嵌一个浏览器控件。

对于正在进行移动应用原生态的开发的企业来说,建议尽量多使用此控件。尽量让页面使用jquery mobile等web框架实现,然后用此控件去展示。对于上面提到的使用摄像头、加速计、访问本地文件可以使用原生态api去实现。这样做的原因很简单:用Jquery mobile实现的是共用的代码,未来可以运行在多个平台。

web app还是未来。但由这种方式的原生态app转换到web app就不难了。

作者:朱祁林
出处:http://zhuqil.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 



posted @ 2011-11-22 12:28 麒麟 阅读(1905) 评论(8) 编辑 收藏

 回复 引用 查看   
#1楼2011-11-22 12:35 | chenkai      
着确实是一个很明确的方向.这点上会分化越来越明显.类似中Web封装.这样可以一劳永逸的在强大的服务器端解决所有问题. 并能够快速支持多个客户端. 但是这也存在一个巨大的问题.就是用户体验. 我们现在做法是把通用的或是多个客户端都会用到的. 进行统一封装调用.
 回复 引用 查看   
#2楼2011-11-22 12:45 | chenkai      
另其实这种优势主要能够服务器端解决支持多个平台客户端问题. 但作为APP开发来说.它一方面解决数据来源 另外一个也解决UI.但不是在每个平台中都是推荐使用WEbView控件.类似Windowsphone 官方明确不推荐使用.所以 个人未来数据存储和复杂业务和计算能力均可以以服务的方式来寄存在云平台上.客户端继续保持其原生态...
 回复 引用 查看   
#3楼2011-11-22 12:49 | 诺贝尔      
挺聪明的。但是web控件太巨型了。

我觉得是不是可以开发一个简单的html5解释引擎,然后做好离线的逻辑。

 回复 引用 查看   
#4楼2011-11-22 13:00 | chy710      
我也比较赞成多一些web成分,关键是找准平衡点。在用户体验,开发成本上权衡。
毕竟手持设备上的web跟pc上差别太大了,还有一种办法就是客户端实现一个中间件平台,跟server交互(纯数据),中间件完成数据解析再显示(相当于web browser,但效果跟native一样了),但体验绝对好过web,且可复用,就是成本高,客户端体积大。

 回复 引用 查看   
#5楼2011-11-22 13:49 | chenkai      
@chy710
我觉得你这个方案 相对来说适用比较大的平台. 如果对于比较独立的产品 客户端而言.成本太高了.一般没人会做.如果放数据存在和复杂计算能力 放到云端. 那么你可以看到未来的客户端会越来越"瘦".

 回复 引用 查看   
#6楼[楼主]2011-11-22 14:11 | 麒麟      
@chy710
你说的缺点就是界面丑。有用过数字天堂的中间件,界面不敢恭维。

 回复 引用 查看   
#7楼2011-11-22 14:37 | Andy--清风      
有看过jquery mobile,也有很大的局限性。
 回复 引用 查看   
#8楼2011-12-08 16:55 | testzhangsan      
很精彩!