2011-08-11 14 views
9

Existen varias formas de desarrollar aplicaciones de iOS. Me gusta programar en Objective-C para hacer mis aplicaciones de iOS.Objective-C vs PhoneGap

Pero se puede hacer la mayor parte de las cosas utilizando jQTouch, jQMobile, etc. PhoneGap

Pregunta:

¿Cuándo es conveniente o adecuado para utilizar la plataforma nativa?

+1

Esto parece como una discusión más adecuado para http://programmers.stackexchange.com (mi estrecha votación es simplemente para la migración) – Joe

Respuesta

20
  1. PhoneGap es esencialmente un envoltorio, por lo que siempre estará a la zaga de las últimas características, además de posiblemente tener errores en algunos casos de borde.
  2. No todas las características de la plataforma van a estar disponibles en PhoneGap, por lo que deberá saber qué no es compatible antes de decidirse a usarlo.
  3. La mayoría de las características de aceleración de hardware nunca estarán completamente disponibles, por lo que si desea crear un juego avanzado con gráficos de alta gama, no funcionará bien.
  4. El mantenimiento requerido para hacer módulos personalizados que no están disponibles de fábrica realmente puede tomar más tiempo que el desarrollo nativo.
  5. ¿Realmente necesita ejecutar en más de 2 SO móviles? Escribir para iOS y Android le dará una cobertura de mercado bastante grande, por lo que es mejor que se vuelva nativo.

PhoneGap está diseñado para aplicaciones web más simples, aplicaciones controladas por datos y aplicaciones sociales que requieren conectividad para funcionar. Puede terminar reescribiendo la aplicación en su idioma nativo si sus aplicaciones se vuelven populares y necesita soportar más características, pero si puede lanzar una idea rápidamente en múltiples dispositivos, entonces tiene una ventaja competitiva en el mercado.

0

Probé Phonegap, y lo primero que me molestó fue que no podía controlar el teclado como solía hacerlo en obj-c. El teclado es exactamente el mismo que obtienes al navegar por un sitio web, tiene un panel adicional en la parte superior del teclado con los botones "siguiente/anterior". Por lo tanto, ahora estoy probando Titanium Appcelerator en su lugar, donde puede crear GUI nativas usando Javascript en su lugar.

3

Desde mi experiencia, todas las aplicaciones de JavaScript han sido más lentas que las aplicaciones escritas en la plataforma nativa. No por el teléfono o JavaScript, sino por la representación de los elementos DOM.

0

Creo que si está dentro de sus habilidades para aprender o usar Objective-C, casi siempre es mejor hacerlo. El uso del SDK nativo le brinda acceso a todo en el dispositivo de la manera más compatible posible. Usar capas de abstracción solo daña la funcionalidad, la personalización y la depuración.

Dicho esto, parece que hay algunos marcos poderosos y bien escritos para compilar HTML, CSS y JS en aplicaciones nativas. Eso puede ser apropiado si no tienes un cronograma realmente apretado o si necesitas sacar un prototipo rápido, y eres un ninja de JavaScript, pero un codificador de Objective-C novato.

4

Si necesita desarrollar una aplicación para múltiples plataformas móviles, rápidamente, con un mínimo esfuerzo (es decir, implementar una vez), use PhoneGap o similar. Estos marcos proporcionan un tipo de entorno de "denominador común más bajo", por lo que pierde acceso, a menudo, a las capacidades de la plataforma nativa.

Por otro lado, si está desarrollando una aplicación solo para iOS, entonces por supuesto, desarrollela en Objective-C como una aplicación nativa.¡Entonces tiene a su disposición el SDK completo y las capacidades de la plataforma! Esta es, por supuesto, la recomendación de Apple como una mejor práctica para desarrollar aplicaciones de iOS.

En mi propia experiencia, tuve una conversación con mi CTO antes de unirme a mi compañía sobre si debemos desarrollar aplicaciones nativas para nuestra plataforma o usar PhoneGap. Acordamos que el desarrollo de aplicaciones nativas era el camino a seguir porque podíamos aprovechar las capacidades específicas de cada plataforma. Más allá de eso, una aplicación nativa proporcionaría una mejor experiencia de usuario en la plataforma, ya que se comportaría más como otras aplicaciones nativas con las que el usuario podría estar familiarizado. Piensa en la última idea. Piensa en todas tus aplicaciones que disfrutas. Como desarrollador, probablemente pueda saber, y rápidamente, cuáles son nativos y cuáles no, simplemente utilizándolos. ¿Cuál crees que proporciona una mejor experiencia de usuario? Algo sobre lo que pensar. :-)

Al final, depende de usted. Dijiste que te gusta la programación de Objective-C. Por lo tanto, ¡adelante y conviértase en nativo! Por otro lado, si tienes aspiraciones multiplataforma, y ​​estás familiarizado con PhoneGap (u otros) o si quieres aprender sobre ellos, ¡adelante! :-)

1

El gran almacenamiento de datos para compatibilidad móvil cruzada será un problema con el teléfono. Si necesita que la aplicación almacene al menos 10 mb de datos (archivos multimedia, documentos, etc.), estará limitado por 2-5 mb o local Almacenamiento o manifiesto de caché. Ver mi pregunta relacionada aquí:

html5 to store greater than 50 mb worth of data?

+1

Esto es falso. Tengo cientos de megabytes en uso para mi aplicación iOS Phonegap. –

+0

Eso es realmente genial. ¿Puedes escribir sobre él o explicar cómo lo hiciste? Me ayudaría mucho – John

+0

Luke, probablemente esté confundiendo el almacenamiento de datos de lo que puede enviar en su aplicación con los datos que puede almacenar una aplicación híbrida/web. El límite es efectivamente de 2.5Mb como máximo para los datos descargados o creados por la aplicación. – ader