Todos los proyectos
En las tiendas · grabada con contenido de ejemploCaso de estudio

Photo2Post

Retoque fotográfico hecho por artistas profesionales y encargado desde el teléfono: elige un servicio, envía tus fotos y recíbelas retocadas.

Rol
Desarrollador Flutter: el rediseño de la 4.0, el paso a créditos y pagos, los pedidos, el archivo y las carpetas, y todas las versiones desde junio de 2025
Cliente
Image Retouch srl
Periodo
2025 – actualidad
Plataformas
iOS y Android desde una única base de código Flutter
  • Flutter
  • Dart
  • GetX
  • Firebase Auth
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • Cloud Messaging
  • Stripe
  • PayPal

El producto

Photo2Post es retoque hecho por personas, no por filtros. Una anfitriona que necesita que su apartamento luzca lo mejor posible en un anuncio, el dueño de una tienda con productos que subir a internet, alguien con un retrato que arreglar: eligen un servicio en la app, envían las fotos con una nota y, unas horas después, las fotos vuelven de los artistas del estudio, cada una en dos versiones retocadas, para compararlas con la original y valorarlas.

La app es la forma en que los clientes encargan y pagan. El retoque se paga en créditos, que se compran en paquetes con tarjeta, Apple Pay o Google Pay a través de Stripe, o con PayPal; cada foto terminada se queda en un archivo, para descargarla, compartirla u ordenarla en carpetas. Me incorporé en junio de 2025, rediseñé la app como versión 4 y desde entonces soy su desarrollador.

77
de los 80 commits desde junio de 2025 son míos
49%
de las líneas de Dart actuales se escribieron por última vez en mis commits
31k
líneas de Dart en la app, sin contar el código generado
2
versiones retocadas de cada foto, de los artistas del estudio

Recorrido

La app en acción

Elige una grabación o salta directamente a un capítulo.

Un primer pedido, de la galería al estudio y de vuelta, primer fotograma
0:00 / 1:46

Grabado a partir del código publicado en tamaño de teléfono. Un estudio virtual sustituye a los artistas: devuelve las versiones «después» dibujadas de las fotos de ejemplo cuando el script de grabación lo pide, y la app avisa al cliente como lo haría la notificación push.

Qué hace

De una foto en el teléfono a una foto retocada

01

Elegir qué retocar

La página de inicio es el catálogo: cada servicio con un ejemplo de antes y después que se desliza solo, el plazo de entrega y el precio en créditos por foto. El cliente elige uno y añade fotos desde la cámara o la galería.

02

El carrito y el pedido

Una línea por foto, cada una con una nota para el artista («endereza las paredes», «quita las cajas»), que se revisa en busca de enlaces, direcciones de correo y lenguaje ofensivo antes de enviarla. Al confirmar, se suben las fotos, se descuentan los créditos de la cuenta y el pedido pasa al estudio.

03

El registro, cuando hace falta

El catálogo y el carrito funcionan sin cuenta; se pide en el primer pedido, como particular o como empresa. Apple, Google, Facebook o correo electrónico, con los consentimientos, y dos créditos gratis para empezar. A quien todavía no ha comprado se le ofrece un paquete de bienvenida con un temporizador de quince minutos.

04

De vuelta del estudio

Una notificación avisa de que las fotos están listas y abre el pedido. Cada foto se puede ver tal como se envió y en sus dos versiones retocadas, valorar con estrellas, descargar o compartir.

05

Un archivo, y carpetas

Pedidos por mes, en curso o completados; un archivo de todas las fotos retocadas con un botón de descarga en cada una; y carpetas que el cliente crea en el teléfono (para un anuncio, para una tienda), que se comparten o se descargan de una vez.

06

Créditos

Paquetes con precio por crédito, un código de descuento verificado en el servidor, el IVA a la vista y, después, la tarjeta guardada, la hoja de pago de Stripe, Apple Pay, Google Pay o PayPal. Los créditos están en la cuenta en cuanto se completa el pago.

Por dentro

Cómo se construyó

Un rediseño y, después, una nueva forma de pagar

La versión 4 rehízo las pantallas por las que pasa el cliente: inicio de sesión y registro, la página de servicios con sus ejemplos de antes y después, el carrito, los pedidos, la privacidad y las condiciones. Después la app pasó de pagar cada pedido a los créditos: paquetes, el checkout con códigos de descuento, la oferta de bienvenida, las reglas de los créditos gratuitos y cuándo sugerir comprar más.

Firebase y el flujo de pedidos

GetX para el estado, el enrutamiento y las dependencias; Firebase Auth con custom claims para el rol de cliente; Firestore para servicios, usuarios, pedidos y sus detalles; Cloud Storage para las fotos y sus miniaturas; Cloud Functions para confirmar un pedido, verificar un código de descuento y registrar una valoración. La app escribe un pedido pendiente con sus detalles y sus archivos subidos, y una función lo convierte en un pedido para el estudio.

Mantenerla en las tiendas

Todas las versiones desde junio de 2025, de la compilación 70 a la 106, con las correcciones que trae una app en producción: los permisos de fotos en iOS, el teclado sobre las notas del carrito y el checkout, los reintentos de inicio de sesión en redes lentas, una notificación que abre el pedido correcto.

Grabar una app en producción

La app es real. Las fotos están dibujadas.

Photo2Post tiene clientes reales, con sus fotos y sus pagos. Nada de eso tiene cabida en un portfolio, así que las grabaciones usan una copia del código publicado que funciona por sí sola, con un sustituto para todo lo que hay detrás.

  1. 1

    El código publicado, compilado para el navegador

    Una compilación de Flutter web en tamaño de teléfono, configurada para creer que se ejecuta en un iPhone. La app guarda las fotos, el carrito y las miniaturas en archivos, algo que un navegador no tiene, así que la demo le da un sistema de archivos en memoria; las notificaciones push, la analítica y los informes de fallos están desactivados.

  2. 2

    Firebase, Stripe y un estudio, dentro de la página

    El inicio de sesión y Firestore funcionan sobre las implementaciones falsas en memoria que los proyectos de Firebase usan en sus pruebas, cargadas con un catálogo y una clienta habitual; Storage y las Cloud Functions se simulan con pequeños sustitutos. La API de Stripe responde con una tarjeta de prueba, y su hoja de pago la dibuja la demo. Un estudio virtual devuelve los pedidos y lanza la notificación.

  3. 3

    Fotos dibujadas

    Las fotos de ejemplo de la empresa y las imágenes de stock se quedan fuera. Un script dibuja diez escenas (habitaciones, productos, platos, una playa, un retrato, una ciudad), cada una como el «antes» torcido, oscuro y desordenado del cliente y como dos versiones retocadas, y la galería de fotos del teléfono es un selector de esas escenas.

  4. 4

    Grabado sin conexión

    La herramienta de grabación rechaza cualquier petición que salga de la máquina, así que una toma no puede llegar al servicio real.

El logotipo, la interfaz, sus iconos e ilustraciones y los paquetes de créditos son los de la propia app. Las fotos, el catálogo de servicios, los clientes, los pedidos, las carpetas y la tarjeta de pago son contenido de ejemplo creado para este portfolio.

Retocadas

Aquí no hay demo que probar: Photo2Post está en producción, así que esta página muestra grabaciones con contenido de ejemplo.

Todas las pantallas

La colección completa de capturas

  • ServiciosCada servicio con un ejemplo de antes y después, su precio en créditos y el plazo de entrega.
  • Más serviciosComida, retratos, eliminación de objetos, retoque creativo.
  • Elegir fotosLa galería de fotos del teléfono (dibujada para la demo).
  • CarritoUna línea por foto, con una nota para el artista.
  • CuentaDos créditos gratis para empezar; Apple, Google, Facebook o correo electrónico.
  • RegistroNombre, correo electrónico, una contraseña segura y los consentimientos.
  • Pedido enviadoLas fotos van al estudio; los créditos se descuentan de la cuenta.
  • En cursoEl pedido, con el artista trabajando en él.
  • Fotos listasLa notificación push cuando los artistas terminan.
  • Oferta de bienvenidaPara quien todavía no ha comprado créditos: un paquete con descuento, durante quince minutos.
  • RetocadasCada foto vuelve en dos versiones retocadas, para compararlas con la original.
  • PedidosPedidos en curso, agrupados por mes, con la foto del artista.
  • OriginalLa foto tal como se envió.
  • RetocadaSe valora con estrellas; desde aquí se descarga o se comparte.
  • CompletadosTodos los pedidos entregados.
  • ArchivoTodas las fotos retocadas, listas para descargar.
  • CarpetasFotos ordenadas en carpetas en el teléfono, que se descargan todas de una vez.
  • Una carpetaLas fotos para un anuncio.
  • Paquetes de créditosPaquetes con el precio por crédito.
  • CheckoutUn código de descuento, el IVA y las formas de pago.
  • Tarjeta guardadaLa tarjeta guardada, u otra forma de pago.
  • Hoja de pagoLa hoja de pago de Stripe (dibujada por la demo, tarjeta de prueba).
  • PagadoLos créditos se añaden a la cuenta.
  • PerfilNombre, la tarjeta predeterminada, ayuda, notificaciones y la cuenta.

Siguiente caso de estudio

Criluma Viaggi →