Appcelerator Titanium

Introducción

Segun la version oficial:

Titanium es un Open Source Framework, para construir aplicaciones Desktop y Mobile nativas utilizando tecnologias web abiertas como JavaScript, HTML5 y CSS.

Titanium permite desarrollar sobre una API JavaScript y portar el proyecto fácilmente a iPhone, iPad, Android y en poco tiempo BlackBerry. Sin duda a simple vista suena excelente pero como todo tiene sus bemoles.

Algunos contra que podemos encontrar son:

  • Lack de documentacion
  • Lack de IDE
  • Lack de Debugger
  • No convierte el codigo JS a nativo. Sino que es solo precompilado y ejecutado en un runtime JS que hace un mapeo directo a las funciones nativas del OS.
  • Los controles no se comportan 100% igual de una plataforma a otra, pequeñas diferencias de render.

    Algunos puntos a favor pueden ser:

    • Open Source. apache 2.0 License
    • Comunidad en constante crecimiento
    • Baja curva de induccion para desarrolladores que tengan conocimiento en JavaScript y HTML/CSS
    • Compatibilidad con iPad, iPhone, Andriod, y pronto BlackBerry en beta
    • Extensible, por medio de Titanium+Plus Modules
    • Acceso a la comunidad Open Source JavaScript
    • Las aplicaciones corren de manera fluida como cualquier otra nativa
    • Reduce los costos de desarrollo

      En realidad no se trata de un compilador Cross-plataforma sino de un runtime que ejecuta linea por linea nuestro JavaScript que ejecuta nuestro código y provee de un puente común para ejecutar codigo nativas de cada OS Mobile. Lo positivo es que permite utilizar HTML5 y CSS e insertar con una baja curva de inducción desarrolladores web a la plataforma Mobile.

      Toda nuestra aplicación puede ser desarrollada en JavaScript y HTML5/CSS, pero como en todos los frameworks de este estilo el gran problema se plantea cuando se requiere alguna funcionalidad o control out of the box.

      Dado que provee un puente que permite ejecutar código nativo por detrás, si deseamos un control especifico que solo puede ser implementado en código nativo Objective-C o Android, debemos utilizar lo que ellos denominan desarrollo de Titanium+Plus Modules que son extensiones para poder invocar código nativo propio.

      En el caso de que necesiten saber mas sobre Titanium+Plus Modules para iPhone sigan el link. Luego de buscar, encontre una guia para Andriod en Titanium+Plus Modules para Android.

      Un buen punto de entrada es comenzar leyendo las Started Guides. Si aun no tenemos la plataforma instalada hay buena informacion de como hacerlo en Mac, Windows y Linux en Get Started. Luego Titanium provee otros puntos de encuentro para la comunidad como un el blog Appcelerant, twiter, irc, etc. Por mi parte lo que más me ayudo a tirar algo de codigo en esta plataforma fueron las Programming Guides.

      Mi sugerencia es hacer la instalacion directamente en Mac OSX donde podremos ver el potencial real de Titanium al poder ver nuestra aplicacion corriendo en iPhone y Andriod al mismo tiempo.

      Si quieren agregarle al ambiente Titanium un IDE con un minimo de auto completar visiten Appcelerator + Aptana + Intellisense.

      Plataforma

      Nuestra aplicacion sera desarrollada principalmente en JavaScript, utilizando la API que Titanium provee en comun para las plataformas mobiles. Titanium precompila el JS y lo empaqueta junto con un runtime y las  clases nativas iPhone o Andriod.

      El runtime  ejecutara nuestro codigo linea por linea y cada invocacion JS a la API de Titanium deriva en una llamada a codigo nativo.

      Teniendo una vision simplicada de este framework, diria que es como tener macros de alto nivel JS que terminan invocando por detras codigo de nativo. Hay que tener en claro que el compilador de titanium precompila el JS para una ejecucion rapida y empaqueta el proyecto, pero NO convierte nuestro codigo en codigo nativo al momento de la compilacion, esto solo sucede durante la ejecucion y por medio del bridge.

      Continuara…


      Usuarios avanzados

      Dado la demora en algunos releases de Titanium SDK 1.5.0, estoy comenzando a probar las “continuous builds” estas se pueden conseguir en http://builds.appcelerator.com.s3.amazonaws.com/index.html.

      Para poder utilizar las nuevas funciones de +Plus Modules for Andriod necesitamos el Titanium Mobile SDK 1.5 el cual solo puede ser encontrado entre las continouos builds. Esta version se encuentra actualmente en QA y esperamos un release para este mes o diciembre.

      Appcelerator Issue Tracker, podemos dejar nuestros issues registrados y seguirlos en https://appcelerator.lighthouseapp.com/dashboard

      6 pensamientos en “Appcelerator Titanium

      1. Gran artículo, lo mejor que he encontrado en español sobre Titanium, gracias porque dudo entre usar Titanium y PhoneGap, pero ahora ya tengo las ideas más claras.

      2. Corroboro lo ya dicho, el mejor post sobre Titanium en español. Muchas gracias, me has dado unos cuantos enlaces para seguir bicheando.

      3. Pingback: Appcelerator Titanium para crear aplicaciones Android | Androideity

      4. Me parece un artículo excelente. En lo que yo estoy interesado es en extender una aplicación web para que simule trabajar en nativo pero funcione en Internet, por ejemplo programas de contabilidad y gestión empresarial, buscadores de noticias, etc.

      5. hola he bajdo el ide de appacelerator esta cool pero no se como desarrollar un app desde este ide usando un win2 o un linux solo da la opcion para android, bbos y tizen. o para desarrollar para ios con este ide hay que instalarlo forzosamente como mensionas en una mac?

      Responder

      Introduce tus datos o haz clic en un icono para iniciar sesión:

      Logo de WordPress.com

      Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

      Imagen de Twitter

      Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

      Foto de Facebook

      Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

      Google+ photo

      Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

      Conectando a %s