¿Cuál es la forma más eficiente y efectiva de diseñar aplicaciones para todos los dispositivos móviles?

Permítanme definir primero los términos tal como los veo, no necesariamente definiciones de diccionario …

Eficiencia : esfuerzo mínimo. Se puede lograr mediante la familiaridad con la plataforma, el lenguaje y las bibliotecas. También se puede lograr mediante la aplicación del principio DRY a su código, por lo que los tiempos de respuesta durante el mantenimiento son rápidos. El uso reflexivo de la modularidad fluye de eso.

Efectividad : cumpliendo el propósito previsto. Esto generalmente se hace a través de un buen diseño de aplicaciones y entendiendo las necesidades de sus usuarios.

Ahora, a tu pregunta. Creo que su punto de partida no está claramente establecido. Me gustaría preguntar primero (incluso a usted mismo) las siguientes preguntas:

  1. ¿Por qué quieres crear una aplicación (para ganar dinero, aprender, conseguir un trabajo más tarde)?
  2. ¿Cuál es el presupuesto para su aplicación y tiene el dinero disponible si es necesario?
  3. ¿Su aplicación necesita tener una interfaz nativa o puede salirse con una más simple basada en HTML?
  4. ¿Necesita estar conectado a la función (por ejemplo: ¿confía en API externas, fuentes de datos, etc.?)

Para aplicaciones más simples, que no requieren apariencia nativa, HTML podría ser la mejor solución. Si puede tolerar la conectividad mientras lo usa, un sitio web alojado habilitado para dispositivos móviles funcionaría mejor a bajo precio, bajo mantenimiento y fácil administración.

Si el problema es el dinero, y HTML no funcionará, necesitará aprender 3 plataformas para el desarrollo (ahora que Microsoft intenta nuevamente hacer que la presencia móvil sea más sustancial). Java (sabor de Google) para Android, Objective C para Apple , y C # para teléfonos con Windows, tal como Al Klein había sugerido, sería su mínimo. Recomiendo primero elegir el mercado y probar primero la popularidad de su aplicación con Android o Apple, antes de migrar a otras plataformas. Deje C # para el final si lo necesita.

Utilice una plataforma de desarrollo de pago como Appmakr (https://www.appmakr.com/) para automatizar sus esfuerzos de desarrollo e implementación. Esto le costará, pero vale la pena cuando crea una aplicación paga que comenzará a recaudar dinero. En un solo disparo tienes acceso para duplicar el mercado.

Puntos finales

  • Considere obtener versiones de prueba y beta anteriores con los usuarios primero, luego migre a otra plataforma.
  • Compartimente su aplicación de tal manera que partes de ella se puedan generar automáticamente (sí, invierta en construir un generador).
  • Cree API que se pueda reutilizar en todas las plataformas móviles para aplicaciones basadas en datos, pero vaya más allá para habilitar diseños de UI, preferencias y configuraciones y activación de componentes de aplicaciones.

El enfoque más fácil es usar Cordova, posiblemente con otro marco como Ionic, Telerik o Meteor. Este es el enfoque híbrido estándar (aunque muy difamado), que utiliza JavaScript y HTML.

Contrariamente a la creencia popular, el desarrollo híbrido puede producir aplicaciones que están perfectamente bien, casi indistinguibles de las aplicaciones nativas.

Solo necesita asegurarse de utilizar las mejores prácticas con el desarrollo web móvil. Sin embargo, probablemente podría escribir un libro completo sobre esas prácticas, por lo que podría considerar otra opción. Hay tres formas sólidas de hacer aplicaciones nativas multiplataforma:

  • Xamarin
  • Reaccionar nativo
  • NativeScript

Las tres producen aplicaciones nativas reales, con varias ventajas al usar cada una.

Existen aplicaciones y plataformas que le permitirán diseñar una aplicación y darle una versión para cada entorno. Es la forma más eficiente en lo que respecta al desarrollo. Probablemente produce las peores aplicaciones, por lo que es la forma menos eficiente de crear buenas aplicaciones.

El trabajo y el “bien” son una compensación: si desarrolla una aplicación, por ejemplo, Java para Android, luego la transfiere a Objective C para iOS, luego la transfiere a C # para Windows, tiene la mejor aplicación que puede escribir y funciona en las 3 plataformas. También es el más difícil de mantener, porque cualquier cambio en uno tiene que hacerse a los otros 2, y dado que los idiomas y las plataformas son todos diferentes, un error en uno puede no ocurrir en los demás, o puede ocurrir de manera diferente en los demás. .

El uso de una “aplicación-escritor-aplicación” básicamente le brinda una plataforma en la cual colocar controles y funciones. Le ofrece un solo proyecto para trabajar, pero el menor control del producto terminado.

Por lo tanto, debe decidir si desea producir basura fácilmente, o trabajar duro y producir calidad.