Tutti i progetti
Sugli store · registrazioni con contenuti di esempioCaso di studio

Photo2Post

Fotoritocco fatto da professionisti, ordinato dal telefono: scegli un servizio, invia le foto e le ricevi ritoccate.

Ruolo
Sviluppatore Flutter: il redesign della 4.0, il passaggio a crediti e pagamenti, ordini, archivio e cartelle, e ogni rilascio da giugno 2025
Cliente
Image Retouch srl
Periodo
2025 – oggi
Piattaforme
iOS e Android da un’unica codebase Flutter
  • Flutter
  • Dart
  • GetX
  • Firebase Auth
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • Cloud Messaging
  • Stripe
  • PayPal

Il prodotto

Photo2Post è fotoritocco fatto da persone, non da filtri. Chi affitta casa e vuole che l’appartamento faccia bella figura nell’annuncio, chi ha un negozio e prodotti da mettere online, chi ha un ritratto da sistemare: sceglie un servizio nell’app, invia le foto con una nota e qualche ora dopo le foto tornano dai ritoccatori dello studio, ognuna in due versioni ritoccate, da confrontare con l’originale e da valutare.

L’app è il canale con cui i clienti ordinano e pagano. Il fotoritocco si paga in crediti, acquistati a pacchetti con carta, Apple Pay o Google Pay tramite Stripe, oppure con PayPal; ogni foto finita resta in un archivio, da scaricare, condividere o organizzare in cartelle. Sono entrato nel progetto a giugno 2025, ho ridisegnato l’app con la versione 4 e da allora ne sono lo sviluppatore.

77
degli 80 commit da giugno 2025 sono miei
49%
delle righe di Dart di oggi sono state modificate l’ultima volta in un mio commit
31k
righe di Dart nell’app, escluso il codice generato
2
versioni ritoccate di ogni foto, dai ritoccatori dello studio

Tour guidato

L’app in azione

Scegli una registrazione, o salta direttamente a un capitolo.

Un primo ordine, dalla galleria del telefono allo studio e ritorno, primo fotogramma
0:00 / 1:46

Registrate dal codice pubblicato in formato smartphone. Uno studio virtuale fa le veci dei ritoccatori: quando lo script di registrazione lo chiede, rimanda le versioni “dopo” disegnate per le foto di esempio, e l’app avvisa il cliente come farebbe la notifica push.

Cosa fa

Da una foto sul telefono a una foto ritoccata

01

Scegliere cosa ritoccare

La home è il catalogo: ogni servizio con un esempio prima e dopo che scorre da solo, i tempi di consegna e il prezzo in crediti per foto. Il cliente ne sceglie uno e aggiunge foto dalla fotocamera o dalla galleria.

02

Il carrello e l’ordine

Una riga per foto, ognuna con una nota per il ritoccatore (“raddrizza le pareti”, “togli gli scatoloni”), controllata prima dell’invio per escludere link, indirizzi e-mail e parolacce. La conferma carica le foto, scala i crediti dall’account e passa l’ordine allo studio.

03

La registrazione, quando serve

Catalogo e carrello funzionano senza account; l’account viene chiesto al primo ordine, come privato o come azienda. Apple, Google, Facebook o e-mail, con i consensi, e due crediti gratuiti per iniziare. A chi non ha ancora acquistato viene proposto un pacchetto di benvenuto con un conto alla rovescia di quindici minuti.

04

Di ritorno dallo studio

Una notifica avvisa che le foto sono pronte e apre l’ordine. Ogni foto si può vedere com’era stata inviata e nelle sue due versioni ritoccate, valutare con le stelle, scaricare o condividere.

05

Un archivio, e le cartelle

Gli ordini per mese, in lavorazione o completati; un archivio di tutte le foto ritoccate, ognuna con il suo pulsante di download; e cartelle che il cliente crea sul telefono (per un annuncio, per un negozio), da condividere o scaricare tutte insieme.

06

I crediti

Pacchetti con il prezzo per credito, un codice sconto verificato sul server, l’IVA in chiaro, poi la carta salvata, il modulo di pagamento di Stripe, Apple Pay, Google Pay o PayPal. I crediti arrivano sull’account appena il pagamento va a buon fine.

Sotto il cofano

Come è stato realizzato

Un redesign, poi un nuovo modo di pagare

La versione 4 ha ricostruito le schermate che il cliente attraversa: accesso e registrazione, la pagina dei servizi con gli esempi prima e dopo, il carrello, gli ordini, privacy e condizioni. Poi l’app è passata dal pagamento per singolo ordine ai crediti: pacchetti, checkout con codici sconto, offerta di benvenuto, regole per i crediti gratuiti e per quando suggerire di acquistarne altri.

Firebase e il flusso degli ordini

GetX per stato, routing e dipendenze; Firebase Auth con custom claim per il ruolo di cliente; Firestore per servizi, utenti, ordini e relativi dettagli; Cloud Storage per le foto e le loro miniature; Cloud Functions per confermare un ordine, verificare un codice sconto e registrare una valutazione. L’app scrive un ordine in attesa con i suoi dettagli e i file caricati, e una funzione lo trasforma in un ordine per lo studio.

Tenerla sugli store

Ogni rilascio da giugno 2025, dalla build 70 alla 106, con le correzioni che un’app in produzione richiede: i permessi delle foto su iOS, la tastiera che copriva le note del carrello e il checkout, i tentativi di accesso ripetuti sulle reti lente, una notifica che apre l’ordine giusto.

Registrare un’app in produzione

L’app è vera. Le foto sono disegnate.

Photo2Post ha clienti veri, con le loro foto e i loro pagamenti. Niente di tutto questo può finire in un portfolio, quindi le registrazioni usano una copia del codice pubblicato che funziona in autonomia, con un sostituto per tutto ciò che c’è dietro.

  1. 1

    Il codice pubblicato, compilato per il browser

    Una build web di Flutter in formato smartphone, a cui si fa credere di girare su un iPhone. L’app tiene foto, carrello e miniature in file, che un browser non ha, quindi la demo le fornisce un file system in memoria; notifiche push, analytics e crash reporting sono disattivati.

  2. 2

    Firebase, Stripe e uno studio, dentro la pagina

    Accesso e Firestore girano sulle implementazioni fittizie in memoria che i progetti Firebase usano nei test, popolate con un catalogo e una cliente abituale; Storage e le Cloud Functions sono simulati da piccoli sostituti. All’API di Stripe risponde una carta di test, e il suo modulo di pagamento è disegnato dalla demo. Uno studio virtuale rimanda indietro gli ordini e fa scattare la notifica.

  3. 3

    Foto disegnate

    Le foto di esempio dell’azienda e le immagini stock restano fuori. Uno script disegna dieci scene (stanze, prodotti, piatti, una spiaggia, un ritratto, una città), ognuna come il “prima” storto, buio e disordinato del cliente e in due versioni ritoccate, e la galleria del telefono è un selettore di queste immagini.

  4. 4

    Registrata offline

    Lo script di registrazione blocca qualsiasi richiesta diretta fuori dalla macchina, così una ripresa non può raggiungere il servizio reale.

Il logo, l’interfaccia, le sue icone e illustrazioni e i pacchetti di crediti sono quelli dell’app. Le foto, il catalogo dei servizi, i clienti, gli ordini, le cartelle e la carta di pagamento sono contenuti di esempio creati per questo portfolio.

Ritoccate

Qui non c’è una demo da provare: Photo2Post è un prodotto attivo, quindi questa pagina mostra registrazioni con contenuti di esempio.

Ogni schermata

La raccolta completa degli screenshot

  • ServiziOgni servizio con un esempio prima e dopo, il prezzo in crediti e i tempi di consegna.
  • Altri serviziCibo, ritratti, rimozione di oggetti, ritocco creativo.
  • Scelta delle fotoLa galleria del telefono (disegnata per la demo).
  • CarrelloUna riga per foto, con una nota per il ritoccatore.
  • AccountDue crediti gratuiti per iniziare; Apple, Google, Facebook o e-mail.
  • RegistrazioneNome, e-mail, una password sicura e i consensi.
  • Ordine inviatoLe foto vanno allo studio; i crediti vengono scalati dall’account.
  • In lavorazioneL’ordine, con il ritoccatore che ci sta lavorando.
  • Foto pronteLa notifica push quando i ritoccatori hanno finito.
  • Offerta di benvenutoPer chi non ha ancora acquistato crediti: un pacchetto scontato, per quindici minuti.
  • RitoccateOgni foto torna in due versioni ritoccate, da confrontare con l’originale.
  • OrdiniGli ordini in lavorazione, raggruppati per mese, con la foto del ritoccatore.
  • OriginaleLa foto così come è stata inviata.
  • RitoccataSi valuta con le stelle; da qui si scarica o si condivide.
  • CompletatiTutti gli ordini consegnati.
  • ArchivioTutte le foto ritoccate, pronte da scaricare.
  • CartelleFoto organizzate in cartelle sul telefono, da scaricare tutte insieme.
  • Una cartellaLe foto per un annuncio.
  • Pacchetti di creditiPacchetti con il prezzo per credito.
  • CheckoutUn codice sconto, l’IVA e i metodi di pagamento.
  • Carta salvataLa carta salvata, o un altro metodo di pagamento.
  • Modulo di pagamentoIl modulo di pagamento di Stripe (disegnato dalla demo, carta di test).
  • PagatoI crediti vengono aggiunti all’account.
  • ProfiloNome, la carta predefinita, assistenza, notifiche e l’account.

Prossimo caso di studio

Criluma Viaggi →