Appcelerator Titanium vs PhoneGap: ¿cuál produce mejores aplicaciones nativas?

Los conceptos son bastante diferentes.

PhoneGap no está hecho para desarrollar aplicaciones nativas. PhoneGap le ofrece una mejor opción para compartir aplicaciones con su usuario. Es la forma de transformar su aplicación para teléfonos móviles (con un Contenedor web, como mencionó Braden) y servirla en la Apple App Store y Android Market, obligando al usuario a hacer un marcador o un acceso directo en su pantalla de inicio. PhoneGap le permite usar algunas de las funciones de los teléfonos a través de API para mejorar su aplicación.

Titanium es la opción para crear aplicaciones nativas sin habilidades en el lenguaje de programación del teléfono móvil. Por ejemplo, Titanium toma su código Javascript, lo analiza y lo procesa previamente y luego lo precompila en un conjunto de símbolos que se resuelven en función de los usos de las aplicaciones de las API de Titanium. Por lo tanto, su Javascript se compila uno a uno en los símbolos representativos del código nativo. La interfaz de usuario se construye utilizando los recursos nativos del teléfono.

Conclusión
Titanium produce mejores aplicaciones nativas porque (del mapeo) son nativas . Las aplicaciones PhoneGap son solo aplicaciones web.

Solo quiero citar mi propio blog aquí, aquí hay algo en mi mente sobre estas dos herramientas:
http://www.suzker.cn/programming

La lista:
Después de un par de días buscando un marco / tecnologías apropiados, que involucre:

  • Phonegap (ahora es una distribución de ” Cordova ” en Apache Incubator , lea esto para desambiguación)
  • Sencha Touch 2
  • JQuery Mobile
  • Titanio ” (ahora es parte de Appcelerator )

, para el desarrollo de nuestra aplicación.
Una introducción abreviada a estas cosas son:

  • Phonegap nos permitió interactuar con funciones nativas a través de su API de Javascript y nos permite usar páginas web como nuestra interfaz de usuario.
  • Sencha Touch 2 nos permite construir una interfaz de usuario súper suave y altamente personalizable de forma programática en Javascript. Ahora, en la versión 2.x, también proporcionan una serie de herramientas para minimizar programas y generar aplicaciones de Android / iOS.
  • JQuery Mobile es una biblioteca Javascript de interfaz de usuario optimizada para el tacto y no es más que eso.
  • Titanium también es un SDK que le permite crear su aplicación con la interfaz de usuario nativa del sistema en Javascript usando su propia sintaxis y reglas.

Como podemos ver, lo que está tratando de lograr aquí es la capacidad de “desarrollar una vez desplegar muchos”. Parece que es un deseo supremo para cada desarrollador de aplicaciones escribir aplicaciones que se puedan implementar en múltiples dispositivos (teléfono / tableta / PC / MAC) de diferentes plataformas (iOS / Android / Blackberry / Windows Phone / Symbian, etc.). Es un poco como tratar de proporcionar aplicaciones multiplataforma en OSx / Linux / Windows. Y en aquellos días tenemos Adobe Air, JAVA y QT para crear aplicaciones extraídas de la capa de aplicación normal especificada por el sistema. Pero para los dispositivos móviles, una solución adecuada es utilizar tecnologías basadas en la web. Es porque casi todos los dispositivos móviles modernos (y por ‘moderno’ me refiero a los dispositivos de los últimos 2 ~ 3 años) son capaces de una rica navegación web, sin mencionar el soporte de HTML5 que nos permite dibujar directamente en la página, usar almacenamiento local estándar, reproduce archivos multimedia sin usar el flash feo.
En este momento, la mayoría de los front-end web están construidos por CSS + HTML + JS. Estas tecnologías a menudo se consideran tecnologías con puntos de entrada bajos en comparación con los lenguajes de programación tradicionales como C / C ++ / Java (aunque después de aprender y trabajar con Javascript por un tiempo descubrí que en realidad es muy potente y destacado). Esta característica del desarrollo y diseño web es en realidad otro impulso para llevar la web a construir aplicaciones porque cada vez más personas pueden desarrollar aplicaciones ahora sin aprender Objective-C o Java.
Pero antes de arremangarnos y estar listos para poner nuestras manos en toda la web, pensemos más a fondo. A diferencia de las PC / Mac, los dispositivos móviles de hoy en día ofrecen características mucho más ricas que incluyen Gestos / Ubicaciones geográficas / Cámara / Acelerómetros / Huellas digitales, etc. Uno puede construir aplicaciones muy interesantes a partir de diferentes combinaciones de todas estas características nativas de dispositivos móviles. Eso significa que necesitamos encontrar una manera de acceder a estas características nativas. Tenga en cuenta que los técnicos web de los que hablamos, HTML + CSS + JS, solo son interfaces de usuario interactivas prometedoras, pero no la capacidad de acceder a funciones nativas. Eso significa que la interfaz de usuario no puede no comunicarse con las características nativas del dispositivo en las rutinas de desarrollo web habituales. Necesitamos algo más, un puente tal vez.
Ahora podemos continuar hablando sobre las tecnologías enumeradas al principio de esta publicación. Como ya sabemos, una aplicación basada en la web requiere una interfaz de usuario optimizada para el tacto y la capacidad de acceder a las funciones nativas. De la lista de breves introducciones, ya sabemos que los servidores de JQuery Mobile para crear interfaces de usuario en nuestra aplicación. De hecho, hay muchas otras opciones además de JQuery Mobile, por ejemplo, Sencha Touch , JQtouch , Jo , Zepto , ya que todas proporcionan una forma de producir UI hermosas o reproducir UI similares a las UI nativas optimizadas para dispositivos móviles . Uno puede ingresar a sus sitios web e ir a la página de demos y fregadero de la cocina para elegir el que más le guste.
Y luego, ya sabes, el resto de los elementos de la lista servirá como una solución que une las interfaces de usuario con las características nativas. El más famoso es Phonegap, que expone las características nativas a través de una API de Javascript. Uno puede integrar los códigos que pueden acceder a las funciones nativas utilizando la API proporcionada en sus códigos HTML + CSS + JS regulares. Y Appcelerator’s Titanium es otro marco famoso que proporciona SDK para construir aplicaciones por Javascript con soporte de HTML5 + CSS.
Ha habido muchas preguntas sobre las diferencias, los pros y los contras entre Titanium y Phonegap, sobre cuál es mejor. Pero sin sorpresa, estos dos marcos son en realidad muy diferentes entre sí. La versión corta es que Titanium es como una versión mejorada de Phonegap, que proporciona no solo una vista web y un SDK JS que expone la característica nativa, sino también la capacidad de ‘ compilar ‘ sus códigos Javascript en .class (Java) o .o nativos (Objetivo C) y, por lo tanto, proporciona una apariencia nativa para su aplicación [3] [4]. Al decir ‘ compilar ‘, en mi opinión, en realidad compiló la parte de Javascripts que tiene acceso a las características nativas y los componentes nativos de la interfaz de usuario. Otras partes de la aplicación, por ejemplo, las lógicas permanecerán como Javascript y un intérprete de Javascript seguirá funcionando para la interpretación. Por lo tanto, es más como un marco híbrido que intenta proporcionar aplicaciones con sentimientos nativos (tenga en cuenta que el rendimiento de Phonegap es realmente pobre). Con Appcelerator y Titanium, la compañía también proporciona una manera fácil de acceder a sus servicios en la nube, lo que hace que sea aún más fácil crear una aplicación que realmente se mueva en la nube.
Entonces, ¿qué está haciendo Phonegap aquí ya que Titanium ya está libre para usar? Si bien proporciona tantas funciones potentes, la curva de aprendizaje del desarrollo con Titanium es realmente muy empinada. Es muy probable que noobs como yo en Javascript pasen meses para aprender Titanium. Es más como una herramienta para personas que ya están familiarizadas con la programación Javascript. La segunda preocupación cuando se usa Titanium es que la capacidad multiplataforma en realidad no está funcionando tan bien como lo ha hecho Phonegap porque Titanium solo es compatible con Android / iOS / Blackberry. Lo último es que necesitaría usar su propia llamada IDE Titanium Studio para desarrollar y compilar, mientras que uno solo necesita tener un editor de texto Eclipse / XCode + SDK + para desarrollar aplicaciones Phonegap.
Sencha Touch 2 sirve principalmente como un marco de interfaz de usuario y le permite desarrollar interfaces de usuario muy suaves y táctiles de forma programática al igual que su predecesor Ext JS . Sencha es diferente de otras bibliotecas Javascript UI en la forma en que funciona Sencha y es más que solo una UI Js Lib. En primer lugar, Sencha Touch es un marco MVC, proporciona una forma fácil de programar para construir la interfaz de usuario. Además, Sencha Touch proporciona acceso limitado a funciones nativas como Geolocalizaciones, etc. En este momento, Sencha Touch también proporciona herramientas para optimizar sus códigos y empaquetar sus aplicaciones en aplicaciones estándar de Android o iOS. Aunque la curva de aprendizaje de Sencha Touch 2 también es empinada, no habrá ningún problema si ha trabajado con Ext Js antes. Incluso novatos como yo pueden crear una aplicación en minutos.
Aquí llegamos a la parte de resumen aquí, después de algunas introducciones detalladas para cada marco en nuestra lista. Personalmente prefiero Sencha Touch 2 + Phonegap. Una razón es que Sencha Touch nos proporcionó un marco de programación muy maduro y configuraciones de interfaz de usuario súper suaves y altamente personalizables. Y la parte más importante es que todos los contenidos están basados ​​en la web, en realidad se presentan como páginas web. Y Phonegap compensa las limitaciones para acceder a las funciones nativas, proporcionando una vista web simple en su aplicación para mostrar la interfaz de usuario que creó con Sencha Touch. En cuanto a mí, no es razonable usar Appcelerator en nuestro proyecto, ya que ya conocemos los lenguajes de programación esenciales para crear aplicaciones de Android / iOS y no necesitamos temporalmente esos dulces servicios en la nube.
Refs:
[1] h ttp: //en.wikipedia.org/wiki/Multiple_phone_web_based_application_framework
[2] http://developer.appcelerator.co
[3] http://developer.appcelerator.co
[4] http://stackoverflow.com/questio

PhoneGap : PhoneGap es HTML / CSS / JS. Cualquier cosa que pueda hacer con ellos en una página web normal, puede hacerlo en la vista web de un navegador móvil. PhoneGap funciona como una especie de envoltorio, al aprovechar las vistas web nativas de los dispositivos móviles. PhoneGap le permite crear una aplicación, tan compleja y moderna como desee, al tiempo que ofrece la posibilidad de degradarla con gracia para dispositivos de gama baja, todo en la misma base de código. PhoneGap le permite usar algunas de las funciones de los teléfonos a través de API para mejorar su aplicación

Titanium : Appcelerator Titanium, por otro lado, toma su código Javascript, lo analiza y lo procesa previamente y luego lo precompila en un conjunto de símbolos que se resuelven en función de los usos de las aplicaciones de las API de Titanium. Titanium realmente compila su aplicación y usa el SDK de iPhone para construir una aplicación nativa. Por ejemplo, si crea una animación en Titanium, esa no es una animación CSS3, es una animación central que se ejecuta en la GPU y el código generado / compilado forma parte de las API de Core Animation. Similar es para Android. Para Android, genera bytecode JVM a partir de su JS y produce código Java nativo.

fuente: Appcelerator Titanium vs PhoneGap: Desarrollo móvil multiplataforma