Artículos sobre
Cápsulas
actualizados periódicamente
Qué encontrarás sobre Cápsulas
El blog de DevExpert reúne artículos para desarrolladores que quieren mejorar criterio técnico y no solo acumular snippets. Aquí conviven Android, Kotlin, Jetpack Compose, ingeniería de software, inteligencia artificial y desarrollo profesional con un enfoque muy práctico.
La selección prioriza contenidos útiles para tomar mejores decisiones: cómo diseñar mejor software, cómo trabajar con herramientas modernas y cómo crecer como profesional sin perder profundidad técnica.
Temas clave
- Android, Kotlin y Jetpack Compose
- Ingeniería de software y calidad
- IA aplicada al desarrollo
- Carrera y productividad técnica
Pensado para
- Desarrolladores que buscan mejorar criterio técnico
- Equipos que necesitan recursos accionables
- Profesionales que quieren unir profundidad y productividad
No se encontraron resultados
Intenta con otra palabra clave o
¿El fin de los IDEs y los CLIs agénticos? Llegan los ADEs
Mi IA escribió código basura. Y fue exactamente lo que buscaba
Cómo he montado un sistema de desarrollo autónomo con agentes de IA
Skills: El motor oculto de los agentes (y por qué no necesitas un 'bot' mágico)
¿Es necesario hacer formaciones sobre el uso de Inteligencia Artificial?
Duelo de LLMs: Gemini 3 Flash vs Opus 4.5 vs GPT-5.2-Codex vs GLM-4.7
Cerrando el círculo de la IA en Desarrollo de Software
Cómo conseguir la localización amplia en Android
Cómo pedir permisos en Jetpack Compose
Cómo poner la StatusBar transparente en Jetpack Compose
'T & Any' en Kotlin: Tipos definitivamente no nulables
¿Qué es Kotlin Multiplataforma?
5 trucos de Kotlin para escribir código más eficiente en Android
Test Driven Development [TDD] - Qué es y cómo aplicarlo
Las reglas FIRST de los tests
Cómo crear un backend en Kotlin usando Ktor
Cómo simular una base de datos reactiva en Room con Fakes
¿Qué son los dobles de test?
Flows de Kotlin para implementar búsquedas en tiempo real
Kata del TicTacToe en Kotlin
Descargar una página web en Android con OkHttp
Usar Ktor Client para hacer peticiones HTTP en Android
Cómo crear un delegado de propiedad personalizado en Kotlin
Por qué el smart cast de Kotlin no funciona con properties mutables
Usar Kotlin Script para ejecutar scripts por consola
Cómo aprender las bases de Flutter si ya conoces Jetpack Compose
¿Single activity o varias activities en Android? Pros y contras
Cómo crear vistas distintas en un Adapter de RecyclerView según el tipo de datos
Cómo almacenar tipos de datos personalizados en Room
ConcatAdapter en Android para crear listas personalizadas
Cómo utilizar two-way data binding en aplicaciones Android
¿Cuál es la diferencia entre un algoritmo y un patrón de diseño?
Cómo hacer migraciones de base de datos con Room y Kotlin
Creando relaciones entre tablas con Room y Kotlin: una guía paso a paso
Cómo mejorar la organización y mantenibilidad de tu código Android con la arquitectura MVI
Inyección de dependencias con Koin en proyectos Android con Kotlin
Utilizando Mockito para simular dependencias en proyectos de Kotlin
Memento - Patrones de diseño
Observer - Patrones de Diseño
State - Patrones de Diseño
Strategy - Patrones de Diseño
Template Method - Patrones de diseño
Visitor - Patrones de diseño
Adapter - Patrones de Diseño
Bridge - Patrones de Diseño
Builder - Patrones de Diseño
Chain of Responsibility - Patrones de Diseño
Command - Patrones de Diseño
Composite - Patrones de Diseño
Decorator - Patrones de Diseño
Facade - Patrones de Diseño
Flyweight - Patrones de Diseño
Interpreter - Patrones de Diseño
Iterator - Patrones de Diseño
Mediator - Patrones de Diseño
Prototype - Patrones de Diseño
Proxy - Patrones de diseño
Abstract Factory - Patrones de diseño
Factory Method - Patrones de diseño
Singleton - Patrones de diseño
Varianza en Kotlin - Gana la batalla a los genéricos
Clean Code: 35 claves para dominarlo
3 formas de pasar varios Listeners a un RecyclerView
Contracts en Kotlin: Haz más listo al compilador
Clases y constructores en Kotlin con Android Studio
Temas, colores, tipografías y formas en Jetpack Compose
Usando Cards de Material Design en Jetpack Compose
Navegación en Jetpack Compose con Navigation Compose
5 consejos para estructurar el código en Jetpack Compose
Tu App Android con diseño Material con AppBar y Scaffold en Jetpack Compose
El estado en Jetpack Compose: Cómo funciona y cómo sobrevivir al repintado
Listas y Grids en Jetpack Compose
Cargar imágenes e iconos en Jetpack Compose
Text en Jetpack Compose: da vida a tus textos
Modifiers: Personaliza cualquier vista en Jetpack Compose
Layouts en Jetpack Compose: Estructura la UI con Box, Column y Row
Qué es Jetpack Compose y cómo crear tu primer proyecto en Android
Aprender Android Studio 4.0 desde Cero [Curso Android con Kotlin]
Los 7 mejores cursos online para aprender Android desde cero en 2021
Kotlin 1.5.0 : Las 5 novedades que puedes empezar a usar hoy
Principios SOLID: Qué son, cuáles, y qué beneficios aporta usarlos
¿Qué es Kotlin y para qué sirve?
Unidirectional Data Flow: Qué es y cómo funciona en Android
2 formas de recolectar Flows en la UI que SÍ funcionan
Cómo hacer tests de Corrutinas y Flows - Paso a Paso
Modularización en Android: Capas vs Features, con Nicolás Patarino [+ Training Gratis]
Convertir cualquier callback en un Flow con CallbackFlow
StateFlow, el sustituto natural de LiveData
Simplifica el código de RecyclerView con ListAdapter
Animaciones fáciles en RecyclerView con DiffUtil
Cómo organizar los elementos de un RecyclerView con LayoutManager
Listas de elementos en Android con RecyclerView: Tutorial a fondo
Room con Flow, y un ejemplo de paginación
Cargar imágenes en Android desde una URL [Tutorial Glide]
SavedStateHandle en MVVM: Haz que tu estado sobreviva siempre de forma sencilla
Kotlin 1.4.20: Plugin Parcelize y adiós a Kotlin Android Extensions
Usando Flow en un proyecto Android
7 razones por las que te cuesta tanto hacer tests
Custom Views: Vistas compuestas con ViewGroup
Flows en Kotlin: Todo lo que necesitas saber
Custom Views en Android: Extendiendo una vista existente
Temas y estilos en Android
Reacciono a Kotlin Multiplatform Mobile
Lanzar una acción al hacer click en un botón en Android
Cómo diseñar interfaces de usuario en Android: Views y Layouts
Qué es una Activity, el componente más importante de una App Android
Secuencias de Kotlin (Sequences): Qué son y cómo usarlas
Cómo activar la Depuración USB en tu teléfono Android
Kotlin 1.4 - 10 novedades sobre la nueva versión del lenguaje
Emulador de Android (Dispositivo Virtual): Cómo configurarlo
Corrutinas en Kotlin 1.3: funciones de suspensión, contexts, builders y scopes
Programación Reactiva: Qué es, para qué sirve y cómo usarla en Android
Room, la librería de Base de datos de Android
Permisos en Android 11
Cómo usar Kotlin con Gradle [Kotlin DSL]
25 cosas que no sabías de Kotlin
Dagger Hilt: Cómo hacer inyección de dependencias en Android
Novedades Android 11 para Desarrolladores
View BINDING - El método DEFINITIVO para acceder a las vistas en ANDROID??
KOTLIN vs JAVA: Features que dejan a JAVA por los SUELOS ? | Devexperto |2020
✅ Fases en la carrera del DESARROLLADOR/A Android ?
?? TESTING en Android ► ¿Qué es? ? TIPOS de tests
Arquitecturas Android en 2020 ► MVP, MVVM y Clean Architecture [+GUÍA GRATIS ?]
MVP para Android: Cómo organizar la capa de presentación
MVVM con Architecture Components: Una guía paso a paso para los amantes de MVP
Clean architecture para Android con Kotlin: una visión pragmática para iniciarse
Tú me lo has pedido: Kotlin para Desarrolladores Android... ¡Esta vez en streaming!
Lleva Realm al siguiente nivel con Kotlin
12 razones por las que usar Kotlin para Android desde hoy (KDA 30)
Cómo usar código Kotlin desde Java: empieza a usar Kotlin desde hoy (KDA 29)
Sealed classes en Kotlin: los enums con superpoderes (KDA 28)
Los objects en Kotlin: Crea singletons seguros en una línea (KDA 27)
Interfaces en Kotlin. ¿Quién dijo que las interfaces no pueden tener código? (KDA 26)
Bases de datos en Android con Anko y Kotlin: SQLite nunca fue tan sencillo (KDA 25)
Diálogos y alertas en Android usando Anko y Kotlin (KDA 24)
Cómo mockear clases finales en Kotlin con Mockito 2 (KDA 23)
Tests unitarios en Android con Kotlin (KDA 22)
Cómo conectar tu aplicación de Android a una API con Retrofit y Kotlin
Cómo usar Dagger 2 en Android con Kotlin (KDA 20)
Di adiós a NullPointerException. Trabajando con nulos en Kotlin (KDA 19)
Cómo funcionan las lambdas en Kotlin (KDA 18)
Sobrecarga de operadores en Kotlin. Añade operaciones estándar a cualquier clase (KDA 17)
Escribiendo un Adapter de RecyclerView en Kotlin (KDA 16)
Delegación de propiedades en Kotlin: asigna valores en Android sin tener el contexto (KDA 15)
Tipos reified en Kotlin: cómo utilizar el tipo dentro de una función (KDA 14)
Utilizando la expresión when en Kotlin, el switch supervitaminado (KDA 13)
Funciones Ninja en Kotlin. Entendiendo la potencia de los genéricos (KDA 12)
Operaciones funcionales con colecciones en Kotlin (KDA 11)
Data Classes en Kotlin: ahorra decenas de líneas de código (KDA 10)
Usando Anko para ejecutar tareas en segundo plano con Kotlin en Android (KDA 09)
Funciones de extensión en Kotlin: Extiende el Framework de Android (KDA 08)
Lambdas en Kotlin, y cómo simplifican la tarea en Android (KDA 07)
Custom Views en Android con Kotlin: Cómo construirlas (KDA 06)
Integraciones de Kotlin con el SDK de Android (KDA 05)
Kotlin Android Extensions: Adiós al findViewById (KDA 04)
Clases en Kotlin: máxima potencia con el mínimo esfuerzo (KDA 03)
Variables en Kotlin, diferencias con Java. var vs val (KDA 02)
Crea tu proyecto Android con Kotlin desde cero (KDA 01)
Aprende 3 lenguajes en 2 meses ¿Te sumas al reto?
Herencia vs Composición ¿Tienes claro cuál es el rival más débil?
Ley de Demeter: No aceptes caramelos de desconocidos
Patrones de diseño de software
Testing nivel 3: ¡No se cómo hacer mi primer test!
Testing nivel 2: ¿Qué hace que un test sea un Test?
Testing nivel 1: un mundo de sensaciones por descubrir
Arquitectura de software y sus beneficios
Introducción a Domain Driven Design (DDD): Parte 2
Principio de Inversión de Dependencias (SOLID 5ª parte)
Introducción a Domain Driven Design (DDD): Parte 1
Principio de Segregación de Interfaces (SOLID 4ª parte)
Principio de sustitución de Liskov (SOLID 3ª parte)
Principio Open/Closed (SOLID 2ª parte)
Principio de responsabilidad única (SOLID 1ª parte)
Preguntas frecuentes sobre Cápsulas
¿Qué tipo de contenidos publica el blog de DevExpert?
Publica tutoriales, análisis y recursos para desarrolladores sobre Android, Kotlin, ingeniería de software, IA y crecimiento profesional.
¿El blog está pensado solo para principiantes?
No. Hay contenido útil tanto para perfiles que empiezan como para desarrolladores y equipos que quieren mejorar decisiones técnicas y procesos.