移动开发框架的使用心得

本文分享了一年的移动应用开发经验,对比了Titanium、PhoneGap和XCode的特点。Titanium适合多平台开发,但资源占用较高;PhoneGap开发成本低,支持多平台;XCode虽仅支持iOS,但代码执行效率高。

我做移动应用开发有将近一年时间了,最初主要是使用Titanium开发移动应用,后来尝试过PhoneGap,现在则主要是用XCode写Objective-C和C代码。下面总结一下开发的心得体会。

 

使用Titanium开发的优点

1.      官方宣称是native的,即会把js代码编译成本地代码,并运行。运行起来会比较快。

2.      支持比较多的移动平台,例如android,iphone,ipad。

3.      对于比较熟悉JavaScript的人来说,开发成本是比较低的。

4.      支持自定义模块,实现框架中没有的功能。

 

使用Titanium开发的缺点

1.      比较占用资源。所有的对象都是autorelease的,不能及时释放不使用的内存。以至于有时候应用会莫名其妙的退出。应用太大之后,需要考虑优化问题,否则运行速度很慢。

2.      UI响应很慢。我曾经需要在UI中计算上一个label的高度,用以确定下一个label的top位置,在Titanium中需要使用延时来做,否则获取不到正确的高度。

3.      UIToolbar的UIBarButtonItem没有对应的实现,只好用UIButton代替,这样一来,就没有高光效果、禁用效果,需要手动增加图片样式。

4.      调试起来很麻烦。不支持断点,并且全部编译需要比较长时间,只能在模拟器中以运行运行程序的方式来调试。

5.      创建UI界面比较麻烦。全部都使用代码来生成,没有类似于Interface Builder之类的工具。

6.      开发中遇到的bug很难改,尤其是该框架的bug,只能等待官方解决。

7.      开发工具需要联网登录,如果网络不好登录失败,则无法进入开发界面了。

 

 

关于PhoneGap

内置了一个WebKit内核的浏览器,可以直接写html代码和JS代码,加上使用jQuery Mobile等框架,就可以做出一个比较漂亮的界面了,并且支持调用本地的系统接口,例如进行数据存储操作等。因此开发成本也是比较低的。不过处理的速度也不会很快,对于不同版本的WebKit内核,遇到的界面bug也会很难改。也支持自定义模块,不过我觉得最大的优点就是支持很多的移动平台。对于手势功能,貌似支持得不好。

 

使用XCode开发iOS移动应用。

开发成本比较高,需要有C语言基础,还要学习Objective-C,开发出来的移动应用仅适用于iOS平台。不过代码执行效率高,用熟了也还是挺不错的。

 

可见,如果想要开发一个支持多平台的应用,并且对界面交互要求不高,可以使用PhoneGap;如果希望运行速度更快一些,兼容性更好一些,可以选用Titanium。如果应用比较复杂,并且对质量要求很高,还是使用XCode来开发比较好。


### 不同移动应用开发框架特点差异 #### 原生应用开发框架 原生应用是指专门为特定平台(如iOS或Android)设计使用平台官方推荐的语言技术栈构建的应用程序。这类应用能够充分利用设备硬件资源,提供最佳性能体验。 对于 iOS 平台而言,Swift Objective-C 是主要编程语言;而在 Android 上,则采用 Java 或 Kotlin 进行编码工作。由于直接调用了底层 API 接口,因此可以获得最流畅的操作感受以及最高的安全性保障[^3]。 #### Web 应用 (Web App / HTML5 App) 网页应用本质上是在浏览器内运行的网站页面集合体,通过 URL 访问即可打开使用而无需安装额外客户端软件。其核心技术依赖于前端三大件:HTML、CSS 及 JavaScript 来实现交互逻辑处理功能。尽管跨平台兼容性强且易于维护更新发布周期短等特点使其备受青睐,但在离线支持能力方面存在局限性,并且无法像本地应用程序那样深入访问操作系统特性。 #### 混合模式移动应用(Hybrid App) 混合型APP结合了上述两种方式的优点,在单个容器环境中封装了一个小型webview组件用于呈现基于 web 技术的内容视图部分的同时也允许开发者编写少量插件接口去操作手机传感器等功能模块。这种架构既保留了一定程度上的灵活性又兼顾到了用户体验的一致性稳定性。例如 Cordova/PhoneGap 就是一个典型的代表项目之一[^1]。 #### 跨平台框架(Xamarin, React Native, Flutter etc.) 这些工具旨在让程序员能够在一次编写代码的基础上生成适用于多个目标系统的二进制文件版本。其中 Xamarin 使用 C# 编程并通过 Mono 运行时环境桥接至各终端系统之上达到接近本机效率的效果;React Native 则借助 Facebook 开发的脸书开源库使得 JSX 语法描述 UI 组件变得更为直观简洁;Flutter 更进一步地引入 Dart 作为首选脚本解释器从而实现了真正意义上的热重载机制加快调试速度提升工作效率[^2]。 | 特征 | 原生应用(Native Apps) | 网页应用(Web Apps) | 混合应用(Hybrid Apps)| 跨平台框架(Cross-platform Frameworks) | | --- | --- | --- | --- |---| | 性能表现 | 高效稳定 | 中等偏下 | 较好 | 视具体框架而异 | | 用户界面(UI)质量 | 极佳 | 差强人意 | 良好 | 多数情况下不错 | | 设备API接入权限 | 完整开放 | 局限较大 | 支持有限范围内的API | 扩展能力强 | | 发布流程复杂度 | 相对繁琐 | 十分简便 | 稍显麻烦 | 简化但需考虑多渠道适配 |
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值