Android es la plataforma de teléfonos inteligentes más importante en volumen de instalaciones. En este curso veremos una gran introducción al mundo Android y la programación de aplicaciones en su lenguaje Java.
Con este curso, el usuario podrá desarrollar aplicaciones de muchos tipos totalmente funcionales en los dispositivos móviles. Todo el curso está escrito para el entorno oficial Android Studio
Contenidos
1 - Entorno de desarrollo y primera aplicación
- Entorno de desarrollo y primera aplicación
- El mundo Android
- Android y las versiones
- Personalizaciones del sistema operativo
- Dispositivos Android
- El entorno de desarrollo
- El mundo "Eclipse"
- Descargar e instalar Android Studio
- Crear la primera aplicación
- Emular un dispositivo Android
- Crear un dispositivo
- Crear otros emuladores
- Las resoluciones
- El primer proyecto Android
- Más detalles de los ejemplos
- Ficheros y partes de un proyecto Android
- Partes de un proyecto
- Carpetas de un proyecto
- Resultado del proyecto
- La programación orientada a objetos
- Introducción a la POO (programación orientada a objetos)
- De la programación estructurada al enfoque orientado a objetos
- Elementos básicos de la POO
- Las clases
- Los Objetos
- Los miembros de una clase
- Los tres pilares de la Programación Orientada a Objetos
- Herencia
- Encapsulación
- Polimorfismo
- Jerarquía de clases
- Relaciones entre objetos
- Actualizar versión, importar proyectos de "Eclipse" y proyectos de ejemplos
- Actualizar versión
- Importar proyectos de Eclipse
- Importar los proyectos de ejemplo de este curso
- Actualizar entorno
- Actualizar el proyecto
- Ejecutar ejemplos de la biblioteca
2 - Android y Java
- Android y Java. Interfaz de Android Studio
- Cuestiones básicas de Java
- Lenguajes de programación
- Lenguaje de programación de alto nivel y de bajo nivel
- Arquitectura ordenador + sistema operativo
- Programación orientada a objetos
- Introducción
- Objetos
- Clases
- Representar las características comunes en el código
- Representar el comportamiento común a nivel de código
- Modelo de objetos
- Abstracción
- Encapsulación
- Modularidad
- Herencia
- Paso de Mensajes
- Polimorfismo
- Relaciones entre objetos
- Visibilidad
- Programa Java
- Java en Android
- Escribir un programa Java
- Cómo hacer los siguientes ejemplos
- Tipos y alcance de variables. Casting
- Concepto de variable
- Variables primitivas
- De tipo entero
- Reales o de coma flotante
- Booleanas o de tipo lógico
- Tipo char o de carácter
- Variables referenciadas
- Casting o transformaciones de tipo
- Estructuras básicas de programación
- Expresiones
- Operadores
- Aritméticos
- De asignación
- De comparación
- Lógicos
- Toma de decisiones, bifurcación del código
- Condicional simple if .. else
- Condicional compuesto if .. else if .. else if .. etc .. else
- Operador ternario
- Condicional switch
- Bucles
- Bucle for
- Sentencias break, return y continue
- Bucles anidados
- Bucle while
- Bucle do .. while
- Alcance de variables
- Variables locales
- Variables de instancia
- Variables estáticas o de clase
- Métodos estáticos o de clase
- El entorno de desarrollo Android Studio
- Ventana principal
- Vistas del proyecto
- Pantalla principal
- Otras ventanas
- ¿Qué es Gradle?
- Edición de código
- Constraint Layout
- Funcionamiento
- Diseñar
- Restricciones o ajustes
- Conectar automáticamente.
- Inferencia
- Posicion vertical.
- Posición horizontal
- Propiedades de posición
- Ejercicios
- Ejercicio 1. Crear una actividad sencilla
- Enunciado de la práctica
- Ejercicio 2. Actividades con secuencias de código
- Enunciado de la práctica
- Pasos a seguir
3 - Actividades e Intents
- Activities e Intents
- Activities
- Ciclo de vida de una actividad
- Ejemplo de una actividad
- Primera aplicación con interactividad
- Otro ejemplo con interactividad
- Recuerda
- Estructura de las actividades. Crear una aplicación "básica"
- Intents
- Ejemplo 1
- "Bundle";
- Ejemplo 2
- Tipos de proyectos de Android
- Bloques básicos de una aplicación
- Ejemplos
- Intent con retorno de datos
- Escribir los "listener" de una forma más fácil
- ¿Más tipos de "listener"?
- Ejercicios
- Ejercicio 1. Realizar una aplicación interactiva con captura de datos
- Enunciado de la práctica
- Pasos a seguir
- Solución del ejercicio
4 - La interfaz en Android
- La interfaz en Android. Los "Intents" a fondo
- Etiquetas
- Botones
- Imágenes
- Cuadro de texto
- Ejemplo
- Checkbox o casillas de verificación
- RadioButton o botones de opción
- Ejemplo
- Opciones comunes
- Relleno o Padding
- Colores
- Otros métodos
- Otras propiedades
- Ventanas de cuadros de diálogo
- Un cuadro de diálogo más sencillo
- ¿Instrucciones tachadas?
- El objeto "Toast"
- El contexto
- Más sobre los Intents
- Novedades a partir de Android 6.0
- Tipos de Intents
- Filtros de los Intents
- Resolver conflictos de filtros de "Intent"
- Resumiendo el objeto Intent
- Tipos MIME
- ¿Tres tipo de "listeners"?
- Método 1
- Método 2
- Método 3
- Ejercicios
- Ejercicio 1. Aplicaciones con interfaz gráfica
- Enunciado de la práctica
- Pasos a seguir
- Ejercicio 2. Actividades con cuadros de diálogo
- Enunciado de la práctica
- Pasos a seguir
- Ejercicio 3. Llamadas a los Intents de Android
- Enunciado de la práctica
- Pasos a seguir
5 - Android y Java II. Depuración de aplicaciones
- Android y Java II. Depuración
- Más clases importantes
- Clase Math
- Clases envoltorio de las variables primitivas o wrapper classes
- Clase Integer
- Clase Character
- Clase String
- Constructores
- Métodos principales
- Excepciones
- Ejemplos de excepciones asociadas a errores de ejecución
- Bloque try... catch... finally
- Cláusula throws
- Arrays
- Elementos en un array
- Arrays multidimensionales
- Constructores
- Constructores de clases no pertenecientes a la API
- Palabra reservada this
- Sobrecarga de métodos
- Herencia
- Notas básicas sobre herencia
- Nota 1 herencia
- Nota 2 herencia
- Nota 3 herencia
- Nota 4 herencia
- Nota 5 herencia
- Nota 6 herencia
- Palabra reservada super
- Paquetes y modificadores de acceso
- Paquetes
- Modificadores de acceso
- Depuración de aplicaciones
- Herramientas de depuración
- Especificar una configuración de ejecución
- Depuración con puntos de interrupción o "breakpoints"
- Puntos de interrupción condicionales
- Ventanas de depuración
- LogCat
- Layout inspector
- Profiler
- Resumen de ventanas de estado de Android Studio
- TODO
- Messages
- Build Variants
- Event Log
- Terminal
- Logcat
- Project
- Gradle
- Structure
- Debug
- Device File Explorer
- Captures
- Android Profiler
- Favorites
- Opciones del emulador
- Redimensionar emulador
- Instalar aplicaciones
- Datos de GPS. (Location)
- Display
- Comportamiento de la conexión
- Estado de batería
- Cámara
- Teléfono
- Sensores y otras opciones
6 - Interfaz gráfica. Contenedores de widgets y las notificaciones
- Diseño en Android. Notificaciones
- Introducción al diseño en Android
- Plantillas de creación de actividades
- "Empty Activity"
- "Basic Activity"
- Conexión con las actividades
- Trabajar con contenedores o layouts
- Herramienta de diseño de Android Studio
- Barra de herramientas
- Disposición lineal con "LinearLayout"
- Orientación
- Modo de relleno
- Peso
- Gravedad
- Márgenes
- Modelo en filas
- Añadir un layout con propiedades
- Posiciones relativas
- Propiedades de ajuste
- Posiciones relativas con otros controles
- Ejemplo
- Superposición
- Formato en tablas
- Diseñar la tabla
- Otros diseños de la tabla
- Estirar (Strech), encoger (Shrink) y combinar (Collapse)
- GridLayout
- Mover y borrar filas y columnas
- Fusionar filas/columnas o Span
- Desplazamiento de la pantalla o "scroll"
- Marcos o "FrameLayout"
- Detalles del diseño
- Unidades de medida
- Adaptarse a la orientación de la pantalla
- Anclaje de vistas
- Ajustar tamaño y posición
- Ejemplo
- Información persistente
- Detectar los cambios
- Asegurar una posición
- Crear la interfaz mediante programación
- Mostrar notificaciones
- La importancia de las versiones
- Notificación sencilla
- Notificación avanzada
- Personalización de las notificaciones
- Añadir Vibración
- Añadir leds
- Prioridad
- Añadir sonido
- Añadir acciones
- Notificaciones con estilos
- Barra de progreso en un aviso
- Otro emulador
- Ejercicios
- Ejercicio 1. Trabajar con "layouts"
- Enunciado de la práctica
- Ejercicio 2. Pantallas con desplazamiento o "scroll"
- Enunciado de la práctica
- Pasos a seguir
- Ejercicio 3. Trabajar con el área de notificaciones
- Enunciado de la práctica
7 El teclado y controles de lectura de datos
- El teclado y controles de lectura de datos
- El teclado
- Tipos de teclados
- Ajustar a la pantalla
- Eventos del teclado
- Escribir métodos de una actividad (Override)
- Registrar eventos
- Resumen
- Entrada con varios campos
- Otra acción
- Personalizar la entrada de datos
- Vista de barra de progreso "ProgressBar View"
- Estilos
- AutocompleteTextView
- Problemas con el estilo
- Fechas y horas
- TimePicker
- Seleccionar hora en un cuadro de diálogo
- Seleccionar fecha en un cuadro de diálogo
- Controles de listas
- ListView
- Selección múltiple
- Datos de lista en recursos
- SpinView
- Más estilos para las listas
- Listas con varios elementos
- NumberPicker
- Ejercicios
- Ejercicio 1. Temporizadores y controles de hora
- Enunciado de la práctica
- Pasos a seguir
8 - Cuadrícula, pestañas, Imágenes y menús (ActionBar). Fragments
- Cuadrícula, pestañas, imágenes, menús (ToolBar). "Fragments"
- Cuadrícula
- SeekBar
- Mostrar imágenes
- Control Galería. "Deprecated"
- Cuadrícula de imágenes
- Alternativa 1 al control Gallery
- Alternativa 2 a "Galley". Galería con ViewPager
- Mejora con carpeta "Assets"
- Menús
- Menú clásico
- Menú contextual
- ActionBar
- Toolbar
- Menús con ToolBar
- Crear grupos de iconos
- Generar los menús
- Detectar los eventos del usuario
- Otras opciones de menú
- Menus anidados
- Grupo
- Floating Action Button
- Snackbar
- Cambiar colores y tamaño
- CardView y RecicleView
- RecyclerView
- Ampliando la "AppBarLayout"
- Navegador Web
- Mostrar páginas web personalizadas
- Fragments
- Mensaje emergente
- Añadir el fragment en el layout principal
- Añadir el fragment desde el código
- Leer datos de un fragment
- Aplicaciones con varios"fragment"
- Fragments según la plantilla "basic activity"
- Cuadros de diálogo según las nuevas API's
- Mensaje sencillo
- Mensaje con selección e icono
- Mensaje con selección múltiple
- Mensaje con selección única
- Mensaje personalizado
- Fragments para leer fechas y horas
- Cuadro de diálogo para fechas
- Cuadro de diálogo para horas
- La navegación con Android
- Pestañas o solapas.
- Ejercicios
- Ejercicio 1. Controles interactivos con la interfaz
- Enunciado de la práctica
- Pasos a seguir
9 - Almacenamiento de datos
- Almacenamiento de datos
- Almacenar preferencias de usuario
- Crear una ventana de preferencias
- Preferencias
- Recuperar valores de las preferencias
- Detectar cambios en las preferencias
- Almacenar datos en ficheros
- Guardar datos en la memoria interna
- Guardar datos en una tarjeta externa
- Bases de datos
- SQLite
- Gestión de las bases de datos con las clases "SQLiteOpenHelper" y "DBAdapter"
- Herramientas externas para la gestión de las bases de datos
- Enlazar la base de datos con nuestra aplicación
- Otro enfoque del uso de base de datos. Acceso completo con SQL sin "dbAdapter"
- Crear la tabla
- Insertar datos
- Consultar datos
- Borrar registros
- Actualizar registros
- Sobre los cursores y otro métodos...
- Más ejemplos de la sintaxis
- Acceder a SQL Server
- Ejercicios
- Ejercicio 1. Uso de bases de datos en aplicaciones
- Enunciado de la práctica
- Pasos a seguir
10 - Proveedores de contenidos. Networking y multimedia
- Proveedores de contenidos. Mensajes y Networking. Multimedia
- Proveedores de contenidos
- Compartir datos en Android
- Proveedor de contenidos
- Contenido URI
- El "Content Resolver"
- El "" Manifest Element
- Utilizar un proveedor de contenido
- Ejemplo utilizando un listView
- Proyecciones
- Filtros
- Ordenación
- Mensajes SMS
- Enviar mensajes SMS mediante programación
- Acuse de recibo del envío del mensaje
- Envío de mensajes mediante "Intents"
- Recibir mensajes SMS
- Enviar mensajes de correo electrónico
- Networking
- Descargar datos binarios
- Descargar ficheros de texto
- Multimedia
- Audio con MediaPlayer/MediaRecorder
- Grabar audio
- Ejemplos con vídeo
- Grabación
- Reproducir vídeo
- Cámara
- Estilos
- Definir nuevos estilos
- Definir formas
- Estilos genéricos
- Estilos según los estados
- Ejercicios
- Ejercicio 1. Interactuar con el dispositivo: SMS
- Enunciado de la práctica
- Ejercicio 2: Interactuar con el dispositivo: Correo electrónico
- Enunciado de la práctica
11 - Geolocalización, sensores y gráficos. Servicios Web
- Gráficos, geolocalización, sensores y widgets. Servicios Web
- Dibujar en Android
- Dibujar objetos más complejos
- Detectar interactividad
- Cargar gráficos
- Otros ejemplos...
- Servicios basado en localización
- Mostrar mapas
- Obtener una clave MAPS API
- Obtener la huella digital
- Obtener la huella digital de forma manual
- Obtener la clave API
- Generación manual de la API
- Configurar el proyecto
- Nuestro ejemplo en marcha
- Cambiar vistas
- Información de nuestra clave de mapas
- Navegar a una ubicación distinta
- Obtener la posición
- Eventos en el mapa
- Marcadores
- Obtener la ubicación
- Traducción inversa
- Obtener las coordenadas a partir de la dirección
- Sensores
- Leer datos del sensor
- Widgets
- Widget estático
- Crear un widget automáticamente
- Añadir interactividad
- Ejercicios
- Ejercicio 1. El acceso a Google Maps
- Enunciado de la práctica
- Ejercicio 2. Dibujar en Android
- Enunciado de la práctica
- Pasos a seguir
12 - Servicios y publicación de programas
- Servicios, ejemplo de fragmentos y publicación de nuestros programas
- Servicios
- Servicio sencillo
- Servicios con iBinder
- Servicio remoto con mensajes "Messenger"
- Lanzar servicios en eventos
- Broadcastreceiver de mensajes SMS
- Servicios estáticos y dinámicos
- Recepción de SMS
- Ejecución programada
- Realizar tareas en los servicios
- Ejecutar tareas periódicamente
- Navegación entre actividades con fragments
- Navegación con fichas o "tabs"
- Fichas fijas
- Fichas desplazables (scroll)
- Fichas con iconos y textos
- Personalizar iconos y títulos
- Navegación con "Drawer"
- Publicar aplicaciones Android
- Generar un fichero APK firmado con Android Studio
- Cambiar la variante de generación
- Generar la clave
- Crear el fichero de la aplicación
- Versiones
- Desplegar la aplicación
- Despedida del curso
- Ejercicios
- Ejercicio 1. Los servicios en Android
- Enunciado de la práctica