Si realmente quiere apuntar solo a Android, puede comenzar con Java.
O puede usar uno de los muchos entornos de desarrollo multiplataforma, y su código se ejecutará en múltiples plataformas.
Si este es un ejercicio de aprendizaje, de cualquier manera está bien. Aprender a codificar es transferible de una plataforma e idioma a otro.
- ¿Hay algún punto en el que aprenda a codificar de un curso si solo puedo usar el código fuente de otra aplicación y usarlo por mí mismo?
- Cómo hacer una aplicación React.js nativa
- ¿Cuál es la mejor agencia de desarrollo de aplicaciones de Android en Canadá?
- Cómo desarrollar mi propia aplicación móvil
- ¿Cuáles son las empresas más emergentes que desarrollan aplicaciones móviles?
Pero creo que los entornos multiplataforma se han vuelto lo suficientemente buenos como para justificar su uso para la mayoría del desarrollo de aplicaciones.
Elegir uno puede ser difícil, pero en algún nivel no importa, porque puedes cambiar a otro si decides que odias a uno. Aquí hay algunas ideas sobre las opciones:
Xamarin
- Compila el código nativo, por lo que la aplicación resultante es rápida, incluso si tiene un procesamiento algo extenso.
- La seguridad tipo está integrada y aplicada. Esto evitará muchos errores incluso antes de ejecutar la aplicación.
- Debido a los tipos, obtienes un excelente soporte de herramientas: Autocompletar siempre funciona y es exactamente preciso. Refactorizar es lo mismo.
- C # es detallado, por lo que es más lento de escribir que los lenguajes dinámicos más nuevos. Para un principiante, esto puede considerarse algo bueno, pero también puede ser intimidante o desalentador debido a la curva de aprendizaje.
- Su aplicación no puede compartir código con una aplicación web.
NativeScript
- Utiliza controles nativos para la velocidad nativa en las interacciones de la interfaz de usuario.
- Resume las diferencias entre Android e iOS para que pueda escribir o modificar la interfaz de usuario una vez. Hasta un 95% de reutilización de código como resultado.
- Utiliza JavaScript / TypeScript, que es más conciso que C # y más accesible para los nuevos desarrolladores.
- Le permite llamar a API nativas desde JavaScript, por lo que no está obligado a escribir código específico de la plataforma en Java / Swift.
- Integrado con Angular 2, que es muy rápido y tiene una gran base de usuarios.
- JavaScript no es tan rápido como C # compilado, pero eso solo importa si está haciendo un procesamiento no trivial en el código.
- La curva de aprendizaje es probablemente más fácil que C # y React Native.
Reaccionar nativo
- Utiliza controles nativos para la velocidad nativa en las interacciones de la interfaz de usuario.
- Requiere modificaciones por plataforma, por lo que aún debe definir partes de la interfaz de usuario dos veces. Código típico de reutilización de aproximadamente el 70%.
- Basado en React, que es rápido y tiene una gran comunidad.
- Basado en React que es difícil. Angular es fácil. Reaccionar es difícil.
- Requiere que escribas complementos en código nativo.
- React Native tiene menos opiniones sobre la pila de aplicaciones: React es solo la capa de vista en MV *. Esto puede ser bueno (¡muchas opciones!) Y malo (¡¿muchas opciones ?!) en términos de qué otras herramientas utiliza para crear su aplicación.
- La curva de aprendizaje puede ser la más difícil aquí si eres un desarrollador imperativo tradicional, ya que es más fácil pensar en React si estás pensando funcionalmente, por lo que debes aprender a pensar de manera diferente sobre el código.
Córdoba / Iónico / Meteor (Híbrido)
- Utiliza un WebView, por lo que puede usar cualquier cosa diseñada para la web y funcionará.
- Debido a que puede usar cualquier cosa que funcione en la web, las personas lo hacen, y con frecuencia termina con un rendimiento terrible porque los navegadores móviles no pueden manejar todos los megabytes de JavaScript que generalmente se lanzan a los navegadores de escritorio.
- Para obtener rendimiento del desarrollo híbrido, debe ser conservador sobre los marcos y bibliotecas que agrega al proyecto. Empaquetar / minimizar la biblioteca para producción mediante la concatenación de JavaScript puede mejorar el tiempo de inicio.
- Con Ionic 2 / Angular 2, o con Meteor / Blaze, obtienes un rendimiento bastante sólido de fábrica, pero aún es posible eliminar el rendimiento si extraes demasiadas bibliotecas.
- La curva de aprendizaje para crear una aplicación es, sin duda, la más fácil de las cuatro opciones que describo, así como en comparación con el desarrollo nativo. Pero sí le da la opción de destruir el rendimiento si está dispuesto a importar una biblioteca para cada pequeña cosa.