He enviado mi segunda app a la App Store. Ahora toca esperar a Apple
emap ya se descarga. Schengen Days está en revisión. No me aplica la regla 90/180: el problema lo vi en Tailandia. Lo que he mandado a Apple es un motor, no un índice de pasaportes.
La primera ya está en la tienda: emap, el mapa de movilidad de Euskadi. Esta semana he mandado la segunda. Se llama Schengen Days. Apple la tiene en revisión. Todavía no se descarga.
Si este post sirve de algo, es para dejar escrito qué es antes de que el estado de App Store Connect cambie y reescriba el recuerdo. No es una app para mí.
El problema no fue Schengen
Soy ciudadano europeo. Dentro del espacio Schengen no cuento días. El recuento 90/180 no me aplica, y pretender lo contrario en un texto sería mentir.
El problema lo vi en Tailandia. Allí sí había que estar pendiente de la ventana: cuántos días llevaba, cuántos me quedaban, qué pasaba si me equivocaba de uno. Un calendario de fotos no te lo dice. Una hoja de cálculo se rompe en cuanto la ventana se mueve, que es lo que hacen estas reglas. No son 90 días al año. Son 90 días dentro de los 180 anteriores, y cada mañana el marco se desplaza.
Eso no es un detalle de producto. Es el producto.
Cuando volví a Europa empecé a ver el mismo oficio en otra geografía. Gente de fuera de la Unión que viene a trabajar una temporada a Portugal, a España, a Italia. Británicos después del Brexit. Estadounidenses. Jubilados extra-UE que no se pueden pasar de noventa. La norma es otra. El miedo es el mismo: una cuenta mal hecha no te deja un píxel raro, te deja un problema en frontera.
Schengen Days es el recorte. Una sola regla, bien. No un índice de pasaportes, ni la legislación de medio mundo. Eso puede existir después, si esta cuenta no miente. Hoy lo que he enviado a Apple es un motor 90/180 y una app que cabe en un bolsillo.
Qué hay dentro, y qué no
La regla vive en un módulo propio, con tests contra fixtures. Entrada y salida cuentan. La ventana es rolling: de hoy hacia atrás 179 días. Si dos viajes se pisan, los días se unen, no se suman dos veces. Eso es lo que no se puede improvisar en la interfaz.
El historial de viajes se queda en el iPhone. No hace falta crear una cuenta para usar la calculadora. Funciona offline. Para un dato que parece un diario de vacaciones y en realidad se parece más a un expediente de inmigración, eso no es un eslogan de privacidad: es el diseño.
Está hecha con React Native y Expo, el mismo camino que emap. Español e inglés. Oscuro y claro. Lo que Apple está mirando ahora mismo es una ficha de viajes, un recuento que se puede enseñar, y que el binario no se salga de lo que dice la ficha.
Lo que no he enviado: el imperio. Ni GPS que te espíe el país, ni todas las visas del mundo, ni un passport index. Quien construye eso el día uno suele estar vendiendo el mapa antes de haber medido el primer tramo. Ya hay muchas apps de nómadas. Esta, de momento, cuenta.
Por qué Schengen primero
Por densidad. En el sur de Europa se concentra justo el usuario que tiene la regla encima y no tiene un departamento legal. Y porque una sola jurisdicción, testeada, es defendible. Escalar al mundo es una tesis de producto, no un commit.
Si esta sale, el siguiente oficio es el mismo: otra ventana, otros fixtures, el mismo criterio. El dato sensible no se va a un servidor para hacer la cuenta. Si no sale, el siguiente oficio es leer el rechazo de Apple y no fingir que era un aprendizaje valioso hasta saber qué han dicho.
Lo que no se sostiene
No puedo afirmar que la app esté publicada. No hay ficha pública. No hay captura de la tienda. El estado es una fila en App Store Connect: Waiting for Review.
Tampoco puedo afirmar que la haya usado en mis propios viajes Schengen. No me toca. El origen es Tailandia; el recorte es Europa. Si un británico abre esto buscando a un compañero de recuento, no soy yo. Soy quien ha puesto la regla en tests.
emap sí se puede abrir, usar y criticar. Schengen Days, hoy, no.
Dónde está ahora
emap: App Store.
Schengen Days: en revisión. Este párrafo es el enlace, mientras no haya otro.
He publicado una app. He enviado otra. La diferencia importa, y es la que voy a actualizar cuando Apple conteste.