Soy desarrollador web y busco cambiar al desarrollo de aplicaciones móviles. ¿Qué tecnología es la mejor opción para cambiar: Android o iOS o Phonegap?

Gracias por el A2A.

También fui / soy desarrollador web y he estado ganando mucho dinero con el desarrollo móvil. Esta respuesta se basa en mi experiencia hasta ahora.

Si desea acceder al móvil muy rápidamente, aprenda algunos marcos basados ​​en la web como PhoneGap o Ionic o cualquier otra plataforma basada en Cordova. Estos son razonablemente buenos y funcionaron bien para muchos. Pero terminará teniendo un gran tamaño binario (APK / IPA) y también su aplicación puede ser más lenta que las aplicaciones nativas.

Tenía las mismas preguntas cuando comencé y había hecho algunos puntos de referencia antes de decidir comenzar con el desarrollo móvil nativo. Estos puntos de referencia son para la misma aplicación, uno creado con Ionic y el otro de forma nativa (solo Android). La razón por la que hice solo Android es que iOS ejecuta código en nativo, por lo que incluso esta capa web solo lo ralentizará en cierta medida, pero Android ya se ejecuta en una capa VM, por lo que la capa web lo ralentiza enormemente, así que quería saber cómo mal puede aparecer en Android. Esto es importante especialmente. en mi país, India, donde la mayoría de las personas tienden a usar dispositivos más antiguos, así que quería capturar la mayor participación de mercado aquí. De todos modos, aquí están los números …

Rendimiento de la CPU
Ejecuté 2 casos de prueba diferentes de una animación de rotación simple que se ejecuta infinitamente. La versión nativa era mucho más eficiente en carga y velocidad de CPU. La carga es inferior al 1% del total de ciclos de la CPU.

Nativo:

Híbrido:

(El color de Idle es diferente en los 2 gráficos circulares, así que tenga en cuenta eso y no confunda el sector de color gris).

La versión híbrida ocupaba casi el 35% de la CPU total. Sin embargo, esto seguirá siendo relativamente igual, sin importar cuántas animaciones y características de la interfaz de usuario se agreguen, ya que esta carga es para que la biblioteca de abstracción web se ejecute, mientras que en nativas a medida que las animaciones aumentan, la carga también aumentaría significativamente.

Almacenamiento

El tamaño final de APK de la versión nativa era de solo 1.1MB. En mi experiencia, incluso una aplicación más grande que tiene animaciones de 50 a 100 y varias bibliotecas populares vendrían solo cerca de ~ 7MB. Mientras que la carga útil de la versión híbrida llegó a 22,4 MB. Esto puede llegar hasta 40 MB a 50 MB a medida que se construye una aplicación más grande.

Uso del montón

La versión híbrida usaba un tamaño de almacenamiento dinámico de 1.776 MB en comparación con la versión nativa que usaba 1.276 MB. Por lo tanto, la versión híbrida tenía un uso de memoria 130% mayor en comparación con la versión nativa.

Marco de tiempo de desarrollo

El tiempo para crear una versión híbrida fue significativamente menor que el nativo. La versión híbrida apuntaría a múltiples plataformas y ahorraría hasta un 60% del tiempo de creación de la aplicación.

Tengo más gráficos de apoyo e informes de referencia para esto, pero no los he agregado, ya que son técnicos y no tan significativos. En pocas palabras, el resultado demostró que Native> Hybrid en términos de ciertos aspectos. Para mí, los factores más destacados son los plazos de desarrollo, el rendimiento y el público objetivo. Hice estos puntos de referencia hace casi un año o más y tuve que buscar en mis archivos de correo electrónico para encontrarlos. Esto se debe a que yo también había tomado una decisión entre Hybrid Vs. Nativo. Mi conclusión es que el nativo es mucho mejor si soy lo suficientemente paciente como para pasar más tiempo para aprenderlo, así que lo soy y lo hice. Me llevó más de un año cubrir los aspectos básicos, así como algunas bibliotecas populares en Android y actualmente estoy haciendo algunos cursos MOOC en línea sobre el desarrollo de Swift para iOS, que diría que es increíble en comparación con el desarrollo en Android.

En cuanto a la pregunta iOS Vs Android, te recomiendo que vayas por iOS. Tiene un mercado más grande, menos molesto para desarrollar (ver la respuesta de Saifur Rahman Mohsin a ¿Por qué es tan difícil el diseño de Android?) Y una plataforma mucho más segura. Tiene algunos inconvenientes, como que necesita una computadora portátil basada en Mac si desea desarrollarla (a menos que se conforme con una imagen Hackintosh o VM), y que no le permite distribuir aplicaciones de forma privada a los usuarios que usan Archivos IPA, mayor tiempo de aprobación en el mercado, tarifas de mercado más altas que se repiten anualmente en lugar de acceso de por vida como en Google Play Store para Android (y solo cuesta $ 25 para Google Play Store). En general, iOS hace una elección más rica. Y he notado que en los EE. UU. El mercado para desarrolladores de Android parece ser más que iOS, pero es opuesto aquí en mi país; esto probablemente se deba a la falta de desarrolladores o usuarios de iOS en comparación con Android, pero los tiempos están cambiando lentamente. Al menos durante los próximos 3 a 5 años, sabría que iOS tendrá un valor más alto aquí en términos de escala salarial que Android, por lo que es algo brillante que esperar si adoptas el desarrollo de iOS.

Espero que mi respuesta te dé una idea clara. Algunos de los puntos son mis propias opiniones, por lo que le recomendaría que se tome su tiempo para decidir qué está dispuesto a comprometer para tomar la mejor decisión para usted. ¡Buena suerte!

Si usted es un desarrollador web y tiene un buen conocimiento de los marcos HTML5, CSS3 y javascript como angualrjs, Jquery, etc., entonces las tecnologías de aplicaciones móviles híbridas como Cordova / PhoneGap, Senchtouch, jquerymobile, etc., son las mejores opciones. A continuación se enumeran algunos enlaces útiles.

¿Qué son las aplicaciones híbridas?

Desarrollo móvil multiplataforma: 10 mejores herramientas

Xamarin vs. Titanio vs. PhoneGap vs. Córdoba: una comparación