Creo que un enfoque no es necesariamente ‘mejor’ que el otro, todo depende de su proyecto / situación / presupuesto / conocimiento de los lenguajes de programación, etc. Y no olvide, también hay una tercera opción: ¡un enfoque híbrido!
En Graph, acabamos de escribir este blog sobre cómo abordar el desarrollo móvil y detalla cuándo usar cada enfoque, sopesando los pros y los contras del desarrollo nativo vs multiplataforma (con un segmento sobre el uso de un híbrido enfoque). Hay una tabla dentro del artículo que desglosa las principales diferencias entre nativas y multiplataforma que serían útiles.
Pero aquí hay un breve resumen de cuándo cada enfoque funciona bien:
- ¿Puedes ganar dinero dando ideas para crear aplicaciones interesantes para teléfonos móviles (como Android)?
- ¿Es aconsejable usar HTML5 y Node.js para programar una aplicación de chat móvil?
- ¿Cómo hacen frente los desarrolladores a las críticas ignorantes?
- ¿Alguna aplicación popular usa Xcode u Objective C?
- ¿Cómo me convierto en desarrollador de aplicaciones?
Desarrollo de aplicaciones nativas
Crear una aplicación nativa significa que se ha desarrollado desde cero, para una plataforma o dispositivo en particular. Está escrito en un lenguaje de programación compatible con esa plataforma o dispositivo (Java para Android, Objective-C y Swift para iOS, C # para Windows Phone).
Elija desarrollo nativo si:
- Su aplicación necesita acceso completo a todo el hardware y la funcionalidad del dispositivo.
- Su aplicación procesa video, audio o imágenes
- Desea una interfaz de usuario fluida y de alta respuesta
- La interfaz de usuario debe ser familiar para los usuarios de cada plataforma.
- Su aplicación realiza cálculos complejos o funciona con grandes conjuntos de datos.
- Su aplicación incluye datos encriptados
Desarrollo de aplicaciones multiplataforma
Cuando una aplicación móvil se llama ‘multiplataforma’, se ha desarrollado para todas las plataformas al mismo tiempo, utilizando HTML, CSS y JavaScript (u otro idioma) y se puede adaptar para la mayoría de los dispositivos.
Elija el desarrollo multiplataforma si:
- Desea desarrollar un prototipo rápido para probar y validar un concepto simple
- Necesita una “aplicación temporal” temporal o una aplicación promocional que tenga una vida útil limitada. Por ejemplo, una aplicación móvil que acompaña a un evento.
- Su aplicación tiene una interfaz de usuario simple y una interacción de usuario limitada, como listar y mostrar contenido de noticias
- Su interfaz de usuario tiene desplazamiento y deslizamiento limitados y los usuarios no se verán afectados por una respuesta de pantalla lenta
- Su aplicación no interactúa con ningún hardware del dispositivo, cámara, micrófono, geolocalización, acelerómetro, etc.
- Su aplicación no procesa datos complejos ni funciona con audio o video
- Se dirige principalmente a un sistema operativo, como una aplicación corporativa, y no necesita una interfaz de usuario específica que siga las pautas de cada plataforma
Aplicaciones híbridas
Es posible aprovechar ambos enfoques dentro de la misma aplicación y aún así proporcionar una experiencia perfecta para sus usuarios.
Para mostrar contenido simple (como enumerar elementos de noticias) o formularios simples (como cuentas de usuario y pantallas de configuración) puede usar un enfoque multiplataforma y desarrollar los elementos más exigentes en la aplicación utilizando un enfoque nativo.
Esto le permite enfocar su presupuesto en las características que más le importan y tomar las mejores decisiones para sus limitaciones de tiempo y presupuesto específicas. Las aplicaciones como LinkedIn se han desarrollado de esta manera; A medida que la aplicación evoluciona, se pueden actualizar pantallas específicas de elementos multiplataforma a nativos.
__
Espero que este sea un punto de partida útil para comparar los dos enfoques, pero si desea una lectura más detallada, eche un vistazo a nuestra publicación sobre ‘Aproximación al desarrollo móvil en 2016, parte 1’.