Saltar al contenido

Aprender a programar en Java para Android desde cero – Gratis

Si alguna vez has querido hacer tu propia aplicación para Android, por diversión o con ánimo de lucro, has de saber que necesitarás saber algo de programación. Tenemos un montón de maneras de escribir programas para Android, pero el idioma oficial de este sistema y por si no lo sabes, es Java. Si no lo conoces nosotros te ayudamos a que lo aprendas desde cero.

Java no es sólo el lenguaje Java oficial para el desarrollo de aplicaciones, de hecho es utlizado por Google para la mayor parte interna de Android. Podemos deciros que hay dos partes distintas al «escribir» un aplicación para Android. Una es el lenguaje de programación Java en sí, la otra es entender cómo crear una aplicación desde tu interfaz de usuario, con el sistema operativo Android, y el Kit de desarrollo de software de Android (SDK). En este tutorial vamos a hacer frente a la primera de ellas, el lenguaje de programación Java desde cero y de forma gratuita.

aprender-programar-en-java-para-android-desde-cero-gratis

Actualmente es muy sencillo aprender a programar en Android porque existen cientos de cursos y guías completamente gratuitas o de muy bajo para iniciarte en el desarrollo de aplicaciones para este SO.

Contenido que os mostramos:

¿Porqué programar en Android?

En la actualidad es fácil aprender a programar en Android porque hay miles de cursos y guías gratuitas o a un precio irrisorio para que podáis iniciaros en el desarrollo de aplicaciones para SO.

Android es el rey de las aplicaciones, actualmente tenemos disponibles en el store de Google Play más de 700k aplicaciones. Si decides dedicarte a la creación de aplicaciones o al desarrollo de juegos Android, debo de decirte que puede ser un trabajo muy rentable.

Aprender a programar en Java para Android desde cero – Gratis

Java fue lanzado por primera vez a mediados de la década de 1990 por Sun Microsystems. Fue diseñado como un lenguaje fácil de aprender por los programadores que ya conocían C y C ++. Durante 2006 y 2007, Sun lanzó Java como software libre y de código abierto, en los términos de la Licencia Pública General de GNU (GPL). Sun fue adquirida por Oracle en 2009/2010, y Oracle mantiene su compromiso de Java.

Para empezar a escribir programas Java necesita una forma de compilar el código fuente y convertirlo en un archivo ejecutable para el tiempo de ejecución de Java. La manera normal de hacer esto es para instalar el kit de desarrollo de Java. En estos momentos, la versión actual de Java es Java 8, sin embargo, es relativamente nuevo, así que Android utiliza todavía Java 7. Si no sabes como instalar el JDK Oracle ofrece una Guía de instalación de JDK 7.

Sin embargo, si no estás listo para instalar el JDK, y deseas una ruta rápida para intentar tu primer programa Java, entonces te recomiendo Koding.com. que te da da acceso a una máquina virtual gratuita con todos los compiladores y herramientas necesarias para compilar y ejecutar programas Java, así como desarrollar en otros idiomas como Go, Python, Nodo, y C. Para inscribirse sólo hay que visitar Koding.com, escribir la dirección de correo electrónico y una contraseña de tu elección, y luego haz clic en «Registrarse».

La máquina virtual (VM) viene con un IDE y mando de acceso online. La vista web de la máquina virtual se divide en cuatro parte. A la izquierda nos aparecerá el panel de control Koding con acceso a datos de tu cuenta, las máquinas virtuales que se han creado y así sucesivamente. Al lado de él aparece un gestor de archivos que muestra todos los archivos y carpetas que tienes en tu máquina virtual. Además la pantalla se divide en dos. La mitad superior es un editor, para escribir el código; y la mitad inferior te da orden de acceso online.

Para aquellos que hayan instalado el JDK el proceso es casi idéntico, excepto que tendrás que usar un editor de texto en tu PC en lugar de el editor dentro del Koding IDE.

Corta y pegua el siguiente código en el editor

public class HelloWorld {
public static void main(String[] args) {
System.out.println(«Hello, World»);
}
}

Tienes que guardarlo como HelloWorld.java. En Java el nombre del archivo del código fuente y el nombre de la clase debe ser el mismo. La primera línea del código declara una clase llamada HelloWorld, por lo que el código fuente debe estar guardado en HelloWorld.java.

Si lo haces a través de Koding , deberás guardar el archivo pasando el puntero del ratón sobre la pestaña para el código (probablemente llamada Untitled.txt) y luego hcer clic en la pequeña flecha. Luego tendrás que hacer clic en «Guardar como …», introduciendo HellowWorld.java como nombre de archivo y haciendo clic en «Guardar».

En la parte inferior de la pantalla encontrarás la línea de comandos. La máquina virtual se está ejecutando en Linux y el terminal está ejecutando Bash. Así que, para compilar su primer programa Java sólo tienes que escribir:

javac HelloWorld.java

La compilación sólo debe tardar un segundo o dos. Luego habrá que ejecutar el tipo de programa:

HelloWorld java

El resultado será el texto «Hola Mundo» que se muestra en el terminal. ¡Enhorabuena!

aprender-a-programar-en-java-para-android-desde-cero-gratis-HOLA-MUNDO

¿Qué acabo de hacer?

Una vez llegados a este punto, vamos a parar para comprobar que es lo que acaba de suceder. En primer lugar el código fuente. El archivo hace tres cosas. 1) Se declara una clase llamada HelloWorld. 2) Se define un método (una función) en la clase HelloWorld llamado «main». 3) El método main () llama System.out.println a la salida para un poco de texto.

En Java, y en todos los lenguajes de programación orientados a objetos, una clase define un objeto. Un objeto es un elemento autónomo que interactúa con otros objetos. En Android dicho objeto incluiría elementos de la interfaz de usuario, una conexión de red, algunos datos de localización, y así sucesivamente.

Cada programa Java debe definir un método llamado «main» en al menos una clase. Este será el punto de entrada, en el que el programa empieza a ejecutarse. En el sencillo ejemplo anterior el método main () tiene una sola línea de código, una llamada a System.out.println a la salida «Hola, mundo». println () que es un método que pertenece a la clase PrintStream y se incluye como parte de la clase System.

Para recopilar y ejecutar el programa primero se le ha llamado javac y luego java. El primero es el compilador de Java, por ello aparece la letra ‘c’ al final, y el segundoes la máquina virtual de Java. Java es independiente de la arquitectura lo que significa que un archivo .java no se compila para un procesador específico en un sistema operativo específico, como Windows en un chip de Intel x86, o Android en un ARM Cortex-A processor, sino que se convirtió en «Java bytecode». El trabajo de la máquina virtual Java es ejecutar ese código de bytes en la plataforma específica.

Variables

Al escribir programas de ordenador se necesitará almacenar algunos datos para uso temporal. Por ejemplo, en un juego para Android en el que se desee almacenar la puntuación del jugador actual. Estos bits de datos se almacenan en las variables – una caja en la que puedes poner algunos datos y luego volver más tarde a recogerlos. Puesto que los datos se presentan en diferentes formas, una variable debe definirse con un tipo, que diga a Java lo que se almacena. Algunos de los tipos de datos primitivos de Java incluyen int (por entero), doble (para doble precisión en el número de coma flotante) y boolean (por un valor verdadero / falso).

Aquí tenéis un sencillo programa que establece el valor de una variable, imprime el valor de la consola, cambia la variable y luego lo imprime de nuevo:

public class VariableTest {
public static void main(String[] args) {
int i = 1;

System.out.println(«The value of i is: » + i);
i = i + 24;
System.out.println(«The value of i is now: » + i);
}
}

 

Guarda el archivo como «VariableTest.java». Para recopilarlo escribe: javac VariableTest.java, y para ejecutarlo utiliza: java VariableTest. La salida del programa será:

The value of i is: 1
The value of i is now: 25

Como se puede ver el programa define una variable llamada «i» y le da un valor inicial de 1. El valor de «i» se imprime en la consola. Entonces i se suma al nuevo valor de i + 24, o 1 + 24, que es 25. El nuevo valor entonces se imprime.

Trata de modificar el programa para utilizar un «doble» en lugar de un «int». Suma «i» a algo así como 1.3 y aumenta tu valor por otro número decimal como 24,9.

Si echas un vistazo a el método println (), verás un número entero que se añade a una cadena: «El valor de i es:» + i. Lo que realmente ocurre es que Java sabe que la primera parte de la expresión es una cadena, por lo que genera el valor de cadena para que, en este caso «1» luego se concatene con la cadena dando: «El valor de i es: 1 «.

Cadenas o Strings

Las cadenas son una parte importante de cualquier lenguaje de programación como Java. A diferencia de int o boolean, una cadena no es un tipo primitivo, es una clase. Cuando se crea una variable de cadena se está creando realmente un objeto String (nótese la mayúscula S). Como un objeto que tiene ciertas propiedades como su valor (la propia cadena) y su longitud. Las cadenas pueden ser manipuladas de un montón de maneras, incluyendo siendo diseccionadas, concatenadas, en comparación, o buscadas.

He aquí un programa de ejemplo que realiza algunas operaciones simples en una cadena:

public class PlayingWithStrings {
public static void main(String[] args) {

String hello = «Hello, World»;
System.out.println(hello);

// Add an ! to the end
hello = hello + «!»;
System.out.println(hello);

// Extract the word «Hello» from the String
// i.e. starting at the beginning (0) for 5 characters
String justHello = hello.substring(0,5);
System.out.println(justHello);

// Add some trailing spaces and then remove them with trim()
hello = hello + » «;
hello = hello.trim();

// Now output the string all in UPPERCASE and lowercase
System.out.println(hello.toUpperCase());
System.out.println(hello.toLowerCase());
}
}

 

Guárdalo como PlayingWithStrings.java. Recopilaloy ejecutalo utilizando javac y java como se indicó anteriormente.

La primera parte del programa crea un objeto String llamado «hola» y le da un valor de «Hola Mundo». Aunque esto marca un aspecto similar a cómo se declara y asigna un número entero o en otro tipo primitivo, en realidad hay mucho más que hacer aquí. Java permite a los operadores simples como = y + asignar tareas simples. Así que en realidad se crea Cadena hola = «Hola Mundo»; y es un poco como la cadena hola = new String («Hola Mundo») ; es decir, crea un nuevo objeto de tipo String y pasa en el valor «Hola, mundo» al constructor. Pero vamos a hablar más sobre eso en los objetos de la sección a continuación.

La parte siguiente muestra cómo se pueden concatenar cadenas, en este caso se añade un signo de exclamación al final de la cadena. Desde que las cadenas son un objeto pueden tener métodos. String.substring () es un método que devuelve parte de una cadena. En este caso, los primeros 5 caracteres. String.trim () es otro método que elimina espacios iniciales y finales. La última parte del programa demuestra los métodos String.toUpperCase () y String.toLowerCase ().

La salida del programa será:

Hello, World
Hello, World!
Hello
HELLO, WORLD!
hello, world!

Loops

Si en una cosa un ordenador es bueno, es en el hecho de puede hacer tareas repetitivas. Para llevar a cabo una tarea repetitiva en un lenguaje de programación que utiliza una construcción llamada «loop«- algo que se enrolla una y otra vez.

Java tiene tres tipos de bucles o»loops» sencillos: el for loop, el while loop, y el do while loop. Cada tipo de bucle sigue la misma idea básica, es necesario repetir algo una y otra vez hasta que se cumpla una determinada condición.

He aquí un ejemplo que muestra cómo imprimir los números 1 a 10, 11 a 20 y 21 a 30, el uso de los tres tipos diferentes de bucle:

public class Loops {
public static void main(String[] args) {

// For loop
for(int i=1; i<=10; i++) {
System.out.println(«i is: » + i);
}

// While Loop
int j = 11;
while(j<=20) {
System.out.println(«j is: » + j);
j++;
}

// Do While Loop
int x = 21;
do {
System.out.println(«x is: » + x);
x++;
} while (x <=30);
}
}

Crea un archivo llamado Loops.java con el código de arriba, luego recopilalo y ejecutalo como se indica anteriormente.

aprender-a-programar-en-java-para-android-desde-cero-gratis-bucles

The for loop como tres partes. En primer lugar la inicialización (int i = 1), que se ejecuta sólo una vez. En el ejemplo anterior la inicialización se utiliza para declarar un entero i y establece su valor en 1. Luego viene la expresión de prueba (i <= 10). Esta expresión se pondrá a prueba cada vez que el bucle se ejecute. Si el resultado de la prueba es cierto, entonces el bucle irá otra vez en torno a esto. En este ejemplo, la prueba es comprobar que i es todavía menor o igual a 10. Después de cada iteración la tercera sección, el iterador, se ejecutará. En este ejemplo se aumenta el valor de i en uno. Ten en cuenta que i = i + 1 es lo mismo que i ++.

El bucle while es similar a foor loop, excepto que no contiene la fase de inicialización y la fase iterador. Eso significa que la inicialización se debe hacer por separado, por lo tanto, la declaración int j = 11 ;. El repetidor también necesita ser codificado por separado. En nuestro ejemplo es la línea j ++ que se encuentra dentro del bucle después del println ().

El blucle do while loop es muy similar a un bucle while con una gran diferencia, la prueba para ver si el bucle debe seguir se encuentra al final del bucle y no al comienzo. Esto significa que un do … está garantizado para ejecutarse al menos una vez, pero un bucle while ni siquiera necesita ejecutarse en absoluto, si las condiciones no se cumplen en la entrada en el bucle.

Al igual que el bucle while, la inicialización debe suceder fuera del bucle, en este caso: int x = 21; y el iterador se produce dentro del bucle: x ++. Cuando x alto 30 el bucle se detendrá.

Objetos

Como mencioné antes, Java es lo que se conoce como un lenguaje de programación orientado a objetos (OO) y para tener éxito realmente en programación Java y Programación Android es importante entender los conceptos OO.

En su nivel más simple un objeto es un conjunto de métodos (funciones) que trabajan en un conjunto de datos. Los datos y los métodos pertenecen al objeto, y trabajan para el objeto.

Aquí está el código fuente de un programa muy simple que crea un objeto de contador:

Contador public class {

contar int;

Contador público () {
count = 0;
}

pública Incremento void () {
contar ++;
}

public int GetCount () {
recuento de retorno;
}

principales (String [] args) {void estáticos públicos
Contador myCounter = new Contador ();

System.out.println («MyCounter es» + myCounter.GetCount ());
myCounter.Increment ();
System.out.println («MyCounter es» + myCounter.GetCount ());
}
}

El objeto Contador tiene un dato, el recuento variable entero y tres métodos (excepto principal): Contador (), Incremento (), y GetCount (). Dejando el primer método por el momento, se puede ver que Incremento () y GetCount () son muy simples. El primero se suma uno al conteo variable interno y el segundo devuelve el valor de la cuenta.

Hasta ahora todos los métodos que hemos declarado comenzaron con public void pero notas que el método GetCount () comienza con public int. Vamos a hablar más sobre público en un momento, pero la diferencia entre nulo y int es esta: void declara que el método no devuelve nada, no habrá ningún resultado volviendo fuera del método. Pero int nos dice que el método devolverá un número, específicamente un entero. En realidad se puede crear métodos que devolverán todo tipo de datos, incluyendo objetos.

Ten en cuenta que el primer método tiene el mismo nombre que la clase en sí, es decir, Contador (), y no tiene un tipo de retorno (ni siquiera void). Este es un método especial llamado constructor. El constructor se llama sólo una vez, en el momento en que se crea el objeto. Se utiliza para inicializar el objeto con los valores por defecto y realizar cualquier otra tarea de inicialización necesarias. En este ejemplo sólo se establece conteo a cero.
Herencia

Lo curioso acerca de las clases es que se puede crear una clase general de una idea abstracta y luego crear clases específicas que se derivan de la clase original. Por ejemplo, puede crear una clase llamada Animal y luego derivar una nueva clase de ella por un animal específico, digamos un alce.

Aquí tienes un ejemplo… tendrás que crear dos archivos para este ejemplo, Animal.java y Elk.java. Aquí tienes Animal.java:

public class Animal {
NumberOfLegs int;

Animal público (int n) {
NumberOfLegs = n;
}

GetNumLegs int públicos () {
volver NumberOfLegs;
}
}

Y aquí es Elk.java:

public class Elk extiende Animal {
int lengthOfAntlers;

pública Elk (int l) {
super (4);
lengthOfAntlers = l;
}

public int GetAntlerLength () {
volver lengthOfAntlers;
}

principales (String [] args) {void estáticos públicos
Elk myElk = new Elk (30);

System.out.println («Cuerno:» + myElk.GetAntlerLength ());
System.out.println («Piernas:» + myElk.GetNumLegs ());
}
}

Para recopilar el programa sólo tienes que escribir:

javac Elk.java

La clase de animal es lo que se conoce como una super clase, mientras que la clase derivada Elk se conoce como una sub-clase, porque jerárquicamente está por debajo de la clase de animal. Cuando se amplía una clase (es decir, se crea una subclase) la nueva clase adquiere los datos y métodos de la superclase. Por eso, el programa es capaz de llamar myElk.GetNumLegs () a pesar de que es parte de la clase de animal. La nueva clase Elk tiene dos variables: NumberOfLegs y lengthOfAntlers. También cuenta con dos métodos: GetAntlerLength y GetNumLegs. Si creamos otra subclase, por ejemplo ovejas, que heredaría las NumberOfLegs variables y el método GetNumLegs.

En el diseño de objetos descubrirás que algunos métodos que se exponen al resto del programa, de modo que puedan ser llamados. Pero otros métodos es posible que desees mantenerlos en privado, por lo que sólo el objeto en sí tiene acceso a ello. Aquí es donde esa palabra pública entra en juego. Hemos estado declarando todo como público que significa que el método puede ser llamado desde cualquier otra parte del código. Sin embargo, puedes declarar métodos como privados o protegidos, lo que limitará el acceso a esos métodos. Las mismas reglas de acceso también se pueden aplicar a las variables del objeto.

Otra cosa a destacar es cómo funcionan los constructores. El Elk () constructor inicializa la variable lengthOfAntlers, en este caso a 30, el número pasado en la que se creó el objeto. Pero antes de eso, se llama al constructor de la superclase (es decir Animal ()) con la notación súper especial de Java.

Hay mucho más que se puede decir acerca de la programación orientada a objetos (POO), pero esto debería ser suficiente para saber como empezar.

Al margen de lo explicado os dejo un vídeo de inicio para programar Java en Android.

https://www.youtube.com/watch?v=pgLqJ56EPFc