手机客户端和web端开发的异同

版本升级。用户角度上看,客户端升级必须让用户手动下载整个新的安装包覆盖安装,而web的升级无需用户作任何事情。开发角度上看,若是客户端有个小bug须要紧急修复,须要修复完后打包一个完成的安装包,给一个版本号,发布给用户升级。而web只须要修改后台的某些文件,而后传到本身的服务器,用多快速的迭代开发方式都没问题。web没有版本兼容性问题,客户端这个问题就大了。
iOS客户端用编译语言,web用脚本语言。编译语言好处:不少错误编译期就知道,不用担忧相似写错一个字母致使的问题。iOS客户端开发只能用XCode,没法选用本身喜欢的编辑器。使用脚本语言的web不管前端后端对编辑器的选择都很自由。
客户端一碰到异常就崩溃,直接退出,web一个try catch能够把全部错误抓住,用户能够继续使用其余不受影响的功能,即便全部功能都受影响,刷新页面搞定一切。web上界面和程序实实在在地分离了,客户端再怎样都是粘合在一块儿的。
发现HTML+CSS样式布局自动排列至关高级,客户端上一切都靠程序去指定大小位置以及排列的变化,可视化的XIB挺鸡肋。
单线程的web很幸福,客户端要处理多线程,虽然强大,但很麻烦。web几乎不用考虑内存泄漏,客户端须要。客户端开发可使用到很底层的接口和功能。web处于较上层,在浏览器的包裹下,好处是不少问题浏览器处理web不用管,坏处是功能受限。
web和客户端开发差很少都使用相似MVC的模式,数据经过控制器更新到各个视图。web多用callback,iOS多用delegate,虽然iOS也能够用block做为callback,但仍是没js方便,还可能致使一些内存问题。
总的来讲从开发普通应用来看,就算不谈跨平台,web开发也是好处多多,但这只是开发角度上看,实际上移动设备上webApp情况始终很差,与原生客户端差距很大,缘由:

网络不行,流量要钱。国内网络环境你们懂的,虽然HTML5有manifest,storage这些手段缓存webApp,但给人感受就是不靠谱,打开它仍是跟打开一个网页同样的感受:耗流量,还有可能在网络很差的状况下打不开,没有像已经下载下来的原生APP踏实。
动画/体验。通常的web在页面间切换或显示隐藏某个组件是没有动画的,你们也习惯了,iPhone带了个头,一切都要动画过渡,致使在移动设备上你们习惯了动画切换,受不了没有动画的应用,致使动画性能底下的webApp至今体验上远不如原生客户端。
把webApp经过safari添加到主屏幕这样的习惯很是不普及,极少人知道,不过这个应该也不算问题,若没有上面两个大问题,这个习惯很容易普及的。
P.S 在开发普通应用(数据处理/交互)方面,web有很大的优点,在网络和性能问题解决后理应是首选开发方式。但在游戏领域我看不出web有什么优点,继续对有点热的HTML5游戏开发表示不解。前端

相关文章
相关标签/搜索