Saltar al contenido
Gorka Hernandez Villalon, desarrollador iOS y especialista en automatizacion con IAGorka Hernandez
Volver al blog
SwipeCleaniOSSwiftUIPhotoKitApp Store

SwipeClean: limpiar fotos con gestos en iOS

Como construi SwipeClean GHV: Fotos, una app iOS con SwiftUI y PhotoKit para revisar fotos, detectar duplicados y borrar con confirmacion local.

31 de julio de 2026 6 min de lecturapor Gorka Hernandez Villalon
Imagen principal de SwipeClean: limpiar fotos con gestos en iOS

SwipeClean GHV: Fotos es una app iOS nativa que he construido para resolver un problema muy concreto: las fototecas crecen mucho mas rapido de lo que las ordenamos. Entre capturas, fotos repetidas, videos pesados y archivos que ya no aportan nada, limpiar la galeria suele convertirse en una tarea lenta, aburrida y con cierto miedo a borrar algo importante.

La respuesta corta sobre el proyecto es esta: SwipeClean convierte la limpieza de fotos y videos en una revision visual con gestos. La app muestra cada elemento como una tarjeta y permite decidir rapido si se conserva, se manda a revision de borrado, se omite o se protege. La parte importante es que deslizar nunca borra nada directamente. Todo pasa antes por una cola de revision y, cuando el usuario confirma, iOS vuelve a pedir autorizacion mediante PhotoKit.

Resumen del proyecto

AspectoResultado
ProductoApp iOS nativa para limpiar fotos y videos
Mi papelDisenador y desarrollador unico
StackSwift, SwiftUI, PhotoKit, PhotosUI, Vision, AVFoundation
PlataformaiPhone, iOS 17+
PrivacidadSin cuenta, sin anuncios, sin tracking y sin recoleccion de datos
EstadoVersion 1.0 build 1 enviada a App Store Connect
TestFlightGrupo externo preparado para beta testers
ModeloGratuita, con publicacion manual tras aprobacion de Apple

El objetivo no era hacer una app que decidiera por el usuario, sino una herramienta que hiciera mas facil tomar decisiones sobre una biblioteca personal. En fotos, la confianza importa mas que la automatizacion agresiva.

El problema: limpiar una fototeca da pereza porque el coste mental es alto

Una galeria grande no se vuelve dificil solo por el numero de archivos. Se vuelve dificil porque cada decision tiene contexto:

  • una captura puede parecer inutil, pero contener un dato que necesitas;
  • una foto borrosa puede tener valor emocional;
  • un video pesado puede ocupar mucho espacio, pero ser irrepetible;
  • dos fotos muy parecidas pueden tener diferencias pequenas que importan.

Por eso SwipeClean no se basa en un boton magico de "borrar todo". El producto esta pensado para reducir friccion sin quitar control. El usuario revisa, la app sugiere, y el borrado final siempre queda protegido por dos confirmaciones.

El flujo principal: una baraja de decisiones

El nucleo de SwipeClean es el swipe deck:

  • deslizar a la derecha: conservar;
  • deslizar a la izquierda: enviar a revision de borrado;
  • deslizar hacia abajo: omitir por ahora;
  • deslizar hacia arriba: proteger.

Este modelo funciona porque encaja con una accion repetitiva: mirar una foto, decidir y pasar a la siguiente. Al mismo tiempo, evita un riesgo comun en apps de limpieza: que el gesto tenga consecuencias destructivas inmediatas. En SwipeClean, el gesto solo clasifica. El borrado real se hace en otra pantalla, con una revision final.

Borrado seguro con PhotoKit

La app usa PhotoKit, la tecnologia de Apple para interactuar con la fototeca. Eso significa que SwipeClean no borra archivos por su cuenta ni intenta saltarse los controles del sistema.

El flujo de eliminacion es deliberadamente conservador:

  1. El usuario marca elementos durante la sesion.
  2. La app los agrupa en una cola de revision.
  3. El usuario revisa la cola dentro de SwipeClean.
  4. El usuario confirma el borrado.
  5. iOS muestra su confirmacion del sistema.

Este enfoque reduce errores y mejora la confianza. Si estas limpiando una biblioteca personal, la sensacion de control es una parte del producto, no un detalle secundario.

Sugerencias locales, no vigilancia

SwipeClean incorpora sugerencias para acelerar la revision: posibles duplicados, fotos similares, capturas, videos pesados y elementos que podrian estar borrosos. La idea es priorizar lo que merece ser revisado primero, no reemplazar la decision humana.

Para esto la app combina varias piezas nativas:

  • PhotoKit y PhotosUI para acceso controlado a fotos y videos;
  • Vision feature prints para sugerencias de similitud y duplicados;
  • AVFoundation y AVKit para reproducir videos dentro del flujo;
  • Swift Concurrency y Observation para mantener una interfaz fluida;
  • persistencia local en JSON para sesiones, decisiones y preferencias.

Todo el analisis se ejecuta en el dispositivo. No hay cuenta, backend, publicidad ni analitica de terceros. Esto es especialmente importante porque una app de fotos trabaja con contenido muy personal. La privacidad no deberia depender de una promesa comercial, sino de la arquitectura.

Privacidad por diseno

La ficha de privacidad de SwipeClean declara que la app no recopila datos. La web publica de soporte y privacidad explica el motivo: las fotos, videos, miniaturas, metadatos, decisiones y preferencias se tratan localmente.

Si el usuario tiene Fotos en iCloud, puede que iOS descargue miniaturas u originales mediante los servicios propios de Apple para poder mostrarlos o reproducirlos. Pero SwipeClean no envia ese contenido a servidores del desarrollador ni de terceros.

Esta decision tambien simplifica el producto:

  • no hace falta login;
  • no hay sincronizacion externa;
  • no hay tracking de comportamiento;
  • no hay dependencia de conectividad para el flujo principal;
  • la desinstalacion elimina el almacenamiento local de la app.

Lo que aprendi construyendo SwipeClean

SwipeClean me obligo a pensar mucho en seguridad de producto. En una app de entrenamiento como GymTracker, un error puede ser molesto; en una app de fototeca, un error puede ser emocionalmente caro. Eso cambia la forma de disenar.

Los aprendizajes principales fueron:

  • La UX debe explicar el riesgo con el flujo, no con textos largos. Si nada se borra al deslizar, el usuario puede explorar sin miedo.
  • Las sugerencias tienen que ser humildes. Una foto similar no siempre es duplicada, y una foto tecnicamente mala puede ser importante.
  • La privacidad funciona mejor cuando es una restriccion tecnica. Sin backend y sin analitica, hay menos superficie de riesgo.
  • Los estados intermedios importan. Omitir, proteger y revisar despues son acciones tan importantes como conservar o borrar.

Estado actual

La version 1.0 build 1 esta enviada a App Store Connect. La app esta configurada como gratuita, con clasificacion 4+, disponibilidad en 175 paises/regiones, publicacion manual y privacidad declarada como no recopila datos.

Tambien he preparado un grupo externo de TestFlight para que amigos y primeros testers puedan probarla antes de la publicacion final. El enlace publico es:

Probar SwipeClean en TestFlight

Si Apple todavia no ha aprobado la beta externa, el enlace puede no permitir entrar. En cuanto la revision beta este aprobada, funcionara automaticamente para los testers disponibles.

Conclusion

SwipeClean es el tipo de app que me interesa construir: una herramienta pequena, concreta y con criterio de producto. No intenta hacerlo todo. Intenta resolver bien una tarea real: revisar una fototeca grande sin perder el control sobre lo que se borra.

El proyecto conecta varias areas que estoy trabajando cada vez mas: desarrollo iOS nativo, diseno de flujos seguros, privacidad local, automatizacion de decisiones repetitivas y publicacion real de producto. Puedes consultar la ficha tecnica de SwipeClean o la web publica de soporte y privacidad.