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.