Elige el que más te guste
Si quieres desarrollar aplicaciones para Android, empieza por elegir un lenguaje. Las diferencias entre los distintos lenguajes de programación de Android pueden ser un poco complejas y matizadas. La elección de uno de ellos requiere una comprensión de las fortalezas y debilidades individuales, por lo que no quiero ser un poco corto.
Pero tampoco quiero aburrirte hasta la muerte y con eso en mente, encontrarás un breve desglose de cada opción de lenguaje aquí, seguido de información más detallada a continuación. Escoge el que te parezca interesante y salta hasta allí.
Los lenguajes que podrías considerar aprender para el desarrollo de Android incluyen:
- Java - Java es el lenguaje oficial de desarrollo de Android y es soportado por Android Studio. Sin embargo, tiene una curva de aprendizaje empinada.
- Kotlin - Kotlin fue introducido recientemente como un lenguaje Java secundario "oficial". Es similar a Java en muchos aspectos, pero es un poco más fácil de llegar a los apretones.
- C/C++ - Android Studio también es compatible con C ++ con el uso del NDK de Java. Esto permite que las aplicaciones de codificación nativa, que puede ser útil para cosas como los juegos. Sin embargo, C++ es más complicado.
- C# - C# es una alternativa un poco más amigable para los principiantes que C o C++ que ofusca más código. Es apoyado por algunas herramientas muy útiles como Unity y Xamarin que son grandes para el desarrollo de juegos y para el desarrollo de plataformas cruzadas.
- BASIC - Una opción de bonificación es aprender BASIC y probar el B4A IDE de Anywhere Software. Esta es una herramienta fácil pero poderosa, aunque definitivamente mucho más "nicho".
- Corona/LUA - Otra herramienta multiplataforma construida sobre LUA. Simplifica enormemente el proceso de construcción de aplicaciones y le permite llamar a las bibliotecas nativas.
- PhoneGap (HTML, CSS, JavaScript) - Si usted ya sabe cómo construir páginas web interactivas, entonces usted puede utilizar este conocimiento con PhoneGap para construir una aplicación multiplataforma más básica.
Java
Cuando llega el momento de desarrollar aplicaciones para Android, la primera y más popular opción es Java. Java es el lenguaje oficial de desarrollo de Android, lo que significa que es el que tiene más apoyo de Google y el que la mayoría de las aplicaciones en la Play Store se construyen utilizando.
La forma número uno de desarrollar aplicaciones para Android, es seguir adelante y descargar Android Studio. Este es un software llamado 'IDE' o 'Entorno de Desarrollo Integrado'. Vendrá empaquetado con el SDK de Android (un conjunto de herramientas para facilitar el desarrollo de Android específicamente) y básicamente esto le dará todo lo que necesita en un solo lugar para ponerse en marcha.
Los tutoriales oficiales y la documentación de Google harán referencia a este método y encontrará el mayor número de bibliotecas (código libre para mejorar sus propias aplicaciones) y tutoriales que se centran en este método.
Java en sí fue lanzado por Sun Microsystems en 1995 y se utiliza para una amplia gama de aplicaciones de programación. El código Java es ejecutado por una "máquina virtual" que se ejecuta en los dispositivos Android e interpreta el código.
Desgraciadamente, Java también es un poco complicado y no es un gran "primer lenguaje". Esto es lo que supondrá la mayor barrera para muchas personas que quieran iniciarse en el desarrollo de Android, de hecho. Android es un lenguaje de programación orientado a objetos con temas confusos como constructores, excepciones de puntero nulo, excepciones comprobadas y más. No es terriblemente legible y usarás un montón de código 'boiler plate' haciendo cosas simples. Si se añade el SDK de Java, las cosas se complican aún más: un programador novato puede tener dificultades para saber qué es Java y qué es Android. El desarrollo utilizando esta ruta también requiere una comprensión básica de conceptos como Gradle, como el Manifiesto de Android y el lenguaje de marcado XML.
Esto no quiere decir que Java sea un mal lenguaje - ni mucho menos. No sólo sería un error llamar a cualquier lenguaje 'malo', sino que también es cierto que la mayoría de los 'inconvenientes' de Java están ahí en realidad por nuestro propio bien y fomentan el código limpio. Mucha gente adora Java por esta razón y también es uno de los más versátiles y ampliamente utilizados. Según la tabla PYPL (PopularitY of Programming Languages), Java es el lenguaje de programación más demandado por los empresarios.
Para hacer la vida más sencilla está Android Studio, que ha ido a más en los últimos años. Características como el diseñador visual y las sugerencias facilitan el proceso, mientras que se añaden continuamente funciones avanzadas y potentes para dar a los desarrolladores acceso a cosas como el almacenamiento en la nube con una implementación sencilla. Merece la pena subir a bordo, aunque este rápido progreso haga que a veces sea difícil seguir el ritmo.
Entonces, ¿cuál es el veredicto? Para aquellos que quieren la experiencia "completa" de desarrollo de Android, sumergirse en Java es el mejor lugar para empezar. Para aquellos que se sienten desanimados por el código complejo, es posible trabajar en gran medida con el diseñador y seguir tutoriales para cualquier cosa más complicada. Sin embargo, si eres un principiante y estás buscando hacer un juego, o simplemente quieres empezar a aprender por aprender y te gustaría conseguir algunos proyectos gratificantes; entonces te recomiendo que empieces con algo más fácil y luego vuelvas a esto una vez que tengas un poco más de base.
Consulta la introducción de Gary a Java aquí.
Nota:
Dicho esto, también es posible utilizar Java con Unity. Hablaré de Unity en la sección de C# - pero sólo ten en cuenta que podrías optar por el lenguaje Java, un poco más complicado, cuando vayas por esta ruta y luego utilizarlo para una transición más fácil al desarrollo con Android Studio.
Kotlin
Kotlin irrumpió recientemente en la escena como el "otro" lenguaje oficial para el desarrollo de Android. Algunas especulaciones sugieren que es probable que esto eleve el perfil del lenguaje y que posiblemente se convierta en el próximo 'Siwft'.
Al igual que Java, Kotlin se ejecuta en la máquina virtual de Java. También es completamente interoperable con Java y no provoca ninguna ralentización ni aumento del tamaño de los archivos. La diferencia es que Kotlin requiere menos código 'boiler plate', lo que significa que es un sistema más racionalizado y fácil de leer. También elimina errores como las excepciones de punto nulo e incluso te exime de terminar cada línea con puntos y coma. En resumen, es genial si estás aprendiendo a desarrollar aplicaciones Android por primera vez.
Así que Kotlin es definitivamente un punto de partida más fácil para los principiantes y el hecho de que todavía se puede utilizar Android Studio es una gran ventaja. Sin embargo, todavía no es tan sencillo de aprender como, por ejemplo, C# con Unity, y el apoyo de la comunidad está en su relativa infancia. De hecho, actualmente tienes que descargar una versión beta de Android Studio para obtener el soporte out-the-box.
Aún así, Kotlin debería estar en tu radar y podría ofrecer un punto de entrada más fácil para el desarrollo "adecuado" de Android. Lo cual es probablemente la razón por la que Google lo introdujo en primer lugar.
Aprende por qué deberías probar Kotlin aquí.
C/C++
Es justo decir que la mayoría de la gente que lee esto no debería elegir esta ruta para desarrollar aplicaciones Android. Android Studio ofrece soporte para código C/C++ utilizando el Android NDK (Native Development Kit). Esto significa que usted escribirá código que no se ejecuta en la máquina virtual de Java, sino que se ejecuta "nativamente" en el dispositivo y le da más control sobre cosas como la memoria. En el caso de las aplicaciones intensivas, como los juegos en 3D, esto puede permitirte exprimir el rendimiento adicional de un dispositivo Android. También significa que podrá utilizar bibliotecas escritas en C o C++.
Sin embargo, también tiende a ser mucho más difícil de configurar, introduce más errores y es menos flexible. Y si quieres crear un juego de ordenador, probablemente será mejor que utilices un motor de juegos ya hecho
C#
C# es básicamente una versión más sencilla y orientada a objetos de C y C++ desarrollada por Microsoft. Su objetivo es traer la potencia de C++ y la facilidad de Visual Basic y se lee un poco como una versión simplificada de Java. Al igual que Java, C# recoge la basura, lo que significa que no hay que preocuparse por cosas como las fugas de memoria y la liberación de la misma. Al mismo tiempo, sin embargo, C# es más moderno que Java y tiene una sintaxis más limpia, aunque es posible que se trate de mis propios prejuicios. El mejor lenguaje para desarrollar aplicaciones Android a menudo se reduce a los gustos.
Sin embargo, si quieres una introducción particularmente fácil y acogedora al desarrollo de aplicaciones Android, entonces recomiendo la combinación de C# y Unity. Unity es un "motor de juegos" (lo que significa que proporciona cosas como cálculos de física y renderización de gráficos 3D) y un IDE como Android Studio. Se trata de una herramienta gratuita que hace que sea increíblemente fácil crear tus propios juegos - con sólo unas pocas líneas de código puedes tener un juego de plataforma básico montado en menos de una hora. Sin exagerar. Y además es perfectamente potente, ya que es la herramienta utilizada por la mayoría de los estudios de juegos de la Google Play Store. Y además es multiplataforma. Además de todo eso, desarrollar de esta manera proporciona una forma muy práctica de aprender codificación orientada a objetos (porque los objetos en este caso son realmente objetos la mayor parte del tiempo).
¿La limitación? Unity es útil para crear juegos, pero está por debajo de la media para crear aplicaciones Android estándar, especialmente si quieres ajustarte al lenguaje Material Design de Google. Si quieres convertirte en un desarrollador profesional de Android, entonces esta ruta no estándar limitará tus oportunidades de empleo - a menos que tu objetivo sea convertirte en un desarrollador de juegos en cuyo caso este es un fondo perfectamente relevante y profesional.
¿No te gusta Unity? Entonces podrías considerar Unreal en su lugar (mejores gráficos, menos adecuados para móviles) o creadores de juegos simplificados como GameMaker Studio.
También se puede utilizar C# con Xamarin a través de Visual Studio. Esto es más parecido al desarrollo tradicional de Android con la ventaja de ser multiplataforma (una base de código para Android e iOS). Para un completo principiante, esta ruta es de nuevo un punto de entrada ligeramente obtuso para el desarrollo de Android - pero para una pequeña empresa que quiera crear una aplicación para iOS y Android tiene sentido y hay un montón de apoyo e información por ahí para ayudarte.
BASIC
¿Recuerdas que dije que C# era un intento de ofrecer la potencia de C con la facilidad de Visual BASIC? Pues eso es porque BASIC (Beginners All-Purpose Symbolic Instruction Code) es increíblemente agradable de usar y un punto de partida absolutamente ideal para aprender a codificar.
Desgraciadamente, no está soportado oficialmente por Android Studio y tampoco puedes usarlo en Unity o Xamarin. La buena noticia es que existe una opción menos conocida para desarrollar aplicaciones Android en BASIC llamada 'B4A' de Anywhere Software. Se trata de un acrónimo de 'BASIC 4 Android' y, como es de esperar, permite codificar aplicaciones Android con BASIC. Ciertamente no es la primera opción para la mayoría de los programadores que quieren desarrollar aplicaciones para Android, pero siempre es bueno tener más opciones.
B4A está diseñado como un entorno 'RAD' o de desarrollo rápido de aplicaciones. Hay un montón de otras decisiones de diseño inteligentes para hacer la vida más fácil y hay una comunidad muy solidaria si tienes alguna pregunta.
Esta es una gran manera de aprender a codificar en mi opinión personal y puedes construir algunas aplicaciones bastante potentes utilizando sólo este método. Sin embargo, no es ideal para hacer juegos de gama alta y, una vez más, sufre de ser una opción "no oficial" - por lo que es más difícil crear algo que cumpla exactamente con las especificaciones de Material Design y te resultará más difícil trabajar como desarrollador profesional con sólo BASIC. La otra gran desventaja es que esta es la única opción de la lista que no es gratuita para meterse de lleno en ella.
Corona
Corona ofrece otra opción considerablemente más simple para el desarrollo de aplicaciones para Android mientras que todavía te da una buena cantidad de poder y control. Codificarás en LUA, que ya es mucho más sencillo que Java, y además, el Corona SDK (Software Development Kit) te facilitará aún más las cosas. Soporta todas las librerías nativas, te permite publicar en múltiples plataformas. Se utiliza en gran medida para crear juegos, pero también puede utilizarse de otras maneras. Tendrás que utilizar un editor de texto como Notepad++ para introducir tu código y podrás ejecutarlo en un emulador sin necesidad de compilarlo primero. Cuando estés listo para crear un APK y desplegarlo, podrás hacerlo utilizando una herramienta online.
Esto requiere conocimientos básicos de codificación pero ofrece una agradable y suave introducción al mundo de la programación. Al mismo tiempo, sin embargo, es definitivamente limitado hasta cierto punto y está a unos cuantos pasos de entrar en el territorio de los "constructores de aplicaciones". Esto es más útil para alguien que quiere crear algo relativamente simple y no está tan preocupado por desarrollar sus habilidades de codificación o convertirse en un profesional. Si quieres utilizar funciones como las compras dentro de la aplicación, tendrás que pagar una cuota. Lo mismo ocurre con el uso de las APIs nativas de Android.
PhoneGap
Por último, la última gran opción 'simplificada' a la que puedes recurrir para desarrollar aplicaciones para Android es PhoneGap, a menos que quieras recurrir en su lugar a un programa 'app builder'. PhoneGap es impulsado por Apache Cordova y esencialmente le permite crear aplicaciones utilizando el mismo código que normalmente utilizaría para crear un sitio web: HTML, CSS y JavaScript. Esto se muestra esencialmente a través de una 'WebView' pero empaquetada como una aplicación. PhoneGap entonces actúa como un puente, permitiendo a los desarrolladores acceder a algunas características básicas nativas del teléfono o la tableta - como el acelerómetro o la cámara.
Esto no es realmente el 'verdadero' desarrollo de Android y la única programación real será JavaScript. Para muchas tareas básicas que va a hacer el trabajo, pero si usted quiere ser capaz de reclamar la verdadera 'desarrollador de aplicaciones Android' (que es una cosa), entonces usted debe valiente una de las otras opciones en esta lista.