成也Titanium,败也Titanium之pros

移动开发
本文旨在从Titanium自身出发来发现其好的和不好的地方,相信随着大家的加入,提供商的大力投入,会不断的推动Titanium的成长。至于是否能满足大家的需要,看完本文之后,大家也应该有个自己的判断。

随着Titanium不断的发展,开发者们纷纷加入到这个队伍中来。很多人在开始的时候都对这种混合应用开发还存在这一定的犹豫,我为什么选择它?它是否能够满足我的需求,实现我的预期目标?我使用它是否能发挥出它自身的特长?等等

很多人喜欢把Titanium和PhoneGap搁在一起去比较,本文的目的不是这个,如果你想知道他们的区别,“百度一下你就知道”。

首先,Titanium是什么?Titanium是Appcelerator公司提供的一个开源的开发平台,它允许我们使用WEB开发技术,如:Javascript、HTML、CSS等来创建原生移动应用。Titanium Mobile SDK是目前被25万移动应用开发者、3万5千应用所采纳的领先跨平台移动应用开发解决方案。(数据来自官方)

以下站在中立的立场,先从正面来评价一下Titanium,之后的文章会从反面来说明。(当然有些观点基于本人自己的开发体验)

1)免费的Titanium

Titanium是开源免费的(Apache License Version 2.0),Appcelerator公司通过Github公布了Titanium相关源码:

Appcelerator Titanium Mobile

Appcelerator Titanium Desktop

Titanium Mobile Kitchen Sink Demo

Modules for Appcelerator's Titanium

Build scripts and config for Titanium

……

IDE开发工具Titanium Studio也是免费的。

http://www.appcelerator.com/products/titanium-studio/

2)快速的原型开发

Titanium真正意义上加速了应用的开发速度,因为它允许你采用一种灵活的方式来创建应用,相比通常的应用开发(Object-C的iOS引用,Java的Android应用)来说,它需要写很少的代码,花费更少的时间。

无论你是选择原生开发或选择跨平台的工具包来开发应用,都可以使用Titanium来创建原型,通过UI来评估用户的交互,因为其快速,便利的开发特性。

3)面向Web的设计

应用自身一般都是通过Web技术开发的,Titanium的重点也就是来帮助那些使用web服务的应用的开发。

它有很大的好处,不仅简化了开发过程,而且还节省了通过远程通信交换信息时候所花费的开销。典型的一个例子就是通过JSON形式来做数据传递。

JSON(JavaScript Object Notation) 是一种基于JavaScript(JavaScript-like objects)的轻量级的数据交换格式,而Titanium提供纯正的JavaScript API,所以你需要做的就是定义一个局部变量,然后从网络接收的数据赋给这个变量即可,不需要对数据进行解析,提取和转换(除非是一些不支持的JSON数据类型,比如date)。

4)使用JavaScript开发

这是一种很多开发者都熟悉的语言,它能使很多具有Web开发背景的开发者迅速的转入到移动应用的开发中来。更重要的是,Titanium ***程度的实现了基于原型的脚本语言的本质特征:灵活及结构化的组织。

开发者可以利用JavaScript的语法来迅速的创建iPhone,iPad,Android等平台的应用,不再需要具备Object-C和Java经验。

而且像jQuery,YUI等一大批成熟的JS框架可以在Titanium中灵活应用。

5)支持跨平台

只需要编写维护一套代码,Titanium会为你编译出各个平台的原生应用后在多平台上运行,但是你还是要先重点开发其中一个平台的代码,然后进行必要的修正来让他在第二个平台也能正常运行。

好处是显而易见的,你不必学习两个独立的语言(Object-C,Java),还可以实现很高水平的代码重用性。

多平台下代码的实现可以通过多种方式实现,比如IF/ELSE,分离的jss文件,分离的js文件已经平台特有的子文件夹。

当然他也不是那么***的,你不能说类似“write once, run on iOS and Android”这样的话(套用一下Java的口号)。

6)迅速成长的社区

Appcelerator已经创建了一个社区,它具有25万移动应用开发者,他们使用Titanium跨平台开发工具开发了3万5千应用,并且推出了Open Mobile Marketplace,开发者可以销售,购买,共享自己的Module,Template,Design element以及扩展的web服务。

Appcelerator最近也获得了重要的投资(其中C轮融资150万),收购了Cocoafish来提供云服务,增强平台的功能。

显然,Appcelerator 正在创建一个很好的,正在快速成长的平台,以后会越来越好。

7)使用原生UI控件

Titanium提供最接近原生应用的应用,所有的UI控件都使用了原生控件,应用具有原生应用的"look and feel"。

它提供了一些通用的API,同时也提供了一些平台特有的API,只需要添加简单的判断即可实现。

8)丰富的API

目前***版本1.8.2中,提供了Modules: 36个,Objects: 119个,Methods: 5657个,Properties: 3180个,涵盖了数据库,文件系统,GPS地理信息,地图,媒体,网络,SNS,RESTful,SOAP,HTML5等各个领域。

9)可扩展性

当TitaniumSDK自身提供的API不能满足你的需求,你可以扩展Titanium,编写你自己的module(当然这样的module是平台特有的,使用Object-C做iOS的module,使用Java做Android的module),然后在JavaScript中调用自己的 module。由于是通过各自的开发语言来实现module,所以所有的平台特性都能够使用。

10)源码安全

Titanium将源码js文件在发布的应用中进行了编译,无法查看,保证了应用源码的安全性。

这里需要特别提醒的是,在开发Android应用完成后,制作APK文件时,一定要修改tiapp.xml的以下设置,如果ti.deploytype被设置为“development”,Titanium在构建时会将你的tiapp.xml和Resources下的所有东西原封不动的打包入 APK(assert),别人都不需要反编译,简单的解压就能获取你所有的源代码。

Xml代码
  1. <property name="ti.deploytype">production</property> 
  2. <property name="ti.android.compilejs" type="bool">true</property> 

11)内存管理

自动的内存管理处理,iOS应用中不再需要特别考虑Object-C所特有的内存管理。

12)……

这里需要大家来补充

在下一篇中我将继续为大家重点为大家梳理Titanium反面,看看Titaniun还有那些不足之处。

责任编辑:佚名 来源: rensanning的博客
相关推荐

2012-05-18 11:34:03

Titaniumcons

2015-07-06 11:18:40

游戏运营设计教程

2012-02-13 14:41:50

Titanium架构分析

2019-05-31 08:23:00

Oracle数据库云渡劫

2012-04-20 11:07:12

Titanium

2012-06-26 10:40:43

Titanium

2012-04-19 12:58:26

TitaniumJSS

2012-04-19 13:55:19

TitaniumTiMVC

2012-06-14 09:42:20

跨平台工具AppceleratoTitanium

2012-05-17 09:09:05

Titanium单元测试

2012-09-10 09:14:13

2021-07-03 23:40:27

CTR算法工程师

2012-04-19 13:52:16

TitaniumMVCRedux

2012-04-19 16:22:12

TitaniumTabGroup

2012-05-23 09:41:37

Titanium St卸载

2012-05-18 11:28:57

TitaniumCommunity W

2012-04-19 17:16:32

Titanium实例代码分析

2012-05-18 10:08:56

TitaniumAndroid

2012-05-23 09:28:14

Titanium错误应对办法

2012-04-19 16:41:24

Titanium视频实现页面跳转
点赞
收藏

51CTO技术栈公众号