Programación en Android con Android Studio
Si hay un entorno que ha conseguido una fama incuestionable en el mundo multimedia es Android. Teléfonos inteligentes (smartphones), reproductores, televisiones, proyectores, GPS… multitud de dispositivos ofrecen una experiencia de uso y calidad inigualables. Una versión reducida de Linux y el lenguaje Java junto con un hardware cada vez más potente, nos ofrecen el acceso a un mundo lleno de posibilidades que sigue en continua evolución.
Todos los usuarios que quieran aprender desde el inicio la programación en Android.
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
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
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
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"?
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
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)
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
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
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
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"
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.
9. Almacenamiento de datos
Almacenamiento de datos
Almacenar preferencias de usuario
Crear una ventana de preferencias
Preferencias con los objetos antiguos
Recuperar valores de las preferencias
Preferencias para las nuevas API's
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
Consultas a través de Internet
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 "<provider>" 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
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
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
