Cosas que puedes hacer con un ordenador portátil y no con un smartphone

Cosas que puedes hacer con un ordenador portátil y no con un smartphone

El Androide Libre

Hacer aplicaciones para Android: ¿Qué es un entorno de desarrollo y cuál es el mejor?

Si quieres hacer aplicaciones para Android es posible que te plantees si utilizar Android Studio o cualquier otro entorno. ¿Cuál es el mejor?

18 mayo, 2020 19:52

Si quieres hacer aplicaciones Android, ya sea por hobby, curiosidad o simple interés en enfocar tu carrera profesional hacia el desarrollo de aplicaciones, conocer lo que es un entorno de desarrollo es vital. No existe una única aplicación y lenguaje de programación común, sino un gran volumen de estos.

Un entorno de desarrollo es un software que provee todas las herramientas necesarias para crear una aplicación. Generalmente incluyen soporte para uno o varios lenguajes de programación y permiten convertir nuestro código en la aplicación (por medio de un compilación), depurar errores o realizar pruebas.

Son muchos los pasos a seguir si quieres crear aplicaciones, hablamos un poco de ello de forma generalizada en este artículo. Digamos que ya tienes una idea de un proyecto que quieres comenzar, o quieres aprender a hacer aplicaciones en uno de ellos. ¿Cuáles existen? ¿Cuál es el mejor?

Rendimiento, lenguajes de programación, posibilidades de empleo

Lo primero que debes plantearte cual es el objetivo por el que quieres hacer aplicaciones móviles. ¿Es un hobby? ¿Formación? ¿Curiosidad? ¿Quieres trabajar de desarrollador de aplicaciones? Según tus criterios, verás que ciertos entornos de desarrollo son más atractivos para comenzar, mientras que otros son más interesantes. ¿Cómo tomo la decisión correcta?

En general, el factor de rendimiento de la aplicación sólo debería importarte si ya eres desarrollador y tu objetivo es crear la mejor aplicación posible. En esta situación, debes usar Android Studio. Ya puedes dejar de leer.

¿Cuál es mi principal propósito? Algunas recomendaciones

  • Quiero trabajar de desarrollador: Si este es tu caso, aquí el factor decisión va a ser optar a los entornos con mayores ofertas de empleo. En general, mientras más amplio sea tu abanico de conocimientos, más posibilidades laborales tendrás. No obstante, la experiencia cuesta tiempo, así que es mejor invertirlo en el que más posibilidades nos vaya a reportar.
  • Soy joven y quiero aprender: Si tienes tiempo y ganas de aprender, creo que la decisión más adecuada es enfocarte en tecnologías con mayor proyección.
    • El lado positivo es que al ser tú y dicha tecnología jóvenes, tienes la gran oportunidad de convertirte en experto de un área con menos competencia desde casi un inicio de tu carrera profesional.
    • El lado negativo, que al ser una tecnología en evolución habrá menos documentación, tutoriales y comunidad dispuesta a ayudarte en tu camino.
  • Ya sé programar, pero quiero reinventarme: Aquí es muy difícil, ya que requiere de la circunstancia personal y profesional. No obstante, existen algunos factores a tomar en cuenta:
    • Quiero ser más competitivo: Lo ideal es comprender las tecnologías que controlas en tu día a día y apostar por alguna nueva que tenga relación.
    • Quiero mejorar mi imagen personal: Apuesta por una tecnología novedosa y que sea lo más visual y fresca posible. En esta situación es importante no transmitir la idea de que estás utilizando un entorno moderno (que por lo general, tienen menos oportunidades de trabajo), sino más el dejar claro que eres una persona que se atreve con cualquier desafío, por nuevo que sea.

El lenguaje de programación, un gran factor de decisión

¿Tienes experiencia programando en algún lenguaje? Si bien es cierto que cuando sabes programar la elección de un lenguaje no debería ser un factor de decisión, lo cierto es que, aunque no sea muy complicado, aprender un nuevo lenguaje lleva un tiempo (mayor o menor en función de tu experiencia y habilidades), un tiempo que igual te resulta más práctico para invertir en un entorno de desarrollo con un lenguaje que ya domines.

Este consejo es muy práctico para desarrolladores poco experimentados, porque cuando comienzas a practicar con un entorno y lenguaje desconocidos a veces es difícil saber si el problema que estás teniendo está en tu código o en cómo utilizas el entorno. Si de base ya entiendes uno de los dos, la resolución de problemas va a ser mucho menos tediosa.

Android Studio y el kit de desarrollo oficial de Android

Se trata de la opción oficial de Google y la más directa. Todas las herramientas de desarrollo avanzan de forma conjunta a las evoluciones de Android, teniendo las mejores opciones en cuanto a acceso a funciones del sistema operativo, rendimiento y compatibilidad.

Si planeas construir una carrera profesional relacionada con el desarrollo de aplicaciones móviles, deberías conocer y haber hecho alguna aplicación con Android Studio, incluso si tu objetivo principal es especializarte en otro entorno de desarrollo.

Uno de los aspectos clave del kit de desarrollo oficial de Android es que desde su inicio estaba preparado para Java, que durante años ha sido el lenguaje de programación más popular (y hoy en día sigue estando en un top 5 según StackOverFlow), una gran ventaja debido a la gran cantidad de recursos y comunidades que te ayudarán a aprende.

No obstante, la mejor opción a futuro si vas a programar en Android Studio es Kotlin, uno de los lenguajes de programación más prometedores, y mucho más fácil y amigable de aprender y dominar.

Desde Android Studio podrás hacer aplicaciones para móvil, para Android TV y Wear OS, así como portátiles con Chrome OS. Como contrapartida, no podrás hacer aplicaciones para sistemas iOS como el iPhone o el iPad. Si tu objetivo es crear aplicaciones que funcionen igualmente en Android y iOS con el mismo código, es mejor usar otros entornos de desarrollo.

  • Lenguajes de programación: Java y Kotlin. También válido C y C++, aunque menos recomendable.
  • Para quien:
    • Si quieres especializarte en el desarrollo de aplicaciones Android, esta es la opción más directa, con el mejor rendimiento y acceso a las últimas novedades del sistema antes que nadie.
    • El desarrollo de aplicaciones nativo de Android tiene gran demanda en el mercado, por lo que nunca está de más.
    • Eres programador de Java y quieres reinventarte: Aunque la mejor opción a futuro es aprender Kotlin, Java sigue siendo un lenguaje de primer nivel en la plataforma.

React Native y JavaScript: una apuesta segura

React Native es un entorno de desarrollo creado por Facebook con el objetivo de crear un entorno en el que crear aplicaciones válidas tanto para Android como para iOS. Sobre la práctica esta compatibilidad no es tan idónea, ya que en muchas ocasiones el proyecto se termina ramificando en tres subproyectos: Android, iOS y código en común entre ambas aplicaciones.

A pesar de no ser perfecto, conocer  React Native es muy conveniente para encontrar trabajo. React tiene mucha demanda en el mercado y dominándolo, dominaremos el lenguaje de programación JavaScript, el lenguaje más popular a día de hoy, usado en, no solo React, sino muchos otros proyectos.

Como apreciación personal, no recomiento React para proyectos personales a menos que tu propósito principal sea conocer React.

  • Lenguaje de programación: JavaScript.
  • Para quien:
    • Si buscas trabajo es una de las apuestas más segura. No solo sirve para crear aplicaciones para Android y iOS de forma conjunta, sino que el dominio de JavaScript te permitirá adentrarte en tecnologías con muchísima demanda en el mercado como Node.js.
    • Si ya dominas JavaScript la transición debería ser sencilla.

Apache Cordova: ideal si eres programador web

Si ya tienes veteranía haciendo páginas web o te interesa aprender una tecnología con la que puedas realizar aplicaciones y páginas web de forma conjunta, Apache Cordova es la solución más asequible. Se trata de un entorno de desarrollo libre y de código abierto que nos permite utilizar el mismo código para Android, iOS y Windows.

A pesar de utilizar tecnologías web, las aplicaciones hechas con Cordova son capaces de tener un funcionamiento offline, además de poder acceder a componentes nativos del sistema, un añadido que siempre está bien considerar.

  • Lenguajes de programación: HTML, CSS y JavaScript.
  • Para quien: Programadores web que quieran crear aplicaciones.

Xamarin

Xamarin es uno de los grandes entornos de programación multiplataforma, el cual pertenece a Microsoft. Se trata de un entorno desde el cual podremos crear aplicaciones con gran rendimiento para Android, iOS (uncluído tvOS y WatchOS), macOS y Windows. Utiliza el lenguaje de programación C#, un lenguaje muy utilizado en aplicaciones de Windows y en videojuegos creados por el motor de videojuegos Unity 3D, siendo una gran opción para este tipo de profesionales.

Si aún no tienes claro si quieres programar aplicaciones o videojuegos, al usar Xamarin y Unity3D el mismo lenguaje de programación.

  • Lenguaje de programación: C#.
  • Para quien:
    • Programadores que dominen .NET y quieran construir aplicaciones móviles.
    • Desarrolladores de videojuegos con experiencia en Unity 3D.

Flutter y Dart de Google: la apuesta de futuro

Por último, el que a día de hoy es mi entorno de desarrollo preferido (y el que utilizo en mis proyectos personales). Google no tiene únicamente el kit oficial de Android, sino también Flutter, un kit de desarrollo multiplataforma desde el cual es posible crear aplicaciones para Android, iOS y aplicaciones web.

De todos los entornos que hemos visto, Flutter es el que menos versatilidad te va a ofrecer a nivel profesional. El lenguaje de programación utilizado es Dart, un lenguaje que fue presentado por Google a finales de 2011, lo que hace que sea el lenguaje más joven de todos los que hemos revisado.

Dart es un lenguaje muy fácil de aprender, por lo que el tiempo invertido para comprender como funciona Flutter es muy poco, pudiendo crear un primer prototipo de una aplicación en muy pocas semanas. Tienes que tener en cuenta, eso si, que las posibilidades laborables que ofrece Flutter son mucho menores que el resto de entornos.

No obstante, Flutter es una apuesta por el futuro. El pasado mes de marzo Google detalló uno de los aspectos clave de Fuchsia OS, el sistema operativo en el que Google lleva años trabajando, y es que las aplicaciones de este sistema serán creadas en Flutter, y no en Java como Android.

  • Lenguaje de programación: Dart.
  • Para quien:
    • Estudiantes que quieran aprender una tecnología nueva.
    • Personas que tengan interés en conocer uno de los entornos con mayor proyección.
    • Profesionales que quieran mejorar su marca personal añadiendo una tecnología nueva en su currículum.

¿Cuál debería aprender según mis objetivos?

  • Siempre es una gran opción: SDK oficial de Android.
  • Quiero trabajar de desarrollador: React native
  • Soy joven y quiero aprender:
    • SDK oficial de Android utilizando Kotlin.
    • Dart y Flutter.
  • Ya sé programar, pero quiero reinventarme:
    • Soy programador web: Apache Cordova, React Native.
    • Soy programador .NET o Unity3D: Xamarin.
    • Quiero ser más competitivo / mejorar mi imagen personal:
      • Si dominas JavaScript, explora tecnologías como Node.js o Express.js.
      • Si no dominas JavaScript, domínalo.
      • Flutter y Dart.
      • Aprende tecnologías como Realidad aumentada o Machine Learning.