Pregunta

Soy un desarrollador web y quiero pasar mi web de productos para iPhone.Uno de los productos es como Google Maps:ver mapa en la pantalla del teléfono, puede arrastrar o cambiar el tamaño del mapa y ver la información que queremos añadir al mapa.

Sé que hay algunas tecnologías que permite el uso de HTML, CSS y Javascript para desarrollar aplicaciones nativas para el iPhone.He identificado algunos:

Hay otros, los productos similares?¿Cuáles son las diferencias entre ellos?Que debo elegir?

¿Fue útil?

Solución

Me he registrado con stackoverflow sólo con el propósito de comentar la respuesta mayoritariamente votado en la parte superior. Lo malo es stackoverflow no permite nuevos miembros para enviar comentarios. Así que tengo que hacer este comentario más mirada como una respuesta.

La respuesta de Rory Blyth contiene algunos puntos válidos sobre los marcos móviles de dos javascript. Sin embargo, sus puntos clave son incorrectos. La verdad es que el titanio y PhoneGap son más similares que diferentes. Ambos exponer a las funciones del teléfono móvil a través de un conjunto de APIs de JavaScript, y la lógica de la aplicación (HTML, CSS, Javascript) se ejecuta dentro de un control WebView nativa.

  1. PhoneGap no es sólo un envoltorio natural de una aplicación web. A través de la API de JavaScript PhoneGap, la "aplicación web" tiene acceso a las funciones del teléfono móvil como la geolocalización, la cámara Acelerómetro, Contactos, base de datos, sistema de archivos, etc. Básicamente, cualquier función que el SDK teléfono móvil proporciona puede ser "puente" a la World JavaScript. Por otro lado, una aplicación web normal que se ejecuta en el navegador web móvil no tiene acceso a la mayoría de estas funciones (siendo la razón principal de seguridad). Por lo tanto, una aplicación PhoneGap es más de una aplicación móvil de una aplicación web. Por supuesto que puede utilizar PhoneGap para envolver una aplicación web que no utiliza ningún API PhoneGap en absoluto, pero eso no es lo que fue creado para PhoneGap.

  2. El titanio no se compila el código HTML, CSS o Javascript código en "bits nativos". Se empaquetan como recursos para el paquete ejecutable, al igual que un archivo de imagen incrustada. Cuando se ejecuta la aplicación, estos recursos se cargan en un control UIWebView y se ejecutan allí (como Javascript, no los bits nativos, por supuesto). No hay tal cosa como un compilador de JavaScript a código nativo-(o-a Objective-C). Esto se hace de la misma manera en PhoneGap también. Desde el punto de vista arquitectónico, estos dos marcos son muy similares.

Ahora bien, ¿son diferentes? Si. En primer lugar, titanio parece ser más ricos de la característica de PhoneGap puenteando más funciones de telefonía móvil para javascript. Más notablemente, PhoneGap no expone a muchos (si lo hay) componentes de la interfaz nativa de JavaScript. Titanio, por el contrario, tiene un amplio API de interfaz de usuario que pueden ser llamados en javascript para crear y controlar todo tipo de controles de interfaz de usuario nativa. Utilizaing estas API de interfaz de usuario, una aplicación de titanio puede parecer más "nativo" que una aplicación PhoneGap. En segundo lugar, PhoneGap es compatible con más plataformas de telefonía móvil que el titanio hace. API PhoneGap son más genéricas y se pueden utilizar en diferentes plataformas como iPhone, Android, Blackberry, Symbian, etc. titanio se dirige principalmente iPhone y Android, al menos por ahora. Algunos de sus APIs son específicos de la plataforma (como las API de interfaz de usuario iPhone). El uso de estas API reducirá la capacidad multiplataforma de su aplicación.

Por lo tanto, si su preocupación por su aplicación es para que sea más "nativo" mirar, titanio es una mejor opción. Si usted quiere ser capaz de "puerto" su aplicación a otra plataforma más fácilmente, PhoneGap será mejor.

Actualización 8/13/2010: href="https://appcelerator.tenderapp.com/discussions/titanium-mobile-discussion/553-what-are-the-differences-between-titanium-and-phonegap" Enlace a una la respuesta de los empleados de titanio a la pregunta de Mickey.

Actualización 12/04/2010: Me decidí a escribir este post un examen anual para mantener su información al día. Hay muchas cosas que tienen los cambios en un año que hizo parte de la información en el mensaje inicial obsoleta.

El mayor cambio vino de titanio. A principios de este año, Appcelerator Titanium 1.0 liberado, que partió drásticamente de sus versiones anteriores desde el punto de vista arquitectónico. En 1.0, el control UIWebView ya no está en uso. En su lugar, se llama a las API de titanio para cualquiera de las funciones de interfaz de usuario. Este cambio significa un par de cosas:

  1. Su interfaz de usuario de la aplicación se vuelve completamente nativa. Ya no hay interfaz de usuario web en su aplicación ya que el nativo de Titanium API de tomar el control de todas sus necesidades de interfaz de usuario. El titanio se merece mucho crédito por el pionero en la frontera "entre plataformas nativo de interfaz de usuario". Se da a los programadores que prefieren la apariencia de la interfaz de usuario nativa, pero no les gusta el idioma oficial de programación alternativa.

  2. Usted no será capaz de utilizar HTML o CSS en su aplicación, ya que la vista web se ha ido. (Nota: todavía puede crear vista web en Titanio Sin embargo, hay algunas características de titanio que puede tomar ventaja de la vista web..) titanio Q & a: ¿Qué le pasó a HTML y CSS

  3. Usted no será capaz de utilizar las bibliotecas populares JS como jQuery que asumen la existencia de un objeto DOM. Continúa utilizando JavaScript como su lenguaje de codificación. Pero eso es más o menos la única tecnología web se puede utilizar si se llega a 1.0 Titanio como programador web.

vídeo Titanio:. ¿Qué hay de nuevo en titanio 1.0

Ahora bien, ¿de titanio 1,0 compilar el JavaScript en "bits nativos"? Nº Appcelerator finalmente llegó limpia en este tema con este blog desarrollador: Guías Proyecto de titanio:. JS Medio Ambiente nos programadores son las personas más genuinas que los del departamento de marketing, ¿verdad? :-)

Pasar a PhoneGap. No hay muchas cosas nuevas que decir acerca de PhoneGap. Mi percepción es que el desarrollo PhoneGap no era muy activo hasta que IBM subió a bordo a finales de este año. Algunas personas incluso argumentaron que IBM está contribuyendo más código para PhoneGap que es Nitobi. Siendo cierto o no, es bueno saber que PhoneGap está siendo desarrollado activamente.

PhoneGap sigue basarse en tecnologías web, a saber HTML, CSS y JavaScript. No se ve como PhoneGap tiene ningún plan para tender un puente sobre las características de interfaz de usuario nativa de JavaScript como el titanio está haciendo. Mientras interfaz de usuario web aún por detrás de la interfaz de usuario nativa en el rendimiento y aspecto nativo, tal brecha se está cerrando rápidamente. Hay dos tendencias en tecnologías web que aseguran característica brillante para la interfaz de usuario web móvil en términos de rendimiento:

    motor
  1. JavaScript pasar de un intérprete para una máquina virtual. JavaScript JIT es compilado a código nativo para la ejecución más rápida. motor de Safari JS: SquirrelFish extrema

  2. página Web prestación pasar de depender de la CPU a usar la aceleración de GPU. tareas intensivas de gráficos, tales como transición de página y la animación 3D se vuelven mucho más suave con la ayuda de la aceleración de hardware. GPU composición acelerada en Chrome

Estas mejoras que se originan a partir de los navegadores de escritorio están siendo entregados a los navegadores móviles rápidamente. De hecho, desde iOS 3.2 y Android 2.0, el control de vista web móvil se ha convertido en mucho más rendimiento y HTML5 amigable. El futuro de la web móvil es tan prometedor que ha atraído a un niño grande a la ciudad: jQuery ha anunciado recientemente su marco web móvil Con proporcionando jQuery Mobile aparatos de interfaz de usuario, y PhoneGap proporcionar las funciones del teléfono, que dos combinados crean una plataforma web móvil perfecto en mi opinión.

También debería mencionar Sencha Touch como otro marco dispositivo de interfaz de usuario web móvil. Sencha Touch versión 1.0 fue lanzado recientemente bajo un modelo de licencia dual que incluye la GPLv3. Sencha Touch funciona bien con PhoneGap tal como lo hace jQuery Mobile.

Si usted es un GWT programador (como yo), es posible que desee echa un vistazo a GWT móvil , un proyecto de código abierto para la creación de aplicaciones web para móviles con GWT. incluye un contenedor de PhoneGap GWT que permite el uso de PhoneGap en GWT.

Otros consejos

A partir de lo que he reunido, aquí hay algunas diferencias entre los dos:

  • PhoneGap básicamente genera envoltorios nativas por lo que todavía están aplicaciones web . Escupe un proyecto WhateverYourPlatformIs, lo construyes, y desplegar. Si estamos hablando sobre el iPhone (que es donde paso mi tiempo), no parece muy diferente de la creación de un lanzador de aplicaciones web (un acceso directo que tiene su propio icono de trampolín, por lo que puede lanzarlo al igual que ( como ) una aplicación nativa). La "aplicación" en sí es todavía html / js / etc., Y se ejecuta dentro de un control de explorador alojado. PhoneGap lo que ofrece más allá de eso es un puente entre JavaScript y las API nativas de los dispositivos. Por lo tanto, se escribe JavaScript contra la API PhoneGap y PhoneGap luego hace la llamada nativa correspondiente apropiada. En ese sentido, es diferente de la implementación de una aplicación web simple y llano.

  • fuente de titanio se compila a los bits nativos. Es decir, su html / js / etc. No son simplemente unido a un proyecto y luego alojados dentro de un control navegador web - que están convertidos en aplicaciones nativas. Eso significa, por ejemplo, que la interfaz de su aplicación se compone de nativa componentes de interfaz de usuario. Hay maneras de conseguir look-and-feel nativo sin tener una aplicación nativa, pero ... bueno ... lo que es una pesadilla que por lo general resulta.

Los dos son similares en que se escribe toda su materia utilizando tecnologías web típicos (html / js / css / bla, bla, bla), y que se obtiene acceso a la funcionalidad nativa a través de las API JavaScript personalizado.

Pero, de nuevo, aplicaciones PhoneGap (PhonGapps No sé ... es que un nombre estúpido Es más fácil decir? -? Yo sé que mucho) inicia su vida como aplicaciones web y poner fin a sus vidas como aplicaciones web. En el iPhone, su html / js / etc. Sólo se ejecuta dentro de un control UIWebView, y el API de JavaScript PhoneGap sus js llamadas se enrutan a las API nativas.

aplicaciones de titanio se convierten en aplicaciones nativas - sólo están desarrollados con tecnología web dev

.

¿Qué significa esto realmente significa

  1. Una aplicación Titanium buscar como una aplicación "real", ya que, en última instancia, es una aplicación "real".

  2. Una aplicación PhoneGap se verá como una aplicación web está alojada en un control de explorador, ya que, en última instancia, es una aplicación web está alojado en un control de navegador.

¿Cuál es el adecuado para usted?

  • Si desea escribir aplicaciones nativas utilizando habilidades dev web, titanio es su mejor apuesta.

  • Si usted quiere escribir una aplicación usando habilidades dev web que usted podría realista desplegarse en múltiples plataformas (iPhone, Android, Blackberry, y cualquier otra cosa que decidan incluir), y si usted quiere tener acceso a un subconjunto de características de la plataforma nativa (GPS, acelerómetro, etc.) a través de una API de JavaScript unificado, PhoneGap es probablemente lo que quiere.

Se puede preguntar: ¿Por qué querría escribir una PhoneGapp (He decidido utilizar el nombre) en lugar de una aplicación web que está alojado en la web? No puedo seguir teniendo acceso a algún dispositivo nativo características de esa manera, sino que también tienen la conveniencia de implantación en la web verdad en lugar de obligar al usuario a descargar mi aplicación "nativos" e instalarlo?

La respuesta es: Porque se puede enviar su PhoneGapp a la App Store y cobrar por ello. Usted también consigue que el icono de lanzador, lo que hace que sea más difícil para que el usuario se olvide de su aplicación (soy mucho más probable que se olvide de un marcador de un icono de aplicación).

Por supuesto que podría cobrar por el acceso a su aplicación web alojada en la web, pero ¿cuántas personas realmente van a pasar por el proceso de hacer eso? Con la App Store, tomo una aplicación, toque el botón "Comprar", introduzca una contraseña, y he terminado. Se instala. Segundos más tarde, lo estoy usando. Si tuviera que utilizar otra persona es la interfaz de transacciones web móvil de una sola vez, lo que probablemente significa tener que tocar a cabo mi nombre, dirección, número de teléfono, número de CC, y otras cosas que no quiero a rendirse, que es casi seguro que wouldn' t ir a través con él. También yoconfiar en Apple -. Estoy seguro de que Steve Jobs no va a registrar la información de mi y luego cobrar un montón de suscripciones a revistas traviesa a mi CC para los retrocesos

De todos modos, excepto por el hecho de que la tecnología web dev está involucrado, PhoneGap y titanio son muy diferentes - hasta el punto de ser sólo superficialmente comparables

.

No me gusta aplicaciones web, dicho sea de paso, y si usted lee iTunes App Store opiniones, los usuarios son bastante buenas en la detección de ellos. No voy a dar nombres, pero tengo un par de "aplicaciones" en mi teléfono que se ven y funcionan como si fueran basura, y es porque son aplicaciones web que están alojados en el interior casos UIWebView. Si quería utilizar una aplicación web, abriría Safari y, ya sabes, vaya a uno. Compré un iPhone porque quiero cosas que son iPhone-y. No tengo ningún problema usando, por ejemplo, una elegante aplicación web de Google dentro de Safari, pero me siento engañado si Google simplemente se coló un marcador en Springboard mediante la presentación de una aplicación web como un nativo.

Tener que ir ahora. Mi novia tiene y que pueden-te-favor-stop-usando-que-equipo-de-tres-segundos expresión de su cara.

Me estoy tomando un curso en Android/iPhone de desarrollo y pasamos de 8 semanas con Titanium (no a tiempo completo) (Versión fue Titanio 1.4.2 y el tiempo fue de alrededor de noviembre de 2010).Aquí es mi experiencia.

iPhone Android dual targetting

Aunque la API de guías afirman que la funcionalidad está disponible tanto para Android y iPhone, este no es el caso.Gran parte de las cosas simplemente no funcionan en una de las plataformas.Algunas cosas funciona de manera diferente.

Un montón de personas que en la clase haya hecho las aplicaciones del iPhone, y que no pueden hacer ellos el trabajo en Android sin mayores correcciones.He desarrollado una pequeña para niños app llamada Animap (véase el android market / Appstore en Suecia) y comenzó a desarrollar en Windows.Una vez que el Android de destino fue a trabajar me abre el proyecto en OS X.No muestra ningún construir cosas para el iPhone, sólo para Android.Usted necesita para comenzar un doble objetivo del proyecto en OS X.(Ok, he copiado los archivos correspondientes en un nuevo proyecto).El siguiente problema - las animaciones no funciona en el iPhone (que trabajan en Android).Los eventos de desplazamiento no funciona de la misma en el iPhone.(me.e en Android consigue el untouch evento cuando el usuario detiene y libera su dedo de la pantalla, esto no sucede en el iPhone).

Dado que esto no es mencionado en alguna parte que básicamente la necesidad de hacer prueba y error de programación en la primera plataforma, luego en la otra plataforma.Por ensayo y error, me refiero a que va a tomar alrededor de dos días para conseguir una sencilla Aplicación como Animap de trabajo en la otra plataforma.Usted también tendrá que tener si (android) entonces...o si(iphone)...todo el código...

Descarga y la instalación

Usted debe seguir las instrucciones al pie de la letra.No intente utilizar java de 64 bits.No va a compilar el KitchenSink 1.4.0 aplicación de demostración.(1.3 funciona OK!) Usted debe poner los archivos directamente en el disco C como los nombres de ruta de largo hará que el programa externo no recibe todos los parámetros de línea de comandos si llegan a tiempo.(Multa para los pequeños programas, a pesar de que) 1/3 de las veces, el conjunto de herramientas simplemente se detiene y usted debe presionar el 'lanzamiento' de nuevo.Entonces es probable que el trabajo...es muy poco fiable.El simulador no se encuentra en inicio y, a continuación, simplemente debes matar de adb.exe con Ctrl+Alt+Supr y vuelva a intentarlo.

Conexión de red

En un wifi-red que a veces pierde la conexión en directo de Titanio y se bloquea en usted (la compilación y despliegue de la interfaz) Si usted no tiene una conexión a internet no va a empezar ya que no puede iniciar sesión en sus servidores.

API

CSS, HTML y jQuery es una brisa en comparación con este.El titanio se asemeja a cualquier otra edad GUI API, y es necesario establecer algunas propiedades para cada botón/campo/etc.Conseguir un campo mal es simplemente fácil, recordando todas las propiedades que debe establecerse?¿Se escribe con mayúsculas en el lugar correcto?(como esto no es atrapado por el compilador, pero será visto como un error en tiempo de ejecución si tienes la suerte de prueba de que parte)

En Titanio cosas simplemente romper cuando se agrega otro punto de vista en la parte superior de un control o haga clic en algún lugar de la interfaz gráfica de usuario.

Documentación

Varias API páginas llevar el Android símbolo, pero sólo va a devolver un valor nulo cuando se intenta crear el control.No sólo están disponibles en la plataforma Android, a pesar de los símbolos.A veces, Android es de mencionar para no admitir un método en particular, pero, a continuación, toda la API es la que falta.

KitchenSink

La aplicación de demostración.Hice mención de que no se compila, si usted lo pone en su proyecto de Eclipse carpeta porque el camino es demasiado largo?Se debe poner en la unidad C: en la carpeta raíz.Actualmente uso una symbolik enlace (mklink /J ...)

Indocumentados métodos

Usted debe probablemente el uso de cosas como la etiqueta.setText ("Hola Mundo') para cambiar una etiqueta confiable, pero esto no está documentado en todos.

La depuración

Titanium.API.info('las Impresiones son la única forma de depurar');

Edición

La Api no están disponibles en cualquier buen formato, de manera que no se puede obtener ordinario código de finalización con la ayuda etc.en Eclipse.Aptana por favor, ayudar!

Hardware

Parece que el compilador/herramientas no son los hilos, por lo que un equipo rápido con un rápido disco duro es una necesidad, como usted debe hacer un montón de prueba y error.Hice mención de los pobres de la documentación?Usted debe probar todo lo que hay, ya que no puede confiar!

Algunas de las cosas positivas

  • De Código Abierto
  • A partir de proyectos anteriores he prometido a mí mismo que jamás el uso de código cerrado de nuevo como usted no puede simplemente arreglar las cosas solo por tirar horas y de la mano de obra en él.Importante cuando usted se retrasa en el proyecto y la necesidad de entregar un duro plazo.Este es de código abierto y he sido capaz de ver por qué la herramienta de la cadena se rompe y corregir realmente es así.

  • Bugdatabase

  • También es abierto.Usted puede ver fácilmente que no esta sola y hacer una solución en lugar de otro de 4 horas de ensayo y error.

  • La comunidad

  • Parece ser activos en sus foros.

Bugs

  • Titanio 1.4 no es seguro para subprocesos.Esto significa que si usted hace uso de hilos (uso de la dirección url:propiedad en una llamada de createWindow) y el programa como los hilos están trabajando y enviar eventos con los datos de ida y vuelta de ejecutar en un montón de muy, muy extraño - material perdido controladores perdidos de windows, demasiados eventos, muy pocos eventos, etc.etc.Esto es todo depende de la fecha, poniendo las filas de código en un orden diferente podría fallar o curar a su aplicación.La adición de una ventana en otro file.js rompe su app.js la ejecución de...Esto también destroza interna datastructures en Titanio, ya que a veces puede actualizar interna datastructures en paralelo, la sobreescritura de un solo valor modificado con algo más.

Gran parte de los problemas que he tenido con Titanium viene de mi experiencia en tiempo real, como los sistemas de OSE que el apoyo de cientos de hilos, eventos y paso de mensajes.Este se supone que funciona en Titanio 1.4, pero simplemente no lo hace de forma fiable.

  • Javascript (que es nuevo para mí) muere en silencio sobre errores de tiempo de ejecución.Esto también significa que los pequeños y errores comunes, como la falta de ortografía de un nombre de variable o de la lectura en un apuntador null no se bloquea cuando se lo puede depurar.En lugar de las partes de su programa deje de funcionar, por ejemplo un eventhandler, porque fuera de lugar/misstyped un personaje.

  • Entonces tenemos más simples errores en Titanio, al igual que algunos parámetros no funciona en las funciones (que es bastante común en la plataforma Android, al menos).

  • Ensayo y Error de depuración de la velocidad del ciclo Al tener Titnium Desarrollador en varios equipos, me di cuenta de que el cuello de botella es el disco duro.Un disco SSD en un ordenador portátil hace que la construcción de ciclo de aproximadamente de 3 a 5 veces más rápido que en un 4200 rpm.En un escritorio, que tiene dos discos en RAID 1 (fragmentación modo) hace que la construcción de aproximadamente 25 por ciento más rápido que en una sola unidad con un poco de la CPU más rápida y también vence a la unidad SSD portátil.

Resumen

  • A partir de los comentarios en este hilo parece ser que hay una lucha por el número de plataformas de una herramienta como esta puede ofrecer la aplicación para.El número de API parece ser la clave del punto de venta.

Este brilla a través de mucho cuando usted comienza a usarlo.Si usted mira en el open bugtracker verá que el número de errores sigue aumentando más rápidamente que el número de errores corregidos.Esto suele ser un signo de que los desarrolladores de seguir añadiendo más funcionalidad, más que concentrarse en conseguir el número de errores.

Como consultor tratando de entregar más simple de aplicaciones multiplataformas para un cliente - no estoy seguro de que este es en realidad más rápido que hacer app nativa de desarrollo en dos plataformas.Esto es debido al hecho de que cuando estás a velocidad rápida con Titanium, pero entonces, de repente, miras hacia abajo y te encuentras en un agujero tan profundo que no sé cuántas horas debe ser gastado para una solución.Usted NO puede simplemente promesa de una cierta funcionalidad para un determinado plazo de tiempo/tiempo/costo.

Sobre mí:Estado usando Python para dos años con wxPython.(que GUI es inconsistente, pero nunca se rompe como este.Podría ser yo que no han entendido el modelo de subprocesamiento utilizado por Javascript y Titanio, pero yo no estoy solo, de acuerdo a sus foros abiertos, objetos GUI de repente utilizando el contexto equivocado/no actualizar..???) antes de que yo tengo experiencia en C y ASM de programación para dispositivos móviles.

[editar añadido parte con errores y no ser seguro para subprocesos] [Editar - ahora, después de haber trabajado con él durante un mes+, sobre todo en PC, pero algunos en OS X también.Agregó iPhone y Android dual targetting.Agregado de Ensayo y Error de depuración de la velocidad del ciclo.]

El SDK Corona (Ansca móvil) utiliza Lua como lenguaje de codificación. Ver lua.org para más información sobre Lua.

A pesar de que la intención de añadir una mayor integración web y elementos de interfaz de usuario-natal, nuestro enfoque tenderá a ser en las aplicaciones de uso intensivo de gráficos, tales como el desarrollo del juego, a diferencia de las tecnologías basadas en la Web. En otras palabras, no nos imaginamos la gente que escribe aplicaciones Corona enteramente en Javascript / HTML / CSS.

He estado trabajando con titanio durante más de una semana y ahora siento que tengo una buena sensación sobre su debilidad.

1) Si la esperanza de utilizar el mismo código en múltiples plataformas buena suerte! Usted verá algo así como backgroundGradient y se sorprenderá hasta que encuentre la versión androide no lo soporta. A continuación, tiene que volver a utilizar una imagen de gradiente, puede ser que también lo utilizan para las dos versiones para que el código sea más fácil ¿verdad?

2) Una gran cantidad de comportamientos extraños, en el SDK de Android titanio es necesario entender lo que es una ventana de "pesado" es sólo para obtener el botón de volver al trabajo, o incluso mejor seguimiento de eventos de orientación. Esta no es la forma en la plataforma Android es realmente, es sólo la forma en titanio trata de hacer su trabajo de la API.

3) Su tirado en la oscuridad, las cosas van a chocar y hay que empezar a comentar código y luego cuando lo encuentras, no lo utilice. Hay ciertos errores obvios, como la orientación y porcentajes en android que han sido un problema durante más de seis meses.

4) Errores .... hay un montón de errores y ellos serán reportados, se sientan alrededor durante meses, se arreglen en unos pocos días. Me sorprende que incluso están planeando lanzar un SDK móvil baya negro cuando hay tantos otros problemas con Android.

5) Iphone titanio frente a los motores de JavaScript titanio Android son completamente diferentes. En la versión de Android se puede descargar archivos javascript remoto, incluir y utilizar bibliotecas como jQuery, Mootools y así sucesivamente. Yo estaba en el cielo cuando me encontré con esto porque no tenía para mantener compilar mi aplicación Android. El proceso de instalación android apk lleva tanto tiempo! Iphone nada de eso es posible, también la versión iPhone tiene un motor mucho más rápido JavaScript.

Si se mantenga alejado de muchas de las partes de interfaz de usuario nativa, es decir en lugar de utilizar setInterval para detectar los cambios de orientación, el de mantener las imágenes de gradiente, olvidar el botón de retroceso, construir sus propias animaciones, olvidar cabecera de la ventana, barras de herramientas, y el salpicadero. Realmente se puede hacer una API que funciona tanto que no requiere de gran cantidad de reescritura. Pero al que apunta su tan lento como una aplicación web.

Así es que vale la pena? Después de todo el dolor, vale la pena cada minuto. Se puede abstraer la lógica y simplemente construir la interfaz de usuario diferente para cada lugar de si elseing todas partes. Titanio permite realizar aplicaciones de fluidos, que se sienten rápidamente. Se pierde las poderosas capacidades de diseño de cada plataforma, pero si usted piensa sencilla, las cosas pueden llevarse a cabo bajo un solo idioma.

¿Por qué no una aplicación web? En los teléfonos Android de mercado de nivel de entrada de su terriblemente lento para generar una vista web y consume una gran cantidad de memoria que podría utilizar para hacer una lógica más compleja.

Aquí hay una más reciente y en análisis en profundidad de Appcelerator y PhoneGap: http://savagelook.com/blog/portfolio/a-deeper-look-at-appcelerator-and-phonegap

Y aquí es aún más detalles sobre cómo se diferencian mediante programación: http://savagelook.com/blog/portfolio / PhoneGap-se-basado en la web-appcelerator-es-pura-javascript

MapKit nativa es compatible con titanio

Hacer reproductores HTML5 tha parecerse widgets de iPhone es una cosa, pero por lo que funcionan igualmente bien es harina de otro costal. El rendimiento de animaciones HTML5 (aunque sin formato transiciones de vista), listas de desplazamiento largos, la capacidad de respuesta a los gestos sensación pegajosa y espasmódicos. Un usuario de iPhone se dará cuenta de la diferencia.

También hay algunas diferencias en los tipos de gestos que son compatibles con diferentes dispositivos que se traduce en problemas de código y la usabilidad específicos de la plataforma también.

Me quedaré con las aplicaciones nativas por ahora supongo.

Rhomobile Rhodes ( http://rhomobile.com/products/rhodes ) es muy similar en el enfoque a PhoneGap, pero es el único marco con:

  1. un patrón Modelo Vista Controlador (como se la mayoría de los marcos web ofrecen)
  2. un objeto relacional Administrador
  3. soporte para todos los teléfonos inteligentes populares (incluyendo Windows Phone 7)
  4. un servicio de desarrollo alojado (acumulación no sólo alojado): http://rhohub.com
  5. un depurador completo y SDK-menos emulador en el IDE RhoStudio
  6. soporte para datos fuera de línea sincronizados

Para cualquier persona interesada en titanio, debo decir que no tienen una muy buena documentación de algunas clases, propiedades, métodos faltan. Pero muchos se "documentado" en su aplicación de ejemplo el KitchenSink por lo que no es tan malo.

Mi comprensión de PhoneGap es que proporcionan las API de JavaScript para la mayor parte de las API de iPhone.

Titanio parece más fácil para un fondo desarrollador web. Es un simple archivo XML para crear una aplicación TabView básica y entonces todo en el área de contenido es controlado por HTML / JS. También sé que el titanio proporciona algún tipo de acceso javascript para algunos de los marcos (en particular el acceso a la información de ubicación, la identificación del teléfono, etc).

ACTUALIZACIÓN: Titanio añadió Maps API en la versión 0.8 de su marco.

Usted debe aprender Objective C y las aplicaciones nativas del programa. No confíe en estas cosas crees que va a hacer la vida más fácil. Apple ha asegurado de la manera más fácil es el uso de sus herramientas y el lenguaje nativo. Para sus 100 líneas de Javascript que puedo hacer lo mismo en 3 líneas de código o ningún código en absoluto dependiendo del elemento. Ver algunos tutoriales - si usted entiende Javascript a continuación c objetivo no es difícil. Soluciones provisionales son miserables y manzana pueden tirar del enchufe en cualquier momento que desee.

De las soluciones que usted ha mencionado, ninguno de ellos aparecerá para darle acceso directo al marco MapKit introducido en OS 3.0.

A medida que los widgets de Google Maps HTML no son tan buenos como MapKit (ver Google Latitud para ver un ejemplo), usted es probablemente mejor fuera de desarrollar una aplicación nativa toque de cacao, o la elección de una solución se puede ampliar para agregar la integración MapKit. PhoneGap es extensible de esta manera (que es de código abierto por lo que es por defecto), y algunas de las otras soluciones podría ser así.

editar: Titanio ahora tiene soporte para MapKit

He tratado en corona. Fue bueno hasta que descubrí que no admite audio mp3 streaming. Por lo tanto, dejé allí mismo. Creo que si realmente quiero ser un desarrollador de aplicaciones iPhone que debería aprender obj c. Todo lo que quería hacer una aplicación que tiene una lista de estaciones de radio y hacer clic sobre ellos se empieza a jugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top