Jetpack Compose: Curso definitivo desde 0 [2025]
Compra ahora
Descubrir más
Introducción a Compose [Actualización 2025 - Material 3]
Actualización 2025
JetpackCompose2025.zip
¿Qué es Jetpack Compose?
Creando nuestro primer proyecto
Arquitectura básica
Previews
Modificadores
Layouts en Compose [Actualización 2025 - Material 3]
Box
Column
Row
Combinando layouts
[Ejercicio 1] Filas, columnas y cajas
(SOLUCIÓN)[Ejercicio 1] Filas, columnas y cajas
Spacer
ConstraintLayout
[Ejercicio 2] Reto constraint
(SOLUCION) [Reto constraint]
ConstraintLayout Avanzado
Estados en Compose [Actualización 2025 - Material 3]
Estados y recomposición
Estados avanzados
State hoisting
Material VS Material 3 [Actualización 2025 - Material 3]
Material vs Material 3
Componentes Text y TextField [Actualización 2025 - Material 3]
Text
Textfield
Textfield avanzado
OutlinedTextfield
Componente Button [Actualización 2025 - Material 3]
Botones
OutlinedButton
TextButton
ElevatedButton
FilledTonalButton
Componente Image y Icon [Actualización 2025 - Material 3]
Image
Imágenes avanzadas
Imágenes desde URL
Iconos
Componente ProgressBar [Actualización 2025 - Material 3]
CircularProgressIndicator
LinearProgressIndicator
ProgressIndicator avanzado
Loading con animaciones de Lottie
Componentes de control de selección [Actualización 2025 - Material 3]
Switch
CheckBox
CheckBox Avanzado
TriState Checkbox
RadioButton
RadioButton avanzado
Componente Slider [Actualización 2025 - Material 3]
Slider basico
Slider avanzado
RangeSlider
Componente DropdownMenu [Actualización 2025 - Material 3]
DropDownMenuItem
DropDownMenu
ExposedDropDownMenuBox
Componentes para el Scaffold [Actualización 2025 - Material 3]
Scaffold
Appbar
Snackbar
FAB
NavigationBar
NavigationDrawer
Otros componentes [Actualización 2025 - Material 3]
Card
Badge
Divider
Diálogos [Actualización 2025 - Material 3]
AlertDialog
DatePicker
TimePicker
Diálogo personalizado
Comportamientos avanzados en Compose [Actualización 2025 - Material 3]
InteractionSource
LaunchEffect
DerivatedStatedOf
Listados (Antiguos Recyclerviews) [Actualización 2025 - Material 3]
Lazy Row/Column
Listas avanzadas
Gestionar el estado de las listas
LazyVertical/HorizontalGrid
Navegación [Actualización 2025 - Material 3]
Navegación básica
Navegación con parámetros primitivos
Navegación con parámetros complejos
Mejorando la navegación con Type genérico
Gestionando el stack de navegación
BackHandler
Animaciones [Actualización 2025 - Material 3]
Animar la visibilidad
Animate*AsState
Crossfade
AnimatedContent
AnimatedContentSize
InfiniteTranstition
MVVM con Jetpack Compose [Actualización 2025 - Material 3]
InstaDev.zip
Introducción a MVVM
Creando y configurando InstaDev
Preparando la navegación
LoginScreen
UiState y LoginViewModel
Theme [Actualización 2025 - Material 3]
Introducción a los themes
Colores
Fuentes
Shapes
Wrappeando componentes
Textos localizables
[EJERCICIO 3] Register Screen [Actualización 2025 - Material 3]
Explicación del reto
Diseñando RegisterScreen
RegisterViewModel
Preparando la navegación
Detalles de estilo
Clean Code - Data y dominio [Actualización 2025 - Material 3]
Introducción a clean architecture
Capa de dominio
Capa de data y mappers
Inyección de dependencias con Dagger Hilt [Actualización 2025 - Material 3]
Introducción a la inyección de dependencias
Añadiendo Dagger Hilt al proyecto
Preparando nuestro proyecto
Introducción a Compose
Qué es Jetpack Compose
JetpackComponentsCatalog
Creando nuestro primer proyecto
Arquitectura básica
Usando la preview en nuestras vistas
Vistas y modificadores en Compose
Layouts en Jetpack Compose
Box
Column
Row
Combinando layouts
[Ejercicio 1] Filas, columnas y cajas
Diseño a replicar
(SOLUCIÓN) [Ejercicio 1] Filas, columnas y cajas
Spacer
ConstraintLayout básico
[Ejercicio2] ConstraintLayout básico
(SOLUCIÓN) [Ejercicio 2] ConstraintLayout básico
ConstraintLayout avanzado
Estados en Compose
Qué son los estados
Recomposición
Trabajando con estados
RememberSaveable
Lifecycle
State property
Componentes Text y TextField
Text
TextField
TextField avanzado
OutlinedTextField
State hoisting
State hoisting
Componente Button
Botones
Botones con estados
OutlinedButton
TextButton
Componente Image
Image
Imágenes circulares
Icons
Componente ProgressBar
ProgressBar
ProgressBar avanzado
Componentes de control de selección
Switch
CheckBox
CheckBox con Texto
State hoisting con múltiples CheckBox
CheckBox TriState
RadioButton
State hoisting con múltiples RadioButton
Otros componentes
Card
Surface
BadgeBox
Divider
DropdownMenu
Componente Slider
Slider
SectionSlider
Diálogos en Jetpack Compose
AlertDialog
Diálogo personalizado
Diálogo personalizado avanzado
recursos+dialogo.zip
Diálogo de confirmación
Login básico - Instagram
Creando un Login desde cero - Introducción
recursos+login.zip
JetpackComposeInstagram.zip
Creando el header
Diseño del login - Parte 1
Diseño del login - Parte 2
Diseñando el footer
Personalizando TextFields (Con mostrar/ocultar password)
Personalizando botón del login
[RETO 1] - De tuits va la cosa
Explicación del reto
Iconos
Solución al reto
TwitterChallengeResolution.zip
RecyclerView en Jetpack Compose
Introducción a los RecyclerView
Recyclerview horizontal y vertical
SuperHeroImages.zip
Recomendaciones para los RV
Recyclerview GRID (Cuadrícula)
Controlar el desplazamiento
Cabeceras (Sticky Header)
Componentes en Jetpack Compose
Scaffold
TopAppBar
Snackbar
BottomBar
FloatingActionButton
ModalDrawer
Navegación en Compose
Navegación básica
Navegación like a pro
Navegar con argumentos obligatorios
Navegar con argumentos opcionales
Arquitectura MVVM con Jetpack Compose
¿Qué es MVVM?
JetpackComposeInstagram (1).zip
Implementando MVVM y live data - Parte 1
Implementando MVVM y live data - Parte 2
Introducción Clean Architecture
Arquitectura CLEAN - DATA y DOMAIN con consumo de API
Introducción
JetpackComposeInstagram+retrofit.zip
Montando RETROFIT
Data - Parte 1
Data - Parte 2
Dominio
Preparando el ViewModel
Inyección de dependencias con Dagger Hilt
Preparando Dagger Hilt
JetpackComposeInstagram+hilt.zip
Inyectando Activity y ViewModel
Inyectando data y domain
Animaciones con Jetpack Compose
Animación de color básica
Animación de color avanzada
Animación de tamaño básica
Animación de tamaño avanzada
Animación de visibilidad básica
Animación de visibilidad avanzada
Crossfade
[APP] Tareas
Introducción y creación del proyecto
TodoApp.zip
Implementando Dagger Hilt
Diálogo creador de tareas
Añadiendo y configurando el diálogo
Creando las tareas
Editando las tareas
Borrando las tareas
Implementando Room
Preparando el repositorio
Capa de dominio: Casos de uso
Flows - Preparando el StateFlow
Conectando StateFlow con Screen
Aprendiendo a solucionar errores
Actualizando los items (Room y UI)
Borrando items (Room y UI)
UI Testing
Introducción y preparación al testing de UI
compose-testing-cheatsheet.png
ComposeTesting.zip
Finders
Actions
Assertions
Creando nuestros primeros tests completos
Testeando diálogos
Productos
Curso online
Sección
Lección
SuperHeroImages.zip
SuperHeroImages.zip
Jetpack Compose: Curso definitivo desde 0 [2025]
Compra ahora
Descubrir más
Introducción a Compose [Actualización 2025 - Material 3]
Actualización 2025
JetpackCompose2025.zip
¿Qué es Jetpack Compose?
Creando nuestro primer proyecto
Arquitectura básica
Previews
Modificadores
Layouts en Compose [Actualización 2025 - Material 3]
Box
Column
Row
Combinando layouts
[Ejercicio 1] Filas, columnas y cajas
(SOLUCIÓN)[Ejercicio 1] Filas, columnas y cajas
Spacer
ConstraintLayout
[Ejercicio 2] Reto constraint
(SOLUCION) [Reto constraint]
ConstraintLayout Avanzado
Estados en Compose [Actualización 2025 - Material 3]
Estados y recomposición
Estados avanzados
State hoisting
Material VS Material 3 [Actualización 2025 - Material 3]
Material vs Material 3
Componentes Text y TextField [Actualización 2025 - Material 3]
Text
Textfield
Textfield avanzado
OutlinedTextfield
Componente Button [Actualización 2025 - Material 3]
Botones
OutlinedButton
TextButton
ElevatedButton
FilledTonalButton
Componente Image y Icon [Actualización 2025 - Material 3]
Image
Imágenes avanzadas
Imágenes desde URL
Iconos
Componente ProgressBar [Actualización 2025 - Material 3]
CircularProgressIndicator
LinearProgressIndicator
ProgressIndicator avanzado
Loading con animaciones de Lottie
Componentes de control de selección [Actualización 2025 - Material 3]
Switch
CheckBox
CheckBox Avanzado
TriState Checkbox
RadioButton
RadioButton avanzado
Componente Slider [Actualización 2025 - Material 3]
Slider basico
Slider avanzado
RangeSlider
Componente DropdownMenu [Actualización 2025 - Material 3]
DropDownMenuItem
DropDownMenu
ExposedDropDownMenuBox
Componentes para el Scaffold [Actualización 2025 - Material 3]
Scaffold
Appbar
Snackbar
FAB
NavigationBar
NavigationDrawer
Otros componentes [Actualización 2025 - Material 3]
Card
Badge
Divider
Diálogos [Actualización 2025 - Material 3]
AlertDialog
DatePicker
TimePicker
Diálogo personalizado
Comportamientos avanzados en Compose [Actualización 2025 - Material 3]
InteractionSource
LaunchEffect
DerivatedStatedOf
Listados (Antiguos Recyclerviews) [Actualización 2025 - Material 3]
Lazy Row/Column
Listas avanzadas
Gestionar el estado de las listas
LazyVertical/HorizontalGrid
Navegación [Actualización 2025 - Material 3]
Navegación básica
Navegación con parámetros primitivos
Navegación con parámetros complejos
Mejorando la navegación con Type genérico
Gestionando el stack de navegación
BackHandler
Animaciones [Actualización 2025 - Material 3]
Animar la visibilidad
Animate*AsState
Crossfade
AnimatedContent
AnimatedContentSize
InfiniteTranstition
MVVM con Jetpack Compose [Actualización 2025 - Material 3]
InstaDev.zip
Introducción a MVVM
Creando y configurando InstaDev
Preparando la navegación
LoginScreen
UiState y LoginViewModel
Theme [Actualización 2025 - Material 3]
Introducción a los themes
Colores
Fuentes
Shapes
Wrappeando componentes
Textos localizables
[EJERCICIO 3] Register Screen [Actualización 2025 - Material 3]
Explicación del reto
Diseñando RegisterScreen
RegisterViewModel
Preparando la navegación
Detalles de estilo
Clean Code - Data y dominio [Actualización 2025 - Material 3]
Introducción a clean architecture
Capa de dominio
Capa de data y mappers
Inyección de dependencias con Dagger Hilt [Actualización 2025 - Material 3]
Introducción a la inyección de dependencias
Añadiendo Dagger Hilt al proyecto
Preparando nuestro proyecto
Introducción a Compose
Qué es Jetpack Compose
JetpackComponentsCatalog
Creando nuestro primer proyecto
Arquitectura básica
Usando la preview en nuestras vistas
Vistas y modificadores en Compose
Layouts en Jetpack Compose
Box
Column
Row
Combinando layouts
[Ejercicio 1] Filas, columnas y cajas
Diseño a replicar
(SOLUCIÓN) [Ejercicio 1] Filas, columnas y cajas
Spacer
ConstraintLayout básico
[Ejercicio2] ConstraintLayout básico
(SOLUCIÓN) [Ejercicio 2] ConstraintLayout básico
ConstraintLayout avanzado
Estados en Compose
Qué son los estados
Recomposición
Trabajando con estados
RememberSaveable
Lifecycle
State property
Componentes Text y TextField
Text
TextField
TextField avanzado
OutlinedTextField
State hoisting
State hoisting
Componente Button
Botones
Botones con estados
OutlinedButton
TextButton
Componente Image
Image
Imágenes circulares
Icons
Componente ProgressBar
ProgressBar
ProgressBar avanzado
Componentes de control de selección
Switch
CheckBox
CheckBox con Texto
State hoisting con múltiples CheckBox
CheckBox TriState
RadioButton
State hoisting con múltiples RadioButton
Otros componentes
Card
Surface
BadgeBox
Divider
DropdownMenu
Componente Slider
Slider
SectionSlider
Diálogos en Jetpack Compose
AlertDialog
Diálogo personalizado
Diálogo personalizado avanzado
recursos+dialogo.zip
Diálogo de confirmación
Login básico - Instagram
Creando un Login desde cero - Introducción
recursos+login.zip
JetpackComposeInstagram.zip
Creando el header
Diseño del login - Parte 1
Diseño del login - Parte 2
Diseñando el footer
Personalizando TextFields (Con mostrar/ocultar password)
Personalizando botón del login
[RETO 1] - De tuits va la cosa
Explicación del reto
Iconos
Solución al reto
TwitterChallengeResolution.zip
RecyclerView en Jetpack Compose
Introducción a los RecyclerView
Recyclerview horizontal y vertical
SuperHeroImages.zip
Recomendaciones para los RV
Recyclerview GRID (Cuadrícula)
Controlar el desplazamiento
Cabeceras (Sticky Header)
Componentes en Jetpack Compose
Scaffold
TopAppBar
Snackbar
BottomBar
FloatingActionButton
ModalDrawer
Navegación en Compose
Navegación básica
Navegación like a pro
Navegar con argumentos obligatorios
Navegar con argumentos opcionales
Arquitectura MVVM con Jetpack Compose
¿Qué es MVVM?
JetpackComposeInstagram (1).zip
Implementando MVVM y live data - Parte 1
Implementando MVVM y live data - Parte 2
Introducción Clean Architecture
Arquitectura CLEAN - DATA y DOMAIN con consumo de API
Introducción
JetpackComposeInstagram+retrofit.zip
Montando RETROFIT
Data - Parte 1
Data - Parte 2
Dominio
Preparando el ViewModel
Inyección de dependencias con Dagger Hilt
Preparando Dagger Hilt
JetpackComposeInstagram+hilt.zip
Inyectando Activity y ViewModel
Inyectando data y domain
Animaciones con Jetpack Compose
Animación de color básica
Animación de color avanzada
Animación de tamaño básica
Animación de tamaño avanzada
Animación de visibilidad básica
Animación de visibilidad avanzada
Crossfade
[APP] Tareas
Introducción y creación del proyecto
TodoApp.zip
Implementando Dagger Hilt
Diálogo creador de tareas
Añadiendo y configurando el diálogo
Creando las tareas
Editando las tareas
Borrando las tareas
Implementando Room
Preparando el repositorio
Capa de dominio: Casos de uso
Flows - Preparando el StateFlow
Conectando StateFlow con Screen
Aprendiendo a solucionar errores
Actualizando los items (Room y UI)
Borrando items (Room y UI)
UI Testing
Introducción y preparación al testing de UI
compose-testing-cheatsheet.png
ComposeTesting.zip
Finders
Actions
Assertions
Creando nuestros primeros tests completos
Testeando diálogos
Lección no disponible
Inicia sesión
o
comprar el curso
.