Control temporal minimalista para Android — Bloqueo real que funciona
Características • Instalación • Uso • FAQ
TimeLock es una aplicación Android de control de tiempo de pantalla sin trucos, sin gamificación, sin estadísticas innecesarias. Solo restricción directa y efectiva.
Estado actual: pre-release beta en GitHub (tag v26.03.219-beta.1, 15 de marzo, 2026).
A diferencia de otras apps de "digital wellbeing", TimeLock:
- Realmente bloquea: No puedes cancelar el bloqueo
- 100% local: Sin tracking, sin cuentas, sin internet
- Ligera: <2% batería/día, <30MB RAM
- Flexible: Cuotas diarias/semanales + bloqueos por horario/fecha
- Protegida: PIN no recuperable (deliberadamente)
Filosofía: Menos es más. TimeLock es para personas que buscan auto-control real, no una app más de "motivación".
- Cuotas diarias: 1-480 minutos por app, mismo tiempo o diferente por día
- Cuotas semanales: Límite total semanal con reseteo configurable
- Bloqueo automático: Overlay visual + redirección forzada a HOME
- Precisión: Tracking basado en UsageStats API nativa de Android
- Por horario: Define rangos (ej: 22:00-06:00) con días de la semana
- Por fecha: Bloquea en períodos específicos con hora de inicio/fin
- Vencimiento opcional: Restricciones que expiran automáticamente
- Templates: Guarda configuraciones para reutilizar
- Modo Administrador: Protección con PIN de 4 dígitos (PBKDF2 + salt; legacy SHA-256 migrado al verificar)
- Bloqueo temporal: Activa modo admin por tiempo limitado sin PIN
- Anti-bypass: 3 intentos fallidos → bloqueo de 5 minutos
- Sin recuperación: Si olvidas tu PIN, debes reinstalar (decisión consciente)
- Material Design 3: UI moderna con tema claro/oscuro
- Notificaciones inteligentes: Píldoras flotantes o notificaciones normales
- Widget: Lista rápida de restricciones sin abrir la app
- Export/Import: Backup completo de tu configuración en JSON
- Modo ahorro de batería: Reduce frecuencia de tracking (2% → 0.5% batería/día)
- Cache inteligente: Iconos en memoria según disponibilidad de RAM
- Limpieza automática: Purga datos antiguos cada 24h
- Updates desde GitHub: Actualización manual con rollback
- Android 10+ (API 29+)
- Dispositivo físico (emuladores tienen limitaciones con UsageStats)
- ~50MB espacio de almacenamiento
| Permiso | Criticidad | Propósito |
|---|---|---|
| Usage Stats | CRÍTICO | Tracking de uso de apps |
| Accessibility Service | CRÍTICO | Bloquear apps y mostrar overlay si está disponible |
| Display over other apps | RECOMENDADO | Notificaciones visuales (píldora) |
| Device Admin | OPCIONAL | Protección contra desinstalación |
Nota: Si tu dispositivo bloquea "Mostrar sobre otras apps", TimeLock usa notificaciones normales + bloqueo lógico
- Ve a Releases
- Descarga el APK correcto para tu CPU. En cada release hay varios APKs:
arm64-v8a(recomendado),armeabi-v7a(32-bit),x86_64(emuladores/Intel). - Instala en tu dispositivo
- Sigue el asistente de permisos en la app
# 1. Clonar repositorio
git clone https://github.com/johnivansn/timelock.git
cd timelock
# 2. Instalar dependencias
flutter pub get
# 3. Conectar dispositivo Android
# Verificar: flutter devices
# 4. Compilar e instalar
flutter run --releaseRequisitos de desarrollo:
- Flutter SDK (stable channel)
- Android Studio / VS Code
- JDK 17+
- Gradle 8.14+
Se usan goldens para validar consistencia visual en distintos tamaños.
Generar / actualizar goldens:
flutter test --update-goldensUbicación:
- Tests:
test/goldens/ - Imágenes generadas:
test/goldens/(mismo nombre del test)
- Permisos: La app te guía para habilitar permisos críticos
- Apps: Selecciona apps que quieres controlar
- Límites: Define cuotas diarias/semanales o bloqueos directos
- Opcional: Configura PIN para proteger cambios
Instagram: 30 minutos/día
→ Uso alcanza 30 min
→ Bloqueo automático hasta medianoche (o próximo reseteo semanal)
TikTok: Bloqueado de 22:00 a 06:00 (Lun-Vie)
→ Son las 21:55
→ Notificación: "TikTok se bloqueará en 5 min"
→ Son las 22:00
→ App bloqueada hasta las 06:00
YouTube: Bloqueado del 10-15 Feb (08:00-20:00)
Etiqueta: "Semana de exámenes"
→ Durante ese período (en horario definido)
→ App completamente bloqueada
Con overlay habilitado:
- Pantalla de bloqueo no cancelable
- Countdown de 5 segundos
- Redirección automática a HOME
Sin overlay (fallback):
- Notificación normal con mensaje de bloqueo
- Redirección inmediata a HOME
- Monitorea tiempo de uso localmente usando Android UsageStats API
- Almacena configuración en base de datos SQLite local
- Bloquea apps mediante AccessibilityService sin enviar datos
- No requiere cuenta ni login
- No envía datos a servidores externos
- No tiene tracking ni analytics
- No requiere conexión a internet (excepto para updates manuales)
- Hash PBKDF2 (irreversible) con salt aleatorio
- Legacy SHA-256 se migra automáticamente al verificar
- Sin recuperación posible (deliberado)
- Almacenado localmente en Room DB
¿Puedo evitar el bloqueo desinstalando la app?
Sí, con esfuerzo. TimeLock usa Device Admin (opcional) que dificulta la desinstalación, pero no es infalible. Esto es deliberado: TimeLock es para auto-control, no control parental estricto.
¿Qué pasa si olvido mi PIN?
Debes reinstalar la app. No hay forma de recuperarlo. Esto es una decisión consciente de diseño para mantener la seriedad del compromiso.
¿Por qué necesita Accessibility Service?
Para detectar qué app está en primer plano y mostrar el overlay de bloqueo. Sin este permiso, la app solo puede trackear uso pero no puede bloquear efectivamente.
¿El bloqueo puede fallar?
En casos extremos:
- Launchers muy agresivos (MIUI, ColorOS) pueden bloquear overlays
- UsageStats tiene ~30s de latencia (usuario podría usar 30s extra)
- Modo desarrollador puede desactivar servicios
Solución: TimeLock funciona mejor en Android stock o launchers estándar.
¿Consume mucha batería?
No. Consumo promedio:
- Modo normal: ~1.5% batería/día
- Modo ahorro: ~0.5% batería/día
¿Puedo exportar mi configuración?
Sí. Export/Import en formato JSON incluye:
- Restricciones (cuotas diarias/semanales)
- Horarios
- Bloqueos por fecha
- Templates
No incluye: PIN, contadores de uso diario.
- Cuotas diarias y semanales
- Bloqueos por horario
- Bloqueos por fecha con hora
- Vencimiento opcional de restricciones
- Modo admin con PIN y bloqueo temporal
- Material Design 3 con variantes de tema
- Widget de lista (scrolleable)
- Export/Import JSON
- Optimización de batería
- Updates desde GitHub Releases
- Modo Familia (múltiples perfiles)
- Backup en nube opcional (privacy-first)
- Logs exportables para debugging
- Anti-bypass avanzado (detección de side-loading)
- Bloqueo por WiFi (demasiado complejo)
- Gamificación (anti-filosofía del proyecto)
- Estadísticas detalladas (minimalismo)
Actualmente: Proyecto en desarrollo individual. No se aceptan contribuciones externas en esta etapa.
Si encuentras bugs o tienes sugerencias:
- Abre un Issue
- Describe el problema con detalle
- Incluye logs si es posible (
adb logcat)
MIT License - Ver LICENSE para más detalles.
En resumen: puedes usar, modificar y distribuir este software, incluyendo uso comercial, siempre que incluyas la licencia y el aviso de copyright.
- Flutter Team: Por el excelente framework
- Android Open Source Project: Por UsageStats API y AccessibilityService
- Material Design: Por las guías de diseño
- Issues: GitHub Issues
- Discusiones: GitHub Discussions
TimeLock — Menos apps, más vida