
Introducción al curso
En este video te explico cómo está estructurado el curso así como consejos sobre Udemy
Algunos consejos para disfrutar más de la experiencia del curso
En este video veremos cómo instalar la herramienta de desarrollo Android Studio así como la configuración de un teléfono virtual donde podemos emular el desarrollo que hagamos
Si hay algun concepto en las explicaciones que no haya sido explicado en los videos, puedes preguntarlo y añadire su explicación a este glosario. De ese modo podemos estar seguros de que todo todo todo queda explicado, para que nadie tenga ninguna duda por pequeña que sea sobre algun término en concreto
En esta clase te mostraré el uso que se le llegan a dar en aplicaciones profesionales a los conceptos que analizaremos a continuación
En esta clase te explicaré las variables, valores y constantes así como características particulares de cada una de ellas
Diferencia entre val y const
En esta clase te explicaré los principales diferentes tipos de datos en kotlin y los ámbitos que tiene una variable
Explicación detallada de la relacion entre el tipo de dato que se declara, la memoria que se reserva y el valor que puede almacenar como consecuencia
En esta clase te explicaré los operadores de cálculo en kotlin a través de diferentes ejemplos
En esta clase te mostraré el uso que se le llegan a dar en aplicaciones profesionales a los conceptos que analizaremos a continuación
En esta clase te explicaré operadores de comparación a través de varios ejemplos
En esta clase te explicaré las estructuras condicionales if y else
En esta clase te explicaré la estructura condicional when
En esta clase te explicaré los operadores lógicos en kotlin a través de varios ejemplos
Descargar el PDF que te proporciono como recurso en este punto del curso para que tengas informacion muy muy interesante sobre el tema que acabamos de considerar
En esta clase te explicaré el bucle do-while y algunas características que lo hacen diferente
En esta clase te explicaré la importancia de la instrucción break
En esta clase verás lo importante que es el uso de programar modularmente en aplicaciones reales
En esta clase te explicaré la sintaxis de las funciones en kotlin para que sepas modularizar el código
En esta clase te explicaré cómo son las funciones con parámetros y los detalles que debes tener en cuenta
En esta clase te explicaré las funciones que retornan datos y su modo de uso
Descargar el PDF que te proporciono como recurso en este punto del curso para que tengas informacion muy muy interesante sobre el tema que acabamos de considerar
En esta clase te mostraré el uso que se le llegan a dar en aplicaciones profesionales a los conceptos que analizaremos a continuación
En esta clase te explicaré qué son los arrays y como se implementan en código en kotlin
En esta clase te explicaré qué son las matrices y como manejarlas en kotlin a través de un ejemplo
En esta clase te explicaré el uso del importantísimo bucle for asi como algunas diferentes estructuras que éste soporta
En esta clase te explicaré cómo implementar un bucle for dentro de otro bucle for a través de un ejemplo
En esta clase te explicaré las colecciones set y sus particularidades que la diferencian de otras colecciones
En esta clase te explicaré la version mutable de la coleccion set
En esta clase te explicaré las colecciones list y su version mutable y sus particularidades que la diferencian de otras colecciones
En esta clase te explicaré las colecciones map y sus particularidades que la diferencian de otras colecciones
En esta clase te explicaré la version mutable de la coleccion map
Diferencias entre array, set, list y map
En esta clase te explicaré como usar el bucle while y su diferencia con respecto al bucle do-while a través de un ejemplo en el que combinaremos varios de los conceptos vistos en esta sección de introducción
En esta clase te explicaré los valores nulos y como manejar de forma segura el codigo en estos casos para evitar errores tanto en tiempo de compilación como en tiempo de ejecución
Tipos de formatos para fechas y horas
Código de la sección
En esta clase te mostraré el uso que se le llegan a dar en aplicaciones profesionales a los conceptos que analizaremos a continuación
En esta clase te explicaré el concepto de abstración así como qué son los objetos para que puedas trasladar a código cualquier representación que tu desees
En esta clase te explicaré los 2 pilares de cada objeto
En esta clase te explicaré qué 2 formas hay de construir un objeto
En esta clase te explicaré cómo administrar la construcción de un objeto y sus valores asociados
En esta clase te explicaré qué es el encapsulamiento y por qué es importante usarlo
En esta clase te explicaré cómo hacer un buen uso de los atributos de un objeto
En esta clase veremos cómo implementar en el proyecto que vamos a desarrollar los conceptos analizados hasta ahora
En esta clase te explicaré qué es la herencia y por qué es tan importante
En esta clase te explicaré con un ejemplo sencillo la manera de implementar herencia en código entre 2 clases
En esta clase te explicaré la forma de gestionar la herencia de atributos y métodos con protected, private e internal por contraposición a public
En esta clase veremos plasmado en la aplicación que desarrollamos en paralelo los conceptos expuestos hasta el momento
En esta clase te explicaré qué es el polimorfismo y por qué es importante
En esta clase te explicaré cómo plasmar en código el concepto de polimorfismo y el uso de la palabra override
En esta clase te explicaré de qué manera las funciones pueden aceptar parametros de diferentes tipos de clases
En esta clase te explicaré como usar la palabra super aplicado al polimorfismo
En esta clase te explicaré qué son las clases abstractas, cuál es el uso correcto que hay que darles y por qué son tan importantes
En esta clase te explicaré qué son las interfaces, sus características particulares para que las diferencies de las clases abstractas y la importancia que tienen al simular herencia múltiple
En esta clase te explicaré cómo utilizar objetos dentro de una clase
En esta clase te explicaré subclases (clases anidadas y clases internas)
En esta clase te explicaré los objetos anónimos, su modo de implementacion y situaciones en las que tiene sentido usarse
En esta clase te explicaré los data clases y cómo usarlos
En esta clase te explicaré en detalle los enum class y sus diferentes características
Conclusión del curso
Hagamos un ejercicio!
En esta clase veremos qué son las funciones de extensión y las ventajas que éstas presentan para hacer más completo nuestro código
En esta clase veremos qué son las funciones de Orden Superior y la forma en la que Kotlin implementa características de la programación funcional
En esta clase veremos como aplicar funciones de orden superior en objetos
En esta clase veremos qué son las lambdas y cómo implementarlas en código
En esta clase veremos con un ejemplo aplicado la forma en la que puede evolucionar el código de una lambda hasta optimizarlo al punto habitual de uso
En esta clase veremos que una lambda puede acceder a una variable externa a su bloque de código
En esta clase veremos qué son los typealias, cómo usarlos y sus ventajas
En esta clase veremos diferentes modos de implementar desestructuración para almacenar en variables los componentes de estructuras de valores
En esta clase veremos cómo hacer código robusto que no provoque cierras abruptos de nuestra app con try catch y finnally
En esta clase veremos cómo sacar más provecho de try / catch
En esta clase veremos cómo usar throw y generar nuestras clases de Excepcionts personalizadas
En esta clase veremos varios tipos de funciones de alcance y sus características propias
En esta clase veremos qué es y cómo funciona el operador Elvis
En esta clase veremos el funcionamiento completo de lateinit así como la opcion lazy y casos de uso
Aquí tienes el código usando durante las clases de esta sección
Hagamos un ejercicio
En esta clase te explico la gran importancia de saber aprovechar al máximo la herramienta Android Studio
En esta clase veremos atajos de teclado para hacer búsquedas
En esta clase veremos varios atajos de teclado para la edición de código
En esta clase veremos varios atajos de teclado para la edición de código
En esta clase veremos en qué casos y porqué debes saber usar el Depurador
En esta clase veremos paso a paso como usar el depurador con puntos de interrupción, analisis de linea, saltos de linea, observadores, etc
Cómo actualizar el propio IDE de Android Studio
Cómo actualizar el plugin de kotlin
Cómo actualizar el importante plugin de Gradle
Un sencillo consejo sobre la actualización de plugins
En esta clase te muestro los diferentes tipos de visualizar la estructura de un proyecto android y su comparativa con los directorios reales, así como la forma de acceder a ellos y editarlos alternativamente
En esta clase te muestro los diferentes archivos de gradle y los 2 principales que configuran el proyecto y el modulo, así como la relevancia que tiene el uso de ellos para integrar diferentes componentes en la app
En esta clase te muestro el archivo manifest y todas las características que puede especificar éste
En esta clase te muestro los archivos de código Kotlin organizados en las carpetas Java, así como consejos sobre cómo sacar provecho de las ayudas de edición que ofrece Android Studio
En esta clase te muestro los diferentes recursos que puede tener una app y las características que les hacen diferentes unos de otros, así como la importancia de usar esos recursos correctamente (strings y colors) y tenerlos todos ordenados y la diferencia entre los directorios y la forma de mostrarlos en Android Studio
Aclaración sobre la diferencia entre ambos directorios
Cómo añadir fuentes a nuestro proyecto para personalizar la app
En esta clase te enseño un recurso valioso para añadir iconos vectoriales a tu proyecto
Explicación detallada para que comprendas desde cero el sistema hexadecimal de colores, con y sin transparencia y cada uno de sus canales
En esta clase te mostraré un repaso sobre los componentes principales de un app que detallaremos a lo largo de la sección
En esta clase veremos qué es una Activity, la entenderemos mejor gracias a nuestro conocimientos de los Objetos. También veremos su ciclo de vida y con un ejemplo real comprobaremos la secuencia que sigue en cada acción. Por otro lado conocemos el concepto relacionado de IU
En esta clase veremos qué son los fragments, su funcionamiento, cuándo conviene usarlos y un ejemplo real
En esta clase veremos qué son los Views, ejemplos de ellos, Views heredados y Views Personalizados. También veremos qué son los ViewGroups, y ejemplos de ellos. Todo eso de forma teórica y en código en la app de muestra del curso
En esta clase veremos qué son los servicios, y ejemplos de su funcionamiento en una app real. Con el debugger te muestro la prueba de que hay servicios que se ejecutan en segundo plano al margen del hilo principal. Y con el widget tambien veremos que hay codigo que se ejecuta incluso con la activity detenida
En esta clase veremos qué son los broadcast receivers, posibles eventos a monitorear, un ejemplo real de esta implementación en una app y el importantísimo rol que juegan de cara a la experiencia de usuario (UX)
En esta clase veremos la importancia tan grande que tienen los intents en una aplicacion, ejemplos de uso de ellos para establecer comunicacion entre actividades de la app o actividades de la app con actividades del sistema de android, asi como otros ejemplos menos comunes
En esta clase veremos qué son los Content Providers y su lógica
En esta clase veremos qué son los widgets, en qué circunstancias tiene lógica implementarlos, su beneficio de cara a la UX, su modo de creación y particularidades que estos pueden tener en su configuración
Aunque una app pueda funcionar perfectamente sin animaciones, en este video te mostraré por qué es tan importante su implementación para dar una mejor experiencia a nuestros usuarios
En esta sección veremos la importancia práctica de conocer bien estos Views. Aunque en esta sección veremos MÁS de los que una app suele contener
En esta clase veremos cómo personalizar un TextView desde el archivo xml
En esta clase veremos cómo personalizar un TextView desde código
En esta clase veremos cómo crear eventos en un View, usando como ejemplo el TextView
En esta clase veremos cómo personalizar un EditText desde el archivo xml
En esta clase veremos cómo personalizar un EditText desde código
En esta clase veremos tipos de EditText dependiendo de su propiedad inputType
En esta clase veremos cómo implementar un campo AutoCompleteTextView y darle funcionalidad
En esta clase veremos cómo implementar un campo MultiAutoCompleteTextView y darle funcionalidad
Código disponible de los objetos de la Palette Text así como los archivos descargables de cada View
En esta sección veremos la importancia práctica de conocer bien estos Views. Aunque en esta sección veremos MÁS de los que una app suele contener
En esta clase veremos como implementar un objeto Button y sus principales propiedades
En esta clase veremos como personalizar el diseño de un button
En esta clase veremos los objetos ImageButton
En esta clase veremos como implementar ChipGroup y Chip en nuestro proyecto
En esta clase veremos como implementar personalizar Chips
En esta clase veremos cómo gestionar desde código los ChipGroups y Chip creando el evento de cierre de chip, modificación de propiedades o crearlos dinámicamente
En esta clase veremos cómo implementar RadioGroup y RadioButton en nuestro proyecto
En esta clase veremos cómo administrar desde codigo RadioGroup y RadioButton
En esta clase veremos cómo crear un atractivo RadioGroup de RadioButtons personalizados
En esta clase veremos cómo implementar CheckBox y personalizarlo desde xml
En esta clase veremos cómo administrar desde código CheckBox
En esta clase veremos cómo implementar ToggleButton desde xml y cómo administrarlo desde código
En esta clase veremos cómo personalizar un ToggleButton creando un resultado mucho más atractivo
En esta clase veremos cómo implementar un Switch desde xml y cómo administralo desde código
En esta clase veremos cómo personalizar un Switch
En esta clase veremos cómo implementar un FloatingActionButton desde xml y cómo administrarlo desde código
Aquí tienes el código usado para esta sección así como los archivos descargables de cada View
En esta sección veremos la importancia práctica de conocer bien estos Views. Aunque en esta sección veremos MÁS de los que una app suele contener
En esta clase veremos los objetos ImageView, su implementación y propiedades principales
Guía sencilla de cómo cargar una imagen en un ImageView desde una direccion URL en lugar de un archivo local
En esta clase veremos IMPORTANTÍSIMAS buenas prácticas de uso de imágenes
En esta clase veremos los objetos ShapeableImageView, su implementación, propiedades principales, y diferentes estilos que podemos darles
En esta clase veremos los objetos WebView, su implementación, propiedades principales, y como administrarlos desde código
En esta clase veremos los objetos VideoView, su implementación, propiedades principales, y como administrarlos desde código
En esta clase veremos los objetos CalendarView, su implementación, propiedades principales, y como administrarlos desde código
En esta clase veremos los objetos ProgressBar, su implementación, propiedades principales
En esta clase veremos como administrar desde código los objetos ProgressBar
En esta clase veremos los objetos SeekBar, su implementación y propiedades principales
En esta clase veremos como personalizar un SeekBar
En esta clase veremos cómo administrar desde código los objetos SeekBar y también una multitud de diseños que pueden hacerse
En esta clase veremos los objetos RatingBar, su implementación, propiedades principales, y como administrarlos desde código
En esta clase veremos los objetos SearchView, su implementación y propiedades principales
En esta clase veremos como administrarlos desde código un SearchView y añadir la funcionalidad de búsqueda
En esta clase veremos los dividers, su implementación y explicación de este "fake" view
Aquí tienes el código usado para esta sección así como los archivos descargables de cada View
Este curso desde cero a avanzado sobre desarrollo de aplicaciones para android con Kotlin está explicado desde el inicio como para seres humanos.
¿Has intentado alguna vez aprender a programar apps para Android y te ha resultado un camino lleno de obstáculos? Te entiendo. Por eso hice este curso explicando todo de forma sencilla y en un orden que permita asimilar los conceptos con claridad.
Todos los temas se explican con ejemplos, para que veas la aplicación real de cualquier elemento en un proyecto profesional que exista de verdad, no solo como modelo para unas clases.
¿Qué aprenderás en este curso?
El lenguaje Kotlin: verás su sintaxis y características desde los conceptos básicos hasta los avanzados
Programación Orientada a Objetos: veremos también de qué manera se implementan en kotlin las clases, encapsulamiento, herencia, polimorfismo, clases abstractas, interfaces, subclases, objetos anonimos, data class, enum class...
Atajos para Android Studio: esta es una de mis partes favoritas que hacen diferente este curso, verás una enorme cantidad de atajos de teclado que llevarán a otro nivel tu eficacia al programar.
Cómo usar el debugger: además también veremos como usar el debugger en detalle con todas sus posibles formas de recorrido por las líneas así como los observadores
Componentes de un Proyecto: te explicaré todos los archivos que componen un proyecto en android y cómo están organizados así como la función de cada uno de ellos, desde el gradle hasta el código fuente y los recursos asociados, así como el manifiest
Componentes de una App: aquí aprenderás qué son y cómo se usan cada uno de los pilares de una app (activity, fragment, view, viewGroups, service, broadcast receiver, intent, content provider, widget y animaciones)
Cómo hacer código ordenado y limpio
EL OBJETIVO DEL CURSO
Por favor, mira el video de introducción. Ahí verás una app real, desarrollada íntegramente por mí. El objetivo del curso es mostrarte desde las bases cómo llegar a programar apps como esa. Y eso se mostrará paso a paso en el curso a través de las secciones que se irán añadiendo. Pero para tu garantía puedes comprobar que la app ya está creada, solo queda subir el proceso de desarrollo.
¿Qué tiene la app del proyecto que desarrollaremos en este curso?
Diseño de Interfaces
UX
Control de usuarios, con inicios de sesión mediante el sistema tradicional de email además de los servicios de Google y Facebook
Verificación y petición de permisos de internet, escritura y lectura en memoria, camara, bateria, geolocalización, etc
Creación de menú personalizado
Datos propios de los perfiles de usuarios, inicios de Sesion con Google, Facebook y email
Shared Preferences
Lectura, escritura y actualizado de datos en la Base de Datos de Firebase
Guardado y recuperacion de archivos en la Base de Datos de Firebase Storage
Geolocalización y administración de mapas con captura de la ubicación actual, guardado y reproducción de la ruta
Control de cámara con código personalizado
Notificaciones
Reproducción de música parametrizando el track y el volumen
Creación de widgets
Control sobre el estado del hardware del dispositivo
Animaciones
Compartir archivos por redes sociales
Integración de componentes desde librerías de terceros
Widgets
Sistema de Pagos
Resgistro LEGAL de la app
Inserción de Publicidad
Te animo a que veas cualquiera de las clases que estén accesibles antes de comprar el curso y seguro que desearás ver el resto del curso
¿Verdad que es genial? Pues lo mejor de todo es que está a tu alcance.
Compra el curso y disfruta de todo lo que te está esperando.
Nos vemos!
José Javier Villena