Es cierto que hay muchas opciones diferentes disponibles. Pero encontrar una opción que te guste no debería ser tan difícil. Cada opción tiene características diferentes y, según sus preferencias, puede limitar fácilmente su selección.
Hay opciones en muchos lenguajes de programación diferentes. Algunos son de código abierto, algunos están cerrados. Algunos son gratuitos, algunos son propietarios. Algunos compilan en código nativo, otros viven en una vista web dentro de una aplicación nativa (o algo por el estilo). Algunos están respaldados por grandes empresas tecnológicas, otros son el único producto de una pequeña organización. Muchos usan Javascript, muchos no. Vamos a ver:
No JavaScript
- ¿Qué tipos de aplicaciones desarrolla un proveedor de servicios de desarrollo de aplicaciones de Android?
- ¿Qué país debo elegir al contratar a un desarrollador remoto y por qué?
- ¿Cuál es la mejor plataforma de desarrollo de aplicaciones móviles para desarrollar aplicaciones móviles sin codificación?
- ¿Cuáles son las principales empresas de desarrollo de aplicaciones móviles en Bangalore?
- Cómo seleccionar un buen desarrollador de aplicaciones móviles
- Xamarin: Xamarin es un marco C # en su mayoría patentado para crear aplicaciones en iOS, Android y Windows. Recientemente fue comprado por Microsoft (el creador de C # y propietario de Windows) que mejoró enormemente su accesibilidad en estas áreas. Permite a los desarrolladores usar los mismos modelos y controladores para todas sus aplicaciones mientras escriben una vista por separado. También tiene mucho soporte empresarial.
- QT: QT es un marco de C ++ de código abierto que ha existido durante un tiempo originalmente para crear aplicaciones portátiles entre Mac y varios Linux y Unixes, luego incorporó Windows e incluso llegó al mundo móvil. QT muere no siempre se ve envuelto en este debate, ya que la mayoría de los proyectos conocidos creados con él son software de escritorio (especialmente aplicaciones de Linux).
- Rubymotion: este es un producto patentado propiedad de una compañía que se enfoca completamente en Rubymotion. La última vez que lo revisé, ni siquiera podía comenzar a desarrollar y probar sin pagar, por lo que no sé más sobre esto más allá de eso. No parece ser tan popular como algunos otros, pero si eres un tipo de Rails, valdría la pena echarle un buen vistazo.
- Kivy: lo extraño de Kivy, el marco de Python multiplataforma es que, a diferencia de la mayoría de las otras opciones aquí, no solo es de código abierto, sino que también es totalmente compatible con la comunidad (en la verdadera forma de Python). Kivy está hecho por desarrolladores de python para desarrolladores de python, y la mayoría de los contribuyentes parecen usarlo también para trabajo real. Entonces, si eres un tipo hardcore de python, definitivamente es una buena herramienta. (Descargo de responsabilidad: no he usado Kivy, pero está en la lista de tareas pendientes)
JavaScript
Aquí vamos, el paisaje JS multiplataforma es un campo de batalla propio. Debido a que Node.js hace que JavaScript sea el candidato obvio para el stack completo en un solo idioma en la web, también hace que los desarrolladores parezcan querer escribir aplicaciones móviles en él también. Por otro lado, muchos desarrolladores (especialmente las personas C ++, Java y C #) odian, odian, odian. Esta podría ser otra respuesta en sí misma. Pero si está en el tren de JavaScript (y no está solo) o si es un desarrollador web que está buscando ingresar al mercado móvil, puede consultar uno de estos:
- React Native: esta pequeña joya ha recibido mucha atención desde que salió de Facebook. React Native es una forma de código abierto de escribir aplicaciones JavaScript en React Framework y llevarlas a dispositivos móviles nativos. Incluso aunque React esté por encima de v15 ahora, React Native se ha mantenido muy por debajo de v1.0, ¡pero de alguna manera eso no impide que aparezca en el uso de producción en todas partes! Si ha utilizado reaccionar, esta es probablemente la mejor opción, ya que el traspaso de conocimiento es bastante significativo, aunque no al 100%.
- Telerik NativeScript: si no eres una persona React, tal vez eres una persona Angular. Y si eres una persona angular quizás te gustará NativeScript. NativeScript es similar a React, excepto que las aplicaciones se escriben usando Angular en su lugar y la compañía que lo respalda no es Facebook (donde React Native se usa para el desarrollo interno) sino Telerik (donde NativeScript es un producto). La compañía enfatizó que la fortaleza de NativeScript, en comparación con otros marcos JavaScript, es que se compila en código nativo y se ejecuta con casi ninguna diferencia notable en comparación con los marcos basados en WebView.
- Cordova / PhoneGap: estas son dos cosas diferentes pero muy similares. Cordova es un marco de código abierto de Apache Software Foundation que toma cualquier aplicación web y la empaqueta en un WebView para usarla como una aplicación móvil en Android, iOS, Windows, Blackberry, etc. También permite a los desarrolladores escribir complementos para aprovechar las ventajas nativas funcionalidad y acceso a hardware. Hay muchos complementos de código abierto para admitirlo, pero por lo demás es muy básico. Phonegap es casi lo mismo, ya que es esencialmente una bifurcación de Cordova que se integra con las tecnologías de Adobe (y también es propiedad de Adobe). Estas soluciones, aunque populares, no son las mejores por sí mismas porque en su mayor parte son de bajo nivel y requieren mucho trabajo para que sean perfectas. No recomendaría usar Vanilla Cordova a menos que necesite desesperadamente apoyar Blackberry por alguna razón. Sin embargo, esta opinión está en parte influenciada por el siguiente elemento.
- Ionic – ¿Qué es Ionic? Bueno, básicamente es un montón de clases CSS de código abierto y directivas angulares que hacen que trabajar con Cordova sea agradable (léase: realmente muy bueno). Ionic está construido sobre Cordova pero tiene sus propias herramientas muy extensas. Está respaldado por una empresa llamada Drifty que lo abre completamente y también proporciona un PAAS patentado, así como otros servicios a clientes empresariales, para que pueda obtener lo mejor de ambos mundos. No solo eso, sino que si eres un desarrollador web, especialmente un desarrollador Angular, ¡la transferencia de conocimiento es básicamente del 100%! Aunque podría no tener el mismo rendimiento que NativeScript, en términos de productividad del programador, elimina las otras opciones del ring. Sin mencionar la utilidad de la plataforma iónica de Drifty si solo está familiarizado con el front-end pero aún desea obtener una aplicación de trabajo sólida para los clientes.
Para mí, las únicas opciones viables en términos de herramientas, soporte y comunidad parecen ser Xamarin, NativeScript, React Native e Ionic. Los otros son demasiado pequeños, demasiado caros desde el principio, o no tan robustos a nivel empresarial. Noqueé a Xamarin por el lenguaje y la asociación con Microsoft (aunque todavía cantaría sus alabanzas a los chicos de .NET que hacen esta pregunta), y React Native I Kicked porque prefiero Angular. Las dos opciones que exploré con más detalle fueron NativeScript e Ionic. Y cuando se trata de eso, tanto JavaScript como Angular, es básicamente una elección entre rendimiento y productividad del programador. Para mí, lo posterior es más importante en un marco de aplicación híbrido, especialmente cuando para aplicaciones intensivas en rendimiento probablemente valdrá la pena codificar solo dos aplicaciones nativas. Entonces fui con Ionic. Ionic no es la opción correcta para todos, pero diría que si no tiene un conjunto de habilidades específicas que lo preste a algunas de las otras opciones de nicho, es una de las mejores. Esto es aún más cierto si usted es un desarrollador web, o incluso una persona de front-end, debido a todos los productos asociados disponibles para ayudarlo.