Ir al contenido principal

Entradas

Mostrando entradas de 2025

Usando Ktorfit para Consumir API

Usando Ktorfit para Consumir API con Jetpack Compose En el desarrollo Android moderno, consumir APIs REST es una tarea diaria. Si bien Retrofit ha sido el estándar por mucho tiempo, alternativas como Ktorfit están ganando popularidad. Ktorfit, construido sobre Ktor Client , ofrece una forma de definir APIs de manera declarativa, muy similar a Retrofit, pero aprovechando el poder y la flexibilidad de Ktor. En este post, veremos cómo construir una app que muestra la lista de repositorios públicos del usuario de GitHub enelramon . Usaremos Ktorfit para las llamadas a la API, un patrón Repositorio , un ViewModel con StateFlow para gestionar el estado, y Jetpack Compose para la interfaz de usuario. ¿Por qué Ktorfit, Repositorio, ViewModel y Jetpack Compose? Ktorfit: Permite definir APIs REST de forma type-safe usando anotaciones, igual que Retrofit, pero utiliza Ktor Client como motor de red subyacente. Esto lo hace una opción natural si ya usas Ktor en tu proyecto o bu...

Usando Retrofit para Consumir API

Usando Retrofit para Consumir API La comunicación con servicios web y APIs REST es fundamental en el desarrollo Android. Retrofit simplifica las llamadas de red, Coroutines manejan la asincronía, y un patrón Repositorio/ViewModel estructura el acceso a datos y la lógica de negocio. Para la UI, Jetpack Compose ofrece un enfoque moderno y declarativo para construir interfaces de usuario nativas con Kotlin. En este post, construiremos una app que muestra la lista de repositorios públicos del usuario de GitHub enelramon . Utilizaremos Retrofit para la llamada a la API, un Repositorio para abstraer la fuente de datos, un ViewModel con StateFlow para gestionar el estado, y Jetpack Compose para dibujar la interfaz de usuario de forma reactiva. ¿Por qué Retrofit, Repositorio, ViewModel y Jetpack Compose? Retrofit: Simplifica las llamadas HTTP, maneja la conversión de JSON y se integra perfectamente con Coroutines. Repositorio: Abstrae la fuente de datos (red). M...

Persistencia de Datos en Android Usando Realm

Persistencia de Datos en Android Usando Realm Cuando hablamos de persistencia de datos local en Android, Room sobre SQLite es la solución estándar de Jetpack. Sin embargo, existen alternativas poderosas con enfoques diferentes. Una de las más destacadas es Realm , una base de datos móvil diseñada desde cero para ser rápida, fácil de usar y orientada a objetos. A diferencia de Room/SQLite que son relacionales, Realm te permite trabajar directamente con tus objetos Kotlin, eliminando la necesidad de mapeo objeto-relacional (ORM). Con el moderno Realm Kotlin SDK , diseñado para Kotlin Multiplatform y Android, integrar Realm en tus proyectos es más sencillo que nunca. Si buscas una base de datos reactiva, con una API intuitiva y un enfoque centrado en objetos, ¡Realm merece tu atención! ¿Por qué elegir Realm? Realm se diferencia de las soluciones basadas en SQLite en varios aspectos clave: Verdaderamente Orientado a Objetos: Define tus modelos como simples clases Kotlin...

Persistencia de Datos Local en Android con Room

Persistencia de Datos Local en Android con Room Casi todas las aplicaciones Android necesitan almacenar datos localmente, ya sea para funcionar sin conexión, guardar preferencias complejas, o manejar grandes cantidades de información estructurada. Android utiliza SQLite como motor de base de datos subyacente, pero trabajar directamente con las APIs de SQLite puede ser verboso y propenso a errores. Aquí es donde entra Room , la librería de persistencia recomendada por Google y parte de Android Jetpack. Room actúa como una capa de abstracción sobre SQLite, facilitando enormemente el acceso a la base de datos mientras aprovecha toda la potencia de SQLite. Si quieres una forma robusta, eficiente y moderna de manejar bases de datos locales en tu app Android, ¡Room es la herramienta que necesitas! ¿Por qué elegir Room? Room no es solo una capa de abstracción, ofrece ventajas clave: Verificación de Consultas SQL en Tiempo de Compilación: Room valida tus consultas SQL mien...

Inyección de Dependencias usando Koin

Inyección de Dependencias usando Koin Si desarrollas aplicaciones Android con Kotlin, seguramente has oído hablar de la Inyección de Dependencias (DI) . Es un patrón de diseño crucial que nos ayuda a construir aplicaciones más flexibles, testeables y mantenibles, desacoplando la creación de objetos de su uso. Frameworks como Dagger o Hilt son muy potentes, pero a veces pueden parecer complejos, especialmente para proyectos más pequeños o para quienes se inician en DI. Aquí es donde entra Koin : una alternativa pragmática y ligera escrita puramente en Kotlin, diseñada para ser sencilla y fácil de integrar. ¿Quieres simplificar la gestión de dependencias en tu app, ya sea con Views tradicionales o con Jetpack Compose? ¡Sigue leyendo! ¿Por qué elegir Koin? Koin se ha ganado popularidad por varias razones: Simplicidad: Su API, basada en un DSL (Domain Specific Language) de Kotlin, es muy intuitiva y fácil de aprender. No requiere anotaciones complejas ni generación de códig...

Inyección de Dependencias usando Hilt

Inyección de Dependencias usando Hilt La Inyección de Dependencias (DI) es fundamental para construir aplicaciones Android robustas, escalables y fáciles de testear. Mientras que existen varias librerías para lograrlo, Hilt se ha establecido como la solución recomendada y estándar de Google. Construido sobre la potencia de Dagger, Hilt simplifica enormemente la implementación de DI en Android. Si buscas una forma estandarizada, con menos boilerplate que Dagger puro y con excelente integración con los componentes de Android Jetpack, Hilt es la respuesta. ¡Descubramos cómo funciona! ¿Por qué elegir Hilt? Hilt ofrece ventajas significativas para el desarrollo Android: Estándar de Android: Es la librería DI recomendada por Google, lo que asegura buena documentación, soporte y alineación con las prácticas modernas de Android. Menos Boilerplate (vs. Dagger): Reduce drásticamente el código de configuración necesario en comparación con usar Dagger directamente en Andr...

De Visual Studio a Android Studio: Gestión segura de secretos con Secrets Gradle Plugin

De Visual Studio a Android Studio: Gestión segura de secretos con Secrets Gradle Plugin Todo comenzó mientras trabajaba en un proyecto .NET en Visual Studio. Una de las herramientas que más valoré fue su sistema para manejar secretos: poder almacenar claves API y credenciales de manera segura, sin exponerlas en el código fuente, me daba tranquilidad. Cuando cambié de contexto y comencé a trabajar en un proyecto de Android con Kotlin, me pregunté: ¿Cómo puedo lograr algo similar aquí? No pasó mucho tiempo antes de que encontrara la respuesta: el Secrets Gradle Plugin . El problema: Secretos expuestos en el código fuente Si alguna vez has trabajado con claves API o credenciales, sabes lo importante que es mantenerlas seguras. Sin embargo, es común encontrar proyectos donde estas claves se almacenan directamente en el código o en archivos de configuración que terminan siendo expuestos en el control de versiones. Esto no solo es un riesgo de seguridad, sino también una mala prác...