iOS客户端开发与Web前端开发

标签: 技术文章 | 发表时间:2012-05-30 21:58 | 作者:bang
出处:http://blog.cnbang.net

不知不觉做iOS客户端开发已经半年多了,了解到iOS客户端开发与Web前端开发的一些异同,写一下。

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

总的来说从开发普通应用来看,就算不谈跨平台,web开发也是好处多多,但这只是开发角度上看,实际上移动设备上webApp状况始终不好,与原生客户端差距很大,原因:

  1. 网络不行,流量要钱。国内网络环境大家懂的,虽然HTML5有manifest,storage这些手段缓存webApp,但给人感觉就是不靠谱,打开它还是跟打开一个网页一样的感觉:耗流量,还有可能在网络不好的情况下打不开,没有像已经下载下来的原生APP踏实。
  2. 动画/体验。一般的web在页面间切换或显示隐藏某个组件是没有动画的,大家也习惯了,iPhone带了个头,一切都要动画过渡,导致在移动设备上大家习惯了动画切换,受不了没有动画的应用,导致动画性能底下的webApp至今体验上远不如原生客户端。
  3. 把webApp通过safari添加到主屏幕这样的习惯非常不普及,极少人知道,不过这个应该也不算问题,若没有上面两个大问题,这个习惯很容易普及的。

P.S 在开发普通应用(数据处理/交互)方面,web有很大的优势,在网络和性能问题解决后理应是首选开发方式。但在游戏领域我看不出web有什么优势,继续对有点热的HTML5游戏开发表示不解。

相关 [ios 客户端 开发] 推荐:

iOS客户端开发与Web前端开发

- - bang's blog
不知不觉做iOS客户端开发已经半年多了,了解到iOS客户端开发与Web前端开发的一些异同,写一下. 用户角度上看,客户端升级必须让用户手动下载整个新的安装包覆盖安装,而web的升级无需用户做任何事情. 开发角度上看,如果客户端有个小bug需要紧急修复,需要修复完后打包一个完成的安装包,给一个版本号,发布给用户升级.

iOS客户端hack的两种姿势

- - WooYun知识库
分析某商城漏洞,在漏洞验证时采用了两种iOS上的hack工具:cycript和reveal,各有风情,均能攻城拔寨,实乃我辈日常居家、杀人越货之利刃,现与诸君共享之. 该商城的iOS版app为用户提供了找回密码的功能,用户需通过三个步骤找回密码:. 输入一个本地的图形辨识验证码(多余. 提供用户手机号,输入一个短信验证码.

iOS开发资源

- - Starming星光社最新更新
iOS App UI 欣赏、分享精美的App界面设计. iOS代码实例搜索、iOS特效示例、iOS代码例子下载. 以web的形式提供iOS UI设计的素材,你可以在web上拖动一些控件做出简单的ios 应用效果,并且生成一个URL,能分享给其他人. 一款 Photoshop 插件,由 UI Parade 推出的一款针对iOS UI 的设计工具,设计师动动鼠标即可制作精美的 iOS 应用原型.

windows客户端开发调试工具

- - CSDN博客综合推荐文章
本文介绍windows常用开发与调试工具. 1.windows常用开发与调试工具. 内核大神打造,含大量windows系统工具,windows开发必备神器,大神被MS招安. 下载地址:http://technet.microsoft.com/en-us/sysinternals. 监视程序运行过程中的动作,可用于性能监控.

朋游风景网推出iOS、Android 客户端,瞄准智能旅游市场

- Draven - 36氪
以前外出旅行,跟团的话,总是觉着被牵着走特别不爽;自己玩又不知道按照什么路线,又不知道各个景点背后有什么故事. 这时候就会想,有没有一个手机App,去一个景点时,它可以为你自动规划参观路线,同时还为你介绍每个景点的相关信息呢. 广州创业公司朋游风景网 就打算解决这个问题. 朋游风景于8月1日正式上线了其网站,并同期发布了iOS 应用、Android 应用.

QQ邮箱iPhone客户端强势登场:经过iOS 4.0 测试

- 洞箫 - cnBeta.COM
新版iOS5总算是千呼万唤始出来,其中,内置QQ邮箱这一点更是吸引了众多中国果粉的眼球. 同样值得关注的是,QQ邮箱的官方iPhone客户端近日强势登陆App Store,已经过 iOS 4.0 测试,只需要iOS 3.0 或更高版本即可下载使用.

从简书iOS客户端,来谈谈Hybrid方案细节设计 - 简书

- -
作为一位 iOS 开发人员,你应该已经敏感地发现,自己的工作涉及内容已经不止于 Native 的部分,因为 Hybrid App 和 ReactNative 等技术方案已经不仅仅是概念,越来越多的公司开始着手自己的 Hybrid 方案以及 ReactNative 本地化工作. 介绍相关概念的优秀文章已经有许多,方案的实现原理你也应该已经或多或少有了一些理解.

iOS MDM开发流程

- - CSDN博客移动开发推荐文章
一年前曾参与过中石油的一个移动平台项目,实现了通过MDM对iOS设备进行管理. 由于苹果对于mdm这块的接口及开发流程只向几个合作伙伴进行了分享,并没有对具体实现的文档进行公开,所以这方面的资料非常少. 现在把实现的过程分享给大家,希望能对大家有所帮助. MDM的全称是Mobile Device Management,是企业IT 向移动互联网过渡的平台技术,帮助企业将IT管理能力从传统的 PC 延伸到移动设备甚至 移动应用APP.

iOS App开发那些事

- - IT江湖
自从做Team Leader之后,身上权责发生了变化,于是让我烦恼的不再是具体某个功能,某个界面的实现,而是如何在现有代码的基础上做渐进式的改进,创造出比较合适规范和框架,使得组内成员更快更好地完成任务. 一年下来,颇有点想法,于是啰嗦几句关于iOS App开发的那些事. 首先明确一点,合适的人是指纯技术团队的建设.

推送通知iOS客户端编写实现及推送服务器端编写

- - CSDN博客移动开发推荐文章
推送通知技术在Mac OS X和iOS系统上都可以运行,我们本章主要介绍iOS客户端编程,推送通知的编程比较简单,编程的关键是获得令牌,这是从APNS返回的,然后还有把提交给内容提供商. 下面我们看看开发之前的一些准备工作. 编写iOS推送应用需要在Xcode工程中进行一些配置,这些配置是主要是设置代码签名标识,代码签名标识的前提要有配置概要文件(Provisioning Profiles).