Uso de Phonegap para el desarrollo de aplicaciones nativas

Recientemente me encontré con Phonegap . Que alguien lo haya probado. Es una herramienta increíble que afirma que los desarrolladores pueden utilizar el marco basado en HTML 5 como Sencha touch y Jquery al mismo tiempo tener acceso a características nativas en el teléfono. También el código es portátil de Android a Iphone con algún esfuerzo. Antes de que me sumerja en él quiero saber cuál es la experiencia del foro con Phonegap. ¿Cuáles son los puntos de dolor y es realmente escalable para el desarrollo de aplicaciones a nivel empresarial.

He construido un par de aplicaciones con PhoneGap, y por lo que ofrece, es genial. Hay un par de notas rápidas que me gustaría señalar, que podría ayudarle.

Disable device-based features you're not using El acelerómetro, las funciones de geolocalización están activadas por defecto. Si no las utilizas, las desactivaré, ya que tu aplicación se cargará más rápido (inicializar) y correrá mejor.

onDeviceReady – Este es el método que se llama una vez que phonegap ha cargado y está listo. $ (Documento) .ready o lo que sea que esté acostumbrado, realmente no se aplica aquí – a menos que sólo esté haciendo la interfaz / código HTML codificado. Si estás interactuando con funciones de iPhone, como GeoLocation, necesitarás hacer todo después de que onDeviceReady haya sido llamado.

Pick a UI/library Hay un montón de opciones para la interfaz / librerías, jquery-mobile, sencha touch, jqtouch, etc. Cada una de ellas ofrece un enfoque único y conjunto de características. Hacer algunas investigaciones y utilizar uno, pero evitar la combinación. Puede leer algunas otras opciones, herramientas aquí: http://www.phonegap.com/tool (enlace actualizado)

Also, more on just mobile development in general, with PhoneGap Si está buscando para crear aplicaciones, que se distribuyen a través del mercado de Android y iPhone App Store, leído a través de sus exhaustivas listas de directrices sobre cómo desarrollar su aplicación. Por ejemplo, en el enlace de herramientas arriba, hay una "herramienta / plugin" llamada Easy APNS , aunque esto es útil para Android y técnicamente factible en el iPhone, viola el acuerdo de desarrollo, ya que indica que debe usar la notificación de Apple Red, etc. Esto es sólo un ejemplo, pero leer sobre eso te ahorrará muchos dolores de cabeza, si ese es tu objetivo final.

En general, es ideal para aplicaciones ligeras, especialmente si vienes de un fondo de desarrollo web. LocalStorage, GeoLocation, etc. funciona muy bien. Espero que esto ayude un poco … y siente hacer preguntas.

Edición Adicional:

Realmente creo que se reduce a lo que quieres hacer, y lo que sabes hacer. Matt señaló que el desarrollo de aplicaciones nativas, para iOS es mejor, etc .. Sí, si usted tiene el tiempo y el conocimiento para aprender que – por supuesto nativos será mejor. Pero PhoneGap está hecho para los desarrolladores web que pueden tomar sus habilidades existentes y construir aplicaciones. Además, PhoneGap le permite crear aplicaciones rápidamente, para iOS, Android, Symbian, Palm, Blackberry. Con ajustes menores en su codebase para cada uno.

Aquí están todas las mejores guías de rendimiento que he leído para PhoneGap … hay mucho que tener cuidado de asegurar que tiene un rendimiento sólido y estable … pero se puede recoger todo en una sola noche de lectura.

Aquí están las mejores pepitas:

Consejos de rendimiento de PhoneGap / Mobile Web

Habilitación de nuevas funciones

Arquitectura

Arquitectando su aplicación en Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2

Antes de expresar mi opinión de Phonegap, necesito emitir un pequeño descargo de responsabilidad diciendo que no soy, de ninguna manera, un desarrollador web. Para mí, escribir JavaScript y CSS es como tirar de los dientes. Dicho esto, no me gusta Phonegap.

Hay algunos aspectos muy atractivos del marco, principalmente la apelación "Write-Once-Run-Anywere" y el "Yo-No-Tienes que Aprender-Objetivo-C". apelación. El marco puede incluso darle acceso a algunas de las características del hardware como el acelerómetro. Todos estos son válidos, hasta cierto punto.

Dicho esto, ninguna de las grandes aplicaciones de iOS se construyen utilizando cualquier tipo de marco de plataforma cruzada. Hay tantos sutiles y elegantes interacciones de interfaz de usuario que se manejan para usted por los controles nativos UIKit que muchos usuarios y desarrolladores dan por sentado hasta que están desaparecidos, como la gran cantidad de curvas de animación de vista increíblemente detallada y desplazamiento rebotes que no están allí En la interfaz de usuario basada en la vista web. Usted podría trabajar para reproducirlos perfectamente, pero para esa inversión de tiempo, ¿por qué no sólo ir nativo?

Un segundo punto a destacar es que la comunidad de soporte para las aplicaciones de iOS de Phonegap-built es drásticamente menor que las aplicaciones desarrolladas nativamente. Si usted es uno para confiar en la comunidad durante los proyectos, esto también debería darle una pausa.

Al final se reduce a la calidad de la experiencia que desea ofrecer. El límite superior es menor con Phonegap. Si está listo para aceptar una experiencia de usuario menos que excelente a cambio de tiempos de desarrollo reducidos y mayor portabilidad, es un marco muy viable.

Como subtexto para cualquiera que esté interesado, Marco Arment y Dan Benjamin recientemente discutieron este tema. Puedes escucharlo aquí .

El procedimiento de instalación implica una serie de paquetes (Java, Apache Ant, Ruby, iOS SDK, Android SDK y PhoneGap en sí mismo), que todos tienen que ser correctamente instalado y configurado. Esto puede ser un esfuerzo importante. Para ser justos, tienen algo llamado PhoneGap Build en beta que debería hacer esto mucho más fácil.

Lo usamos con NS Basic / App Studio para producir aplicaciones que califican para tiendas de aplicaciones.

Si su no están haciendo un juego ni widget, simplemente simple aspecto de la aplicación, entonces phonegap es su elección.

Pero debe tener cuidado con su JS, evitar hacer algo en JS por ejemplo, si desea hacer cualquier animación evitar establecer un temporizador con pequeños intervalos (por ejemplo, 100 ms), evitar jquery y animaciones similares. Por ejemplo, en lugar de animar el fundido al establecer un temporizador de período corto que disminuye la opacidad en cada punto paso a paso (esto es cómo se desvanece el trabajo de jquery), debería usar las transiciones css3 desde la opacidad 1 a la opacidad 0.

Mi consejo es ir con algo como zeptojs.com, después de todo phonegap no funcionará ie6 🙂

Revise algunos tutoriales sobre cómo hacer que su JS sea más ligera

http://bcksp.blogspot.com/

Si no necesita ninguna de las características de hardware o rendimiento más allá de lo que HTML5 y Phonegap proporcionan, una aplicación web encapsulada (además de un acceso limitado a otras funciones) es una gran solución.

Muchas empresas implementan aplicaciones web de gran escala. Phonegap (o simplemente un simple control de visualización web con contenido incrustado) le permitirá ejecutar estas aplicaciones web sin conexión (excepto, por supuesto, para cualquier información en línea requerida).

Un "dolor" no mencionado al desplegar entre varios dispositivos diferentes: Cuantos más dispositivos, mayor es la curva de aprendizaje. Para implementar en dispositivos iOS con PhoneGap, necesitará aprender los conceptos básicos de Xcode en una Mac. Para implementar en Android, necesitará instalar y aprender Eclipse, el SDK de Android, etc. Las otras plataformas exigen que se utilicen sus propios SDK. Aprender algunos Xcode rudimentario, Javascript y Java me ayuda a entender los errores y la sintaxis general.

"Crear una vez, desplegar en todas partes" deja fuera un montón de pasos!

  • ¿Cómo gestiona la salud de la batería de sus dispositivos de desarrollo cuando siempre está conectado?
  • Android - Almacenamiento de datos?
  • Comenzar con la programación móvil. ¿Qué es una buena plataforma?
  • Cómo hacer que el usuario ingrese solo desde un dispositivo a la vez
  • Notificaciones Push utilizando el servidor Rails
  • ¿Cómo puedo navegar entre páginas dentro de una aplicación PhoneGap?
  • Sugerencias sobre el desarrollo de juegos multijugador en iOS y Android?
  • Cómo compartir código entre Android e iOS
  • ¿Cuál es el mejor marco de desarrollo de aplicaciones web móvil
  • Código seguro para codificar una contraseña en una aplicación para dispositivos móviles
  • ¿Es posible, en principio, que un dispositivo Android interactúe con un iPhone a través de Bluetooth / GameKit?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.