Admin Finance es una aplicacion de gestion financiera moderna construida desde cero con Kotlin Multiplatform (KMP) para Android y Windows Desktop. Su objetivo es demostrar las capacidades del ecosistema Kotlin en el desarrollo de aplicaciones empresariales reales con arquitecturas avanzadas.
¿Que es Admin Finance?
Una aplicacion de escritorio y movil para gestionar transacciones financieras (ingresos, egresos y transferencias) con estadisticas en tiempo real, sincronizacion offline entre dispositivos y una interfaz accesible que cumple con las normas WCAG AA.
El proyecto fue pensado como un caso de estudio para tecnologias modernas de desarrollo Android y multiplataforma, poniendo en practica patrones como Clean Architecture, Repository Pattern y Event Sourcing a nivel de sincronizacion.
Stack Tecnologico
Lenguaje y Framework
- Kotlin — Lenguaje principal en todas las plataformas
- Kotlin Multiplatform — 100% de codigo comun entre Android y Desktop
- Jetpack Compose Multiplatform — UI nativa declarativa para ambos targets
- Material Design 3 — Componentes nativos con soporte para tema dinamico
Arquitectura y DI
- Koin — Inyeccion de dependencias declarativa con scope gestionado
- ViewModel + StateFlow — Estado reactivo en la capa de presentacion
- Coroutines + Flow — Asincronia estructurada en toda la pila
Datos y Persistencia
- SQLDelight — Base de datos SQLite con generacion de tipos a partir de schemas SQL
- Repository Pattern — Abstraccion total del almacenamiento subyacente
- DataStore Preferences — Preferencias del usuario sincronizadas
Networking y Sincronizacion
- TCP Socket — Comunicacion peer-to-peer directa entre dispositivos
- Protocolo personalizado — Mensajes serializados en formato propio para deteccion de dispositivos y transferencia de datos
- Sincronizacion Merge — Algoritmo de fusion basado en timestamps para resolver conflictos
Herramientas de Desarrollo
- Gradle (KTS) — Construccion con Kotlin DSL
- JDK 11+ — Compilacion y ejecucion multiplataforma
- MockK + Turbine — Testing unitario con 86+ tests
Caracteristicas Principales
- Dashboard en tiempo real — Graficos de barras tridimensionales, grafico de linea para tendencias, resumen de ingresos/egresos/transferencias
- Gestion de transacciones — CRUD completo con categorias de colores, totales por tipo y cabeceras de fecha
- Gestion de empresas — Multi-tenancy con creacion, edicion y seleccion de companias
- Exportacion de IVA — Exportacion estructurada de facturas e ingresos por periodo para contabilidad
- Horas diarias — Registro de tiempo trabajado con ajustes personalizables
- Sincronizacion P2P — Sincronizacion offline-first entre dispositivos sin servidor central
- Accesibilidad WCAG AA — Navegacion por teclado, soporte para lectores de pantalla, roles ARIA, contraste adecuado
- Modo oscuro — Deteccion automatica del sistema con opcion manual
- Responsive — Adaptado para telefonos, tabletas y desktop
Objetivos del Proyecto
Admin Finance busca demostrar que es posible construir aplicaciones empresariales robustas con Kotlin Multiplatform, aprovechando el 100% del codigo de logica de negocio y datos entre plataformas, mientras se mantienen interfaces nativas optimizadas para cada dispositivo.
Ademas, el proyecto pone en practica conceptos avanzados como sincronizacion peer-to-peer, arquitectura offline-first y accesibilidad, posicionandolo como un ejemplo completo de desarrollo de aplicaciones modernas.