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.
- 📊 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.)
- ⚡ 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
📦 APK Listo: GesKot-v1.0.1-release.apk (11.3 MB) - ¡UI mejorada y más seguro!
- Descarga el APK desde GitHub Releases
- Habilita "Fuentes desconocidas" en Android
- Instala y ¡disfruta pedaleando por Valencia! 🚴♂️
./gradlew installDebug- Clonar proyecto:
git clone https://github.com/tu-usuario/GesKot.git cd GesKot - Abrir en Android Studio y ejecutar
▶️
¡La app funciona inmediatamente! Los mapas cargan con OpenStreetMap sin configuración.
- ✅ 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.
| 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 |
- Kotlin 1.9.10 - Lenguaje principal
- Jetpack Compose 1.5.4 - UI moderna
- Material Design 3 - Sistema de diseño
- MVVM - Arquitectura limpia
- OkHttp 4.12.0 - Cliente HTTP
- OpenCSV 5.8 - Procesamiento CSV
- Valencia OpenData API - Fuente de datos oficial
- OpenStreetMap 6.1.17 - Mapas gratuitos optimizados
./gradlew assembleDebug
# APK en: app/build/outputs/apk/debug/./gradlew assembleRelease
# APK en: app/build/outputs/apk/release/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-keyLuego 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.
📡 Valencia API → 📦 Repository → 🧠 ViewModel → 🎨 UI Compose
↓ ↑ ↑ ↓
📱 Local Data → StateFlow/LiveData → User Actions
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
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
- Android 7.0 (API 24) o superior
- 2GB RAM recomendado
- Conexión a Internet (opcional, con datos offline)
- Android Studio Hedgehog para desarrollo
- Fork el repositorio
- Crea branch:
git checkout -b feature/nueva-funcionalidad - Commit:
git commit -m "Descripción" - Push:
git push origin feature/nueva-funcionalidad - Abre Pull Request
MIT License - Ver archivo LICENSE para detalles.