Crea
tu primera Aplicación Android
Crea
tu primera Aplicación Android
Antes de empezar con esta
serie de tutoriales, debemos elegir el IDE correcto para desarrollar las
aplicaciones, hace ya varios años Eclipse ha reinado como entorno de desarrollo
para aplicaciones móviles, y hace meses que Android Studio, un IDE
especialmente para aplicaciones Android, sale a la luz después de una cuantas
betas que nadie se atrevía a usar como IDE principal, cabe mencionar que se
actualiza a un ritmo acelerado, por lo que es muy importante una conexión a
internet.
Bueno si quisiéramos
hacer una comparación entre estos dos entornos de desarrollo, debatiríamos
mucho tiempo, por eso solo voy a mencionar las nuevas ventajas que trae el
Android Studio, a comparación de Eclipse.
·
Está
basado en IntelliJ IDEA, uno de los IDE para java de primer nivel (entre los
mejores, con Eclipse, Netbeans).
·
Usa
Gradle en vez de Ant de Eclipse, con solo mencionarlo nos brinda grandes
ventajas
·
Integración
de la herramienta Gradle encargada de gestionar y automatizar la construcción
de proyectos, como pueden ser las tareas de testing, compilación o empaquetado.
·
Soporte para programar
aplicaciones para Android Wear (sistema operativo para
dispositivos corporales como por ejemplo un reloj).
·
Indexa
todo el proyecto y hace predicciones sobre él.
·
Editor
de diseño que muestra una vista previa de los cambios realizados directamente
en el archivo xml.
·
Como
se basa en módulos y proyectos, facilita la creación de apk’s para distintos
dispositivos.
·
En
cuanto a la codificación se puede rescatar que usa autocompletado contextual en
comparación al ADT que usa autocompletado regido.
En cuanto a las
desventajas:
- Aunque ya ha se ha lanzado la primera versión
estable, la v1.0, al estar en una fase inicial, siempre es susceptible de
introducirse más cambios que puedan provocar inestabilidad entre proyectos
de diferentes versiones.
- Curva de aprendizaje más lenta para nuevos
desarrolladores de Android.
- El sistema de construcción de proyectos Gradle puede
resultar complicado inicialmente.
- En comparativa con Eclipse, menor número de plugins.
Quiero aclarar que la
comparación es sólo en el contexto de aplicaciones Android, porque sabemos que
Eclipse gobierna en muchos otros aspectos de programación.
Siempre es bueno echarle
una probada a las nuevas tecnologías y software, antes de criticarlos, por eso
para los tutoriales, aparte de aprender a crear aplicaciones Android, también
aprenderemos a manejar el Android Studio que no es tan diferente al eclipse
pero tiene sus particularidades.
En cuanto a la
instalación, es sumamente fácil, el compilado lo podemos bajar de este link, puedes elegir entre
descargar el compilado completo (Android Studio + SDK), o simplemente el IDE
para los que tienen el SDK con Eclipse, también debemos tener Java en nuestro
equipo, aunque ya salió Java 8, se recomienda usar Java 7. Durante la instalación
de Android Studio puede que el software nos pida descargar actualizaciones, la
decisión es opcional.
He aquí algunas imágenes
sobre cómo realizar la instalación, algo sencillo y poco relevante pero siempre
es bueno despejar dudas.
Antes de empezar a
programar, configuraremos nuestro entorno asegurándonos que las rutas del sdk y
java sean correctas.
No quisiera cansarles con mucha teoría (aunque
es mucho muy importante estudiarla), así que los conceptos los pondré de
acuerdo al avance del tutorial, para observar la estructura global de nuestro
proyecto hacemos lo siguiente.
Cada carpeta
contiene archivos específicos para determinadas tareas, lo iremos explicando
conforme vayamos utilizándolos, para empezar la carpeta app es un módulo del
proyecto, un módulo representa a nuestra aplicación, dentro del proyecto
podemos tener varios módulos y estos a su vez
representarían no solo a aplicaciones sino también a librerías, y otras cosas.
Por lo general nuestros proyectos solo tendrán un módulo.
Esta es una breve
descripción de las carpetas más usadas.
Las que estudiaremos por
ahora son las carpetas java y layout, pueden entenderlo
de esta manera: dentro de layout se encuentran archivos .xml
que son como la interfaz gráfica de la app, por así decirlo; dentro de java
está la funcionalidad de la interfaz gráfica (layouts), en archivos .java, poco
a poco detallaremos más acerca de este asunto, por el momento resumimos:
Layout
(.xml) = interfaz de usuario
Clases
(.java) = funcionalidad de los layouts
Al crear un proyecto,
siempre se crea una aplicación por defecto, un Hola mundo.
Para hacerla correr
debemos poseer un dispositivo Android o en su defecto usar un AVD (dispositivo
virtual android) para crear uno seguimos los pasos:
En otra ocasión les
enseñare a hacerlo correr en un dispositivo físico, no es gran cosa pero tiene
muchas ventajas.
Ahora crearemos nuestra
app con algunas modificaciones sobre la app por defecto.
Lo que nunca debemos
olvidar es que para crear cualquier tipo de software lo más importante es el
análisis del mismo, la aplicación que vamos a crear será una variación al hola
mundo, se llamará hola usuario.
Dentro de una caja de
texto el usuario escribe su nombre y clickea un botón (hola), luego en un texto
aparece la frase hola + nombre de usuario.
Lo primero que haremos es
trabajar en la parte gráfica y luego pasaremos a la funcionalidad, ahora
definamos los componentes que vamos a usar en la interfaz de usuario:
TextView, es simplemente una
etiqueta o label como se conoce en otros lenguajes, se puede poner cualquier
texto dentro, y darle formato.
EditText, Es una caja de texto
editable, al tocar sobre este componente, automáticamente aparece el teclado
táctil del dispositivo.
Button, no hace falta
describirlo, realiza acciones al pulsarlo.
Ahora bien, la interfaz
(archivos .xml), se puede definir de dos maneras, modo grafico o código. En el
modo gráfico, simplemente se arrastran los componentes para agregarlos y en la
barra del lado derecho se modifican sus propiedades. Android Studio genera automáticamente
el código correspondiente en el xml. En modo texto (código), se hace código
desde cero, como recomendación usaremos el modo código, debido a que tendremos más
control sobre los componentes, no generaremos código innecesario y mantendremos
cierta pulcritud y sencillez en nuestros archivos. Muchos recomiendan empezar
usando el modo grafico para principiantes, personalmente me parece que es más
fácil definir los componentes desde código.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tvNombre" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Escribe tu nombre:"/> <EditText android:id="@+id/etNombre" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:id="@+id/btSaludo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="HOLA"/> <TextView android:id="@+id/tvSaludo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Saludo:"/> <TextView android:id="@+id/tvFraseSaludo" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
Cada componente tiene
propiedades generales como ancho, alto, id, pero también poseen propiedades específicas.
·
android:id
Es el id
que vamos a usar en los archivos java para hacer referencia al componente y
darle funcionalidad.
·
android:layout_width
y android:layout_height Son las dimensiones del componente, width=ancho, height=alto, se puede definir
en pixeles (android:layout_width=”30dp”)
o darle valores dinámicos (wrap_content,
match_parent o fill_parent), de todo esto hablaremos en tutoriales
posteriores.
·
android:text
Es una
propiedad que asigna un texto para mostrar se puede definir de dos formas, pero
no ahondaremos ahora en eso, simplemente escribimos lo que queremos que muestre
el componente entre comillas (android:text=”texto”).
Una vez entendido los
conceptos y escrito el código, ya tenemos la interfaz de usuario terminada, si
hacemos correr la aplicación nos mostrara la interfaz pero sin ninguna funcionalidad, para eso
debemos abrir el archivo ActividadPricipal.java, que es el que está asociado al
xml, y se encuentra en la carpeta java de nuestro modulo app.
Veremos que ya tiene un
poco de código escrito, lo primero que debe saltarnos a la vista es que se
extiende a Activity, las aplicaciones en android funcionan a base de
actividades (activity), cada
actividad está conformada por una interfaz (.xml) y funcionalidad (.java), se
podría también decir que una actividad es una pantalla dentro de la aplicación
y como sabemos una aplicación puede tener muchas actividades o pantallas. También
observamos que dentro de la clase existen tres métodos: onCreate, OnCreateOptionsMenu y OnOptionsItemSelected el único que
nos importa por ahora es el OnCreate,
los otros dos son para implementar un menú, no nos complicaremos con eso ahora,
por el momento podemos borrarlo, el método OnCreate
se ejecuta cuando se crea la actividad, es como su constructor dentro de este
método hacemos la llamada a los componentes y le damos su función. Dejo todo el
código comentado para detallarlo.
package ejemplo.android.com.miprimeraaplicacion; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class ActividadPrincipal extends Activity { //Declaracion de los componentes a usar private EditText etNombre; private TextView tvSaludo; private Button btSaludo; //Metodo que se ejecuta cuando se inicia la actividad @Override //@Override quiere decir que estamos sobreescribiendo un metodo propio de la clase padre(Activity) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.actividad_principal); //asocia el layout a la actividad y lo muestra en pantalla //Referencia a los controles que vamos a usar, dentro de findViewById, esta el id respectivo // a cada control creado en el archivo xml etNombre = (EditText)findViewById(R.id.etNombre); tvSaludo = (TextView)findViewById(R.id.tvFraseSaludo); btSaludo = (Button)findViewById(R.id.btSaludo); /*El proceso es el siguiente: cuando el usuario escribe su nombre, y presiona el boton (btSaludo) se produce un evento, debemos capturar el evento y realizar una accion, en este caso el evento es el click en el boton, la accion seria tomar el valor de la caja de texto (etNombre) y concatenarlo con la palabra hola, posteriormente mostramos el texto completo en el textView (tvSaludo) */ //Creamos el escuchador del evento click del boton btSaludo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //aqui ponemos lo que querramos que se haga cuando se presiona el boton String nombre = etNombre.getText().toString(); //1ro tomamos el texto de el editText (etNombre) String saludo = "Hola " + nombre; //2do concatenamos la palabra hola + el texto introducido tvSaludo.setText(saludo);//Finalmente mostramos el saludo completo en el textView } }); } }
Luego verificando que no
tenemos errores, hacemos correr la aplicación en el AVD que creamos
anteriormente.
Bueno, espero les haya
servido como introducción, seguiremos con lo básico en el siguiente tutorial y
detallando un poco más el desarrollo de aplicaciones android.
Si no se entendió
algo o tienen preguntas, siéntanse libres de comentar, preguntar o sugerir, El
mundo de las aplicaciones android es muy grande como para resumirlo en unos
cuantos tutoriales, tal vez lo dividamos en secciones.
Muy buenas noches, excelente el tutorial, muchas gracias.
ResponderEliminarSi no fuera mucha molestia pudiera colocar también como realizar el último ejemplo mediante "modo grafico". Gracias.