【官方地址】
http://developer.appcelerator.com/blog/2011/09/titanium-mobile-for-web-developers.html
你是不是已经决定开始使用Titanium Mobile,但是不知道从何下手?你现在是一个Web开发者,懂JavaScript,但是感觉用它做一整个应用有些害怕?那么这篇文章将会给你帮助。
Titanium Mobile是什么?
Titanium Mobile首先是一个SDK。和一些浏览器提供一些扩展API一样,Titanium Mobile也同样扩展JavaScript(JS)从而允许你访问原生平台元素的接口。Titanium Mobile运行在一个native窗口上下文中,而不是一个浏览器窗口,从而它也存在DOM。其实,Titanium Mobile中的JS的运行方式更类似于服务器端(server-side)的JavaScript,比如node.js,但是它提供浏览器的实现。从一开始在思想上有这个认识,会为你节省很多麻烦。
在社区中已经存在以Titanium为基础的一批开源Framework,所以Titanium Mobile自身严格来说不是一个Framework。
理解Titanium中的UI设计
在网页中,你可能会用到DOM(Document Object Model)中的DIV来创建UI,并且提供多个页面。在Titanium中也适用了这个理念,但是不同的是,在移动开发中使用“view”来代替各种标记元素,窗口,以及页面。那么在设计应用的页面布局时,原则上来说我们应该指定绝对位置,当我们适用这样的方法时,就能缩短CPU的处理时间,从而优化性能。虽然那么说,但是相比绝对位置来说,我们也可以选择水平和垂直的相对位置来指定页面布局。这样页面布局就很方便。
在Titanium中,也提供了控件,比如按钮,滑块,开关,标签页等等,他可以使用户很直观的使用应用。
MVC是否还有意义
在社区中,已经存在一些开发好的MVC风格的框架,也欢迎大家试试(通过谷歌你能找到很多)。然而,我们认为,使用模块化的结构更容易,比如我们提供的例子应用
Tweetanium
Titanium和window的URL
很多开发者查看我们的示例应用
KitchenSink 中使用了URL属性,认为那是“最佳实践”,继续沿用它做类似于web页的应用。这里让我来解释为什么你不能按常规来使用这种方法开发应用。
对于window来说,定义URL属性有点儿类似于基于浏览器Web应用,它允许你打开一个新页面。
和浏览器一样,移动应用也会在新的cotext上被运行,换句话说,它就像你应用中的一个单独的应用程序。这样一来的结果是你定义的变量在另外的context中将不能再使用。为了解决这个问题,浏览器使用cookie来存取整个域下的数据,同样,你的应用也能设置属性保证整个应用都能够取到数据。这样的缺点是,即使你不需要的时候,数据也存在,除非你删掉它。而模块化设计方法将会使数据自动销毁。
有时候改变context也是个好事,比如在KitchenSink中,它对于保证变量值存在一个窗口中,而不会影响到下一个窗口是很有帮助的。能使开发者一看就知道是怎么回事。
所以,开发者应该做什么?这里我再次把
Tweetanium推荐给你,它是一个很棒的例子,很好的展示了如何设计一个单context的应用。
跨平台测试
尽管被大家普遍的误解,但是Titanium真的不是一个“一次编写,随处运行”解决方案。虽然你可能会觉得这令人惊讶的,但他确实是有意的,也有很好的理由!不同的平台都会有他们的强项和弱项,所以,如果我们开发的应用什么地方都是一样的,他也就削弱了平台的强项,从而远离了他们的目标市场。比如,在iOS应用中,标签栏是位于屏幕的下方,但是完全不同的是,在Android中,标签组是在上方的。然而,虽然你需要适应在用户接口上的差异,但是所有的平台上大多数的业务逻辑是一样的。总的来说,还是要考虑跨平台测试(不想ie6和safari,更像firefox和chrome)。
总结
需要记住的一点是,Titanium的目标不是鼓励你把现有的web应用直接移植到移动电话上来,而是它提供了一种你需要的工具,通过你知道的语言来创建应用,给你的用户一个真正原生,更加逼真的应用体验。
一些有用的链接
分享到:
相关推荐
Titanium Web代理 用C#编写的轻量级HTTP(S)代理服务器。 在此处报告错误或提出问题。 要获得编程帮助,请使用带有标签Titanium-Web-Proxy的 。 产品特点 采用服务器连接池,证书缓存和缓冲池的多线程全异步代理 ...
Titanium中文版开发手册(翻译版)
如需编程帮助,请使用带有标签 Titanium-Web-Proxy 的 。 特征 采用服务器连接池、证书缓存和缓冲池的多线程和异步代理 查看、修改、重定向和阻止请求或响应 支持相互 SSL 认证、代理认证和自动上游代理检测 在 ...
这是一个适用于 iOS (iPhone/iPad) 的 Titanium Mobile 模块,它允许在您的应用程序中内置一个 HTTP 网络服务器。 基本安装说明 请遵循提供的指南。 变更日志 见。 访问保管箱模块 要从 JavaScript 访问此模块,您...
Titanium Web浏览器 用Rust编写的键盘驱动的Web浏览器 Titanium用Rust编写,并使用WebKit2GTK渲染网页。 它的灵感来自于Vimperator和qutebrowser.py。 屏幕截图 特征 类似于vim的键绑定 按照键盘上的链接/滚动 ...
Titanium-WebClient Titanium Web服务客户端
[Packt Publishing] Appcelerator Titanium 移动应用开发教程 (英文版) [Packt Publishing] Creating Mobile Apps with Appcelerator Titanium (E-Book) ☆ 图书概要:☆ Develop fully-featured mobile ...
TiInspector, 通过 Chrome DevTools调试 Titanium Mobile 应用程序 #Ti 检查器Ti检查器允许在 Chrome DevTools web界面中调试 Appcelerator Titanium 应用程序。工具通过将命令和消息转换为 Chrome 调试协议和 ...
Titanium Backup_3.7.4捐赠完全版
TitaniumBackup_6.0.5.1 专业版 可静默恢复
titanium-d1-kickstart.6.1.1.gbin 强大的思科模拟器
第一次使用钛备份的朋友,可以试着自定义一下文件备份的路径:钛备份默认会将程序和数据备份在SD卡的 TitaniumBackup文件夹里,但如果是像白鸽这样使用的包含内置和外置两种SD 卡的手机Atrix 4G的话(这样的手机除 ...
atom-titanium, 用于 Titanium 合金的Atom 封装 用于 Titanium 合金的 All-in-One封装这是一个用于 Titanium 合金的Atom 封装。$ apm install titanium-alloy冲突&需要通知Alloy 1.8. x
Google-Cloud-Messaging--Titanium-, 在 Titanium 中,Google云消息传递 Google-Cloud-Messaging--Titanium -注册带有GCM和处理发送到设备的通知的Titanium MODULE 。Android平台使用c2dm进行推送,但是因为c2dm停止...
Titanium[1].Backup.Pro.v3.7.2_cnFixed_newkey.apk Titanium[1].Backup.Pro.v3.7.2_cnFixed_newkey.apk
Titanium官方移动终端开发API文档
前端开源库-node-titanium-sdk节点Titanium SDK,Appcelerator Titanium SDK库
NULL 博文链接:https://rensanning.iteye.com/blog/1415689
钛备份 Titanium Backup,备份你的程序及程序数据,并支持定时备份等功能。 功能很强大,有此软件,不管你的格机还是重刷ROM,在重装软件时都是无痛的,非实适用经常捣鼓手机有机友! 解锁器使用说明: 1.安装钛...
这是截至到目前最新的版本(Titanium 2.1 API) 方便没网的情况下,童鞋们翻阅文档。