Skip to content

About

Scrollómetro — mide en cm, metros y km lo que tu pulgar scrollea en TikTok, Instagram y compañía. Android, mascotas, logros y una barra de dopamina de broma.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Scrollómetro: un pulgar con lentes pixelados

Scrollómetro

¿Cuánto mide tu scroll? 📏

Una app para Android que cuenta en centímetros, metros y kilómetros todo lo que tu pulgar recorre en TikTok, Instagram, YouTube y compañía. Con mascotas que sufren contigo, logros absurdos y una barra de dopamina 100% científica de broma.

Descargar APK

Sitio Android 7+ Expo 58 Licencia PolyForm Strict

Pantalla Hoy  Logros  Widgets en el escritorio  Bienvenida con la explicación de privacidad


Instalación

  1. Descarga Scrollometro.apk desde el teléfono y ábrelo.
  2. Abre la app: la bienvenida te explica todo y te lleva a Accesibilidad → Apps instaladas → Scrollómetro → activar.
  3. Si Android dice «Controlado por la configuración restringida»: Info de la app → menú ⋮ → Permitir ajustes restringidos, y vuelve a activarlo.

Requiere Android 7.0 o superior.

¿Por qué Play Protect se pone nervioso? Scrollómetro usa el servicio de Accesibilidad, que es el único camino que da Android para saber que hubo scroll en otras apps. Es el mismo permiso que usan las apps de fraude, así que Google revisa con lupa toda app que lo pide y no viene de la Play Store. Por eso todo el código está aquí, abierto: puedes ver exactamente qué hace y qué no (Privacidad).

Actualizaciones: la app revisa este repositorio al abrirse y, si hay versión nueva, te la ofrece con un toque. Android solo la instala si viene firmada con la misma llave que la que ya tienes.

Si tenías la 0.1 o la 0.2 (firmadas con la llave de prueba), desinstálalas una vez antes de instalar la 0.3. Desde la 0.3 todo se actualiza solo.

Qué hace

  • Mide de verdad: suma cuántos píxeles se movió la pantalla en cada scroll y los convierte a centímetros con la densidad real de tu pantalla (ydpi).
  • Notificación fija con el total del día, tus apps más scrolleadas y una frase de tu mascota.
  • Tres mascotas con cuatro estados según lo que llevas: el pulgar (fresquito → zombie 🧟), el caracol (impresionado → llorando en baba) y el cerebro (fresco → frito en sartén 🍳).
  • Equivalencias absurdas: canchas de fútbol, micros en fila, Gran Torre Santiago, el Everest, el camino a Puerto Montt, lo que tardaría un caracol…
  • Barra de dopamina según tu ritmo de los últimos 10 minutos. Es de broma, no mide nada de tu cerebro.
  • 32 logros, desde «Primer toque» (1 cm) hasta «Hasta la Luna» (384.400 km).
  • Meta diaria que te reta cuando te pasas.
  • Widgets 2×2 y 4×2 para el escritorio.
  • Tarjeta para historias (1080×1920) para presumir o avergonzarte.
  • Detalle por app: TikTok, Instagram, YouTube, X… cada una con su distancia.
  • Ranking mundial (opcional): el Top 25 de pulgares, con tu apodo y tu mascota.

Privacidad

Scrollómetro ve cuándo se mueve tu pantalla, así que esto importa. Lo que hay, verificable en el código:

Dónde
No lee lo que hay en pantalla. El servicio se declara con canRetrieveWindowContent="false": Android no le entrega textos, imágenes ni nada del contenido. scroll_tracker_service.xml
Solo escucha dos tipos de evento: «hubo scroll» y «cambió la pantalla». Del evento usa el nombre de la app y cuántos píxeles se movió. ScrollAccessibilityService.kt, ScrollStore.kt
Todo queda en tu teléfono: totales por día y por app en SharedPreferences. Sin cuentas, sin servidor propio, sin analítica, sin anuncios. Lo único que puede salir es lo del ranking, y solo si te unes (ver abajo). ScrollStore.kt
Actualizaciones: lee el último release público de este repo y descarga el APK si hay versión nueva. No envía ningún dato tuyo. src/lib/updates.ts, Updater.kt
Ranking opcional (Top 25): solo si te unes desde Logros, se envía a dreamlo.com tu apodo (con un número), tus metros totales y tu mascota. Va por HTTP sin cifrar porque dreamlo gratis no tiene HTTPS; es la única excepción (el resto de la app exige HTTPS). «Salir del ranking» borra tu entrada. Leaderboard.kt, scrollometro_network_security.xml
Actualizaciones verificadas: solo se descargan desde https://github.com/, se revisa que el APK sea de esta app y de una versión mayor, y Android lo rechaza si no viene firmado con la misma llave. Updater.kt
Permisos mínimos: Accesibilidad, notificaciones, internet (GitHub para actualizaciones y, si te unes, dreamlo para el ranking) e instalar actualizaciones. Se bloquean explícitamente dibujar sobre otras apps, almacenamiento y vibración. app.json

Lo apagas cuando quieras en Ajustes → Accesibilidad → Scrollómetro.

Cómo mide

Android avisa a los servicios de accesibilidad cada vez que una vista hace scroll. Scrollómetro usa, en orden:

  1. Delta (scrollDeltaY, Android 9+): los píxeles exactos que se movió. Es lo más preciso y lo que usan Instagram y la mayoría de las apps.
  2. Posición (scrollY): la diferencia con la posición anterior, para vistas que informan dónde están y no cuánto se movieron.
  3. Índice (fromIndex): en feeds que pasan de a una pantalla, cada elemento ≈ alto de pantalla ÷ elementos visibles.

El scroll horizontal (carruseles, historias) no cuenta. Los píxeles se pasan a cm con px ÷ ydpi × 2,54. En Ajustes → Avanzado → Eventos crudos puedes ver cómo se midió cada evento.

Desarrollo

# Solo para uso personal y para revisar el código (ver Licencia)
git clone https://github.com/foxen2005/scrollometro.git
cd scrollometro
npm install
npx expo prebuild -p android
cd android && ./gradlew assembleRelease -PreactNativeArchitectures=arm64-v8a

El servicio de accesibilidad es código nativo (módulo Expo local), así que no corre en Expo Go: hay que compilar el APK. Requiere Node 20+, JDK 17+ y el SDK de Android.

  • Windows: CMake 3.22 (el que viene por defecto) falla con rutas de más de 260 caracteres. El plugin withCmakeVersion usa CMake 3.31.6: sdkmanager --install "cmake;3.31.6".
  • Ranking: las claves de dreamlo (DREAMLO_PRIVATE, DREAMLO_PUBLIC) se leen de ~/.gradle/gradle.properties y no están en el repo. Sin ellas, el ranking simplemente no aparece.
  • Firma: el build release usa la llave propia si existe SCROLLOMETRO_STORE_FILE en ~/.gradle/gradle.properties (withReleaseSigning); si no, cae a la llave de prueba. Los releases oficiales van siempre con la llave propia.
  • Publicar: scripts/release.ps1 -Version X.Y.Z -Notes "…" sube la versión, compila, verifica la firma y crea el release con Scrollometro.apk.
  • Mascotas del widget y logo: scripts/export-mascots.mjs y scripts/export-logo.mjs generan los PNG desde los mismos SVG de la app.

Arquitectura

App.tsx                      — pestañas, bienvenida, compartir, consulta cada 1 s
src/
├── screens/                 — Hoy, Logros, Ajustes, Bienvenida, Compartir
├── components/              — Mascot (SVG animado), UpdateCard, ui (tarjetas, botones)
└── lib/
    ├── content.ts           — formatos, equivalencias, niveles de dopamina, 32 logros
    ├── mascots.ts           — las mascotas en SVG (3 × 4 estados)
    └── updates.ts           — búsqueda e instalación de versiones desde GitHub
modules/scroll-tracker/      — módulo nativo (Kotlin)
├── ScrollAccessibilityService.kt — recibe los eventos de scroll
├── ScrollStore.kt           — px → cm, totales, histórico, dopamina, notificación
├── ScrollWidgets.kt         — widgets 2×2 y 4×2
├── Updater.kt               — descarga + instalador por sesión
└── ScrollTrackerModule.kt   — puente con JS
maqueta/index.html           — la maqueta original, con animación
docs/                        — sitio (GitHub Pages)

Licencia

El código es visible, pero no libre: PolyForm Strict 1.0.0. Puedes leerlo, auditarlo y usar la app para fines personales y no comerciales; no puedes modificarla, redistribuirla ni publicar copias o versiones derivadas. El nombre, el logo, el ícono y las mascotas quedan con todos los derechos reservados (NOTICE).

¿Una idea, un arreglo o quieres colaborar? Abre un issue.

Hecho en Chile por Digital Fox. Idea, logros y lentes pixelados: Jean.

About

Scrollómetro — mide en cm, metros y km lo que tu pulgar scrollea en TikTok, Instagram y compañía. Android, mascotas, logros y una barra de dopamina de broma.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages