Skip to content

Disponibilidad de Valenbisi en Kotlin, rápido y visual.

License

Notifications You must be signed in to change notification settings

PauLopNun/Geskot

Repository files navigation

🚴‍♂️ GesKot - Aplicación Android de Valenbisi

Version Kotlin Compose API License

GesKot es una aplicación Android moderna desarrollada en Kotlin con Jetpack Compose que permite visualizar en tiempo real la disponibilidad de las estaciones del sistema Valenbisi en Valencia, España.

📱 DESCARGAR APK🚀 Instalación📖 Documentación


✨ Características

🎯 Funcionalidades Principales

  • 📊 Datos en tiempo real: API oficial de Valencia actualizada cada 10 minutos
  • 🗺️ Mapas integrados: OpenStreetMap gratuito, optimizado y sin configuración
  • 🎨 Colores dinámicos: Indicadores visuales intuitivos:
    • 🟢 Verde: Alta disponibilidad (60%+ bicicletas)
    • 🟡 Naranja: Disponibilidad media (30-60% bicicletas)
    • 🔴 Rojo: Baja disponibilidad (<30% bicicletas)
  • 🔍 Búsqueda y filtros avanzados: Por nombre, dirección, bicis disponibles o espacios libres
  • 📍 Información detallada: Disponibilidad, ubicación, estadísticas y mapas
  • ☁️ Sin configuración: Funciona inmediatamente sin API keys
  • 🏷️ Nombres descriptivos: Estaciones identificadas por ubicaciones reales (Xàtiva, Ayuntamiento, etc.)

🔄 Características Técnicas

  • ⚡ Interfaz moderna: Material Design 3 con animaciones fluidas
  • 📱 Diseño adaptativo: Optimizado para todos los tamaños de pantalla
  • 🌐 Conectividad inteligente: Online con fallback offline
  • ♿ Accesibilidad completa: Soporte para lectores de pantalla

📱 Descargar App

🎯 Para Usuarios (Solo descargar)

Download APK

📦 APK Listo: GesKot-v1.0.1-release.apk (11.3 MB) - ¡UI mejorada y más seguro!

  1. Descarga el APK desde GitHub Releases
  2. Habilita "Fuentes desconocidas" en Android
  3. Instala y ¡disfruta pedaleando por Valencia! 🚴‍♂️

🚀 Para Desarrolladores (Compilar código)

Opción 1: APK Directo

./gradlew installDebug

Opción 2: Desde Código

  1. Clonar proyecto:
    git clone https://github.com/tu-usuario/GesKot.git
    cd GesKot
  2. Abrir en Android Studio y ejecutar ▶️

¡La app funciona inmediatamente! Los mapas cargan con OpenStreetMap sin configuración.

🗺️ Mapas: OpenStreetMap

🆓 OpenStreetMap (Único y Optimizado)

  • Gratuito y sin configuración
  • Funciona inmediatamente
  • Datos completos de Valencia
  • Tamaño optimizado y sin botones innecesarios
  • Rendimiento mejorado con menos advertencias HWUI

Nota: Se removió Google Maps para simplificar la experiencia y eliminar dependencias innecesarias. OpenStreetMap ofrece toda la funcionalidad necesaria para ubicar las estaciones.

📱 Pantallas

Pantalla Descripción
🏠 Lista Principal Estaciones con nombres descriptivos y colores según disponibilidad
🔍 Búsqueda y Filtros Búsqueda por nombre/dirección + switches para bicis/espacios disponibles
📋 Detalle Info completa: bicis, espacios, estadísticas y progreso visual
🗺️ Mapa Ubicación exacta con OpenStreetMap optimizado

🛠️ Stack Tecnológico

Core

  • Kotlin 1.9.10 - Lenguaje principal
  • Jetpack Compose 1.5.4 - UI moderna
  • Material Design 3 - Sistema de diseño
  • MVVM - Arquitectura limpia

Conectividad

  • OkHttp 4.12.0 - Cliente HTTP
  • OpenCSV 5.8 - Procesamiento CSV
  • Valencia OpenData API - Fuente de datos oficial

Mapas

  • OpenStreetMap 6.1.17 - Mapas gratuitos optimizados

📦 Compilar APK

Debug (Desarrollo)

./gradlew assembleDebug
# APK en: app/build/outputs/apk/debug/

Release (Distribución)

./gradlew assembleRelease
# APK en: app/build/outputs/apk/release/

🔐 Configuración Keystore (Para Releases)

Para releases de producción, necesitas crear tu propio keystore:

keytool -genkey -v -keystore mi-app.jks -keyalg RSA -keysize 2048 -validity 10000 -alias mi-app-key

Luego descomenta y actualiza en app/build.gradle:

signingConfigs {
    release {
        storeFile file('../mi-app.jks')
        storePassword 'TU_PASSWORD'
        keyAlias 'mi-app-key'
        keyPassword 'TU_PASSWORD'
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
        // ...
    }
}

⚠️ Importante: Los keystores están excluidos del repositorio por seguridad. Crea el tuyo propio para releases.

🏗️ Arquitectura

Patrón MVVM

📡 Valencia API → 📦 Repository → 🧠 ViewModel → 🎨 UI Compose
      ↓              ↑               ↑           ↓
📱 Local Data → StateFlow/LiveData → User Actions

Estructura de Archivos

app/src/main/java/com/geskot/app/
├── 📁 data/
│   ├── model/ - ValenbisiStation.kt, UiState.kt
│   └── repository/ - ValenbisiRepository.kt
├── 📁 presentation/
│   ├── screen/ - MainScreen.kt, DetailScreen.kt
│   ├── components/ - OpenStreetMapView.kt
│   └── viewmodel/ - ValenbisiViewModel.kt
└── 📁 ui/theme/ - Colores, tipografía, temas

🔧 API de Datos

Fuente oficial: Valencia OpenData - Valenbisi

  • Formato: CSV con coordenadas reales
  • Actualización: Cada 10 minutos
  • Campos: Dirección, número, geo_point_2d, disponible, libre, total
  • Fallback: Datos locales si falla la conexión

📋 Requisitos

  • Android 7.0 (API 24) o superior
  • 2GB RAM recomendado
  • Conexión a Internet (opcional, con datos offline)
  • Android Studio Hedgehog para desarrollo

🤝 Contribuir

  1. Fork el repositorio
  2. Crea branch: git checkout -b feature/nueva-funcionalidad
  3. Commit: git commit -m "Descripción"
  4. Push: git push origin feature/nueva-funcionalidad
  5. Abre Pull Request

📄 Licencia

MIT License - Ver archivo LICENSE para detalles.


🚴‍♂️ ¡Disfruta pedaleando por Valencia!

Desarrollado con ❤️ para la comunidad

Valencia Kotlin Compose

About

Disponibilidad de Valenbisi en Kotlin, rápido y visual.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages