Android: Guía de referencia para el desarrollo de aplicaciones móviles

Rafa Morales 13 Febrero 2017
14min
0
Android

Gracias a este conjunto de recursos podrás iniciarte en el mundo del desarrollo de aplicaciones móviles bajo sistema Android. No pretende ser un manual en el que se explique paso a paso cómo diseñar tu propia aplicación, aunque se aproxime, se trata solamente de una lista de documentos clasificados y ordenados para utilizarlos en el desarrollo de un nuevo proyecto Android.

 

Android Studio

Android Studio es el IDE oficial y gratuito para el desarrollo de aplicaciones Android. Incluye soporte para la instalación del SDK de Android así como su propio emulador para probar y depurar las aplicaciones. Se basa en el entorno de desarrollo IntelliJ IDEA de JetBrains.

Emuladores alternativos

Aunque Android Studio posee su propio emulador de móviles con imágenes oficiales, existen otros emuladores con iguales o mejores resultados de rendimiento para probar tus proyectos.

 

Desarrolladores

Existen una serie de recursos en Internet que los desarrolladores de Android deben conocer y visitar asiduamente.

Antes de introducirse en Android, os recomendamos tener una buena base de programación en Java:

 

Material Design

Material Design es el diseño oficial de Google que sigue para todas sus aplicaciones, y que insiste en que los desarrolladores de terceros utilicen las suyas propias.

 

Componentes de una aplicación

Una aplicación puede componerse de los siguientes componentes. Cada uno de ellos tiene un funcionalidad completamente diferente en el sistema Android.

Tanto la aplicación como el resto de componentes llevan asociado un contexto con una serie de funciones que pueden realizar:

 

Patrón MVP (Modelo-Vista-Presentador)

La forma correcta de estructurar el código en un proyecto Android sería la utilización del patrón MVP:

 

AndroidManifest.xml

 

Recursos de la aplicación

Android permite externalizar los recursos de una aplicación (cadenas, imágenes, diseños, estilos, etc.) y utlizar el adecuado en función del idioma, el tamaño de pantalla, etc.

Diseño

Mapas de bits, iconos y vectores

Estilos y temas

Idiomas y cadenas

 

Componentes de la interfaz de usuario

Estos y muchos más son los elementos visuales que se pueden introducir en la interfaz gráfica de una aplicación Android.

 

Depuración, Logs y Explorador de archivos

Android Studio nos permite desde el código fuente ir generando mensajes con información de la ejecución de la aplicación o de errores que se produzcan durante la misma. Estos mensajes aparecen en la ventana de Logcat:

 

Android Studio nos permite depurar paso a paso la ejecución de una aplicación y visualizar el contenido de las variables y objetos para solucionar errores de una manera más cómoda.

Android Studio también permite acceder a los archivos internos y privados de una aplicación directamente en el propio dispositivo sin que éste tenga que estar rooteado:

 

Notificaciones simples

Mediante los siguientes tipos de notificaciones la aplicación puede informar al usuario sobre cualquier hecho de la misma.

 

Permisos

La aplicación Android debe solicitar durante su instalación (en las versiones más antiguas) o durante su ejecución (en las más modernas) los permisos necesarios para completar ciertas acciones en el dispositivo.

 

Tareas asíncronas e Indicadores de progreso

Las tareas asíncronas permiten ejecutar en segundo plano y de manera independiente a la actividad las tareas necesarias para no interferir con la usabilidad de la aplicación por parte del usuario. Estas tareas se pueden acompañar de indicadores de progreso para saber si se han completado o no.

 

Acceso a servicios de Internet

Tratamiento de contenido XML

Tratamiento de contenido JSON

Librería de acceso a API

 

Almacenamiento

Android proporciona las siguientes opciones para almacenar información en un dispositivo. Se desarrollarán cada una de ellas en los siguientes apartados.

  1. Preferencias compartidas (SharedPreferences)
  2. Almacenamiento interno
  3. Almacenamiento externo
  4. Bases de datos SQLite

 

Almacenamiento interno

El almacenamiento interno corresponde con las carpetas privadas del dispositivo. En ellas sólo las aplicaciones pueden escribir, además de que cada aplicación sólo puede escribir en su carpeta asignada y nunca en las demás.

 

Almacenamiento externo

El almacenamiento externo corresponde con las carpetas públicas del dispositivo en el almacenamiento compartido, ya sea en la memoria interna del dispositivo o en la tarjeta de memoria. Atención: Hay que tener en cuenta que al montar el móvil como almacenamiento USB, el almacenamiento externo se desmonta y las aplicaciones que lo utilicen se matan y no podrán acceder a él durante ese tiempo.

 

Bases de datos SQLite

Android permite manejar bases de datos internas a la aplicación en formato SQLite.

Depurar la base de datos en el PC:

Depurar la base de datos en el propio dispositivo:

 

Bases de datos REALM

Android permite manejar bases de datos internas a la aplicación en formato REALM utilizando las librerías de la propia base de datos.

 

Preferencias

Las preferencias se pueden utilizar para almacenar información del tipo "clave/valor" en la memoria interna y privada del dispositivo.

SharedPreferences: para preferencias sin interfaz gráfico.

PreferenceActivity: para preferencias con interfaz gráfico.

 

Navegador interno

Podemos incluir en la aplicación un navegador para visualizar cualquier web de Internet y no depender de una aplicación diferente en el dispositivo. Para ello debemos proveer a la aplicación del permiso Internet.

En este caso utilizaremos el componente WebView:

Pero si queremos personalizar el navegador y utilizar la información de cookies, contraseñas, historial del navegador Chrome en nuestro dispositivo, podemos utilizar el componente ChromeCustomTabs:

 

Fragmentos

La interfaz gráfica de una actividad la podemos descomponer en pequeñas porciones y cargar en ellas diferentes fragmentos según nuestras necesidades o las características del dispositivo.

 

Documentos

Desde Android podemos manejar ficheros de documentos de una manera general, independientemente de si esos documentos están en local, en una tarjeta de memoria o en la nube.

 

Imágenes, vídeos y cámara

Desde Android podemos manejar ficheros de imágenes y vídeos, además de capturarlos desde la cámara de fotos del dispositivo.

 

Localización

Podemos capturar la posición de un dispositivo así como los cambios sucesivos en su posición.

 

Google Maps

Podemos utilizar la API de Google Maps para insertar un mapa con información personalizada en nuestra aplicación.

 

Intents explícitos e implícitos

Los Intents permiten a nuestra aplicación enviar datos a otras aplicaciones del mismo dispositivo, de manera explícita si conocemos qué aplicación exacta es, o de manera implícita dejando al usuario que elija la aplicación que él quiera dentro de las que estén preparadas para trabajar  con esos datos. Por ejemplo:

 

Intent-filters

Podemos definir Intent-filters en nuestra para decirle a Android qué "Intents implícitos" somos capaces de aceptar desde nuestra aplicación.

 

BroadcastReceivers

Los BroadcastReceivers permiten a nuestra aplicación responder a los anuncios (broadcast) que hace el sistema u otra aplicación. Por ejemplo:

 

ContentProviders

Un ContentProvider nos permite compartir información entre aplicaciones.

 

Widgets

Los widgets permiten crear mini-aplicaciones para la pantalla del dispositivo.

 

Notificaciones Push

Las notificaciones Push son mensajes que se envían de forma directa a aplicaciones del dispositivo y que estas manejan, normalmente, avisando mediante una notificación en la barra de estado.

OneSignal

Firebase

Alternativas

 

Actividades especiales

Cómo implementar diferentes tipos de actividades.

 

Publicidad

Una de las maneras de monetizar nuestra aplicación consiste en inluir publicidad en la misma. Una de las opciones para ello es utilizar el programa de Google AdMob, específico para aplicaciones móviles.

 

Pruebas

Durante el desarrollo de la aplicación, es necesario realizar diferentes tipos de pruebas que nos permitan comprobar que los resultados obtenidos en cada tipo de ejecución son los esperados.

 

Cuestionario

Pon a prueba tus conocimientos con los siguientes cuestionarios.

 

Pendiente de clasificar

A continuación dejo una serie de enlaces interesantes que aún no he podido probar para incluirlos en los apartados anteriores.