Perché le app comunali invecchiano e come abbiamo progettato CivitApp

CivitApp è il servizio che abbiamo sviluppato per i Comuni italiani: un'app per iPhone e Android da pubblicare a nome dell'Ente e un gestionale web da cui gli uffici aggiornano notizie, calendario della raccolta, avvisi e notifiche push. Il sito civitapp.it è online da poco e il servizio è in fase di pre-lancio commerciale: non ci sono ancora Comuni aderenti né app pubblicate sugli store. In questo articolo raccontiamo il problema da cui siamo partiti e le scelte che ne sono derivate.

Perché l'app di un Comune smette di essere aggiornata

Un'app comunale nasce spesso come progetto a sé, con un fornitore e una data di consegna. Il giorno del lancio contiene notizie recenti, il calendario della raccolta e i numeri utili. Poi il lavoro si ferma, perché il contratto copriva lo sviluppo e poco altro.

I problemi arrivano con il calendario. Cambia il giorno del vetro, una festività sposta l'organico, una nuova zona entra nel porta a porta. Se per ogni modifica serve lo sviluppatore, gli uffici smettono di chiederla e tornano al sito istituzionale e ai manifesti.

Anche la parte tecnica invecchia. Apple e Google aggiornano ogni anno sistemi operativi e requisiti degli store, e un'app che nessuno ricompila può smettere di funzionare bene sui telefoni più recenti.

Il cittadino se ne accorge presto: basta un promemoria sbagliato sulla raccolta per perdere fiducia nello strumento. Da qui la domanda da cui siamo partiti con CivitApp: che cosa serve perché l'app del Comune per i cittadini resti utile negli anni, anche senza uno sviluppatore dedicato.

Come aggiornare l'app del Comune dagli uffici: contenuti e permessi

La nostra risposta si riassume in poche parole: chi ha l'informazione la pubblica. L'ufficio ambiente conosce il calendario, l'URP scrive i comunicati, l'ufficio tecnico risponde alle segnalazioni. Per questo CivitApp affianca all'app un gestionale web che si apre dal browser, senza installare nulla negli uffici.

Questa scelta cambia il modello dei contenuti. Un redattore comunale scrive avvisi e comunicati, e deve poterlo fare senza pensare all'impaginazione. Ogni notizia ha quindi campi precisi: titolo, sommario, testo, immagine 16:9, fino a dieci allegati PDF. Mentre scrive, il redattore vede l'anteprima di come il contenuto apparirà nell'app.

Cambia anche il rapporto con il tempo. Ogni contenuto resta in bozza, si pubblica subito o a una data programmata. Gli eventi escono dall'elenco dopo la fine e le allerte restano in home solo per il periodo di validità, così l'ufficio non deve ricordarsi di togliere ciò che è scaduto.

Poi ci sono i permessi. Chi pubblica lo fa con un account personale. Abbiamo previsto due ruoli: l'amministratore gestisce contenuti, impostazioni, moduli e account dei colleghi; il redattore lavora su contenuti, segnalazioni e notifiche push, senza accesso a impostazioni e utenti. Piano e stato del servizio restano fuori da entrambi i ruoli. Ogni account appartiene a un solo Comune e un account disattivato non entra più nel gestionale.

Resta la formazione. Un gestionale difficile da usare finisce in mano a una sola persona. Il servizio comprende una sessione online per amministratori e redattori all'attivazione, con i contenuti del Comune; da quel momento gli uffici pubblicano in autonomia, con la nostra assistenza.

Le funzioni di CivitApp pensate per chi aggiorna l'app comunale

Queste sono le funzioni che rispondono direttamente al problema dell'aggiornamento.

  • Calendario della raccolta calcolato da regole

    L'ufficio inserisce una volta zone e regole settimanali o quindicinali; il calendario si calcola per tutto il periodo di validità. Raccolte annullate, spostate o aggiuntive diventano eccezioni. I cittadini ricevono il promemoria alle 19:00 del giorno prima e cercano gli oggetti con «Dove lo butto?».

  • Notifiche push a tutti o a una zona

    Titolo fino a 65 caratteri, messaggio fino a 240, invio immediato o programmato. Al tocco si apre il contenuto collegato. Le notifiche sono comprese in ogni piano e possono partire alla pubblicazione di una notizia.

  • Segnalazioni che arrivano all'ufficio competente

    Il cittadino segnala in quattro passi, con fino a 3 foto e la posizione. L'assegnazione automatica per categoria indirizza la pratica all'ufficio giusto, che la segue in cinque stati con cronologia e risposta pubblica.

  • Importazione ed esportazione CSV

    Luoghi, turni delle farmacie e dizionario dei rifiuti si caricano da file CSV; segnalazioni, sondaggi e statistiche si esportano in CSV da aprire con Excel o LibreOffice.

  • Attivazione con i dati di base già caricati

    L'ambiente del Comune parte con tipologie di rifiuti, numeri di emergenza nazionali, categorie di segnalazione, uffici e una zona «Tutto il territorio». Gli uffici completano e correggono, senza partire da un archivio vuoto.

  • Controllo del contrasto sui colori dell'Ente

    Quando l'amministratore sceglie i colori del Comune, il gestionale mostra il rapporto di contrasto. La leggibilità resta sotto controllo anche quando la scelta la fa chi non si occupa di grafica.

Accessibilità, dati personali e durata: i vincoli di un'app pubblica

Un'app pubblicata a nome di un Comune ha vincoli che un prodotto privato può rimandare. Il primo è l'accessibilità: ai sensi della legge 4/2004 il Comune pubblica la dichiarazione di accessibilità della propria app. Abbiamo progettato l'app con l'obiettivo di rispettare le WCAG 2.1 livello AA: supporto a TalkBack e VoiceOver, testo ridimensionabile, pulsanti alti almeno 48 dp, stati delle segnalazioni e livelli di allerta sempre scritti e mai indicati solo dal colore. Noi forniamo la documentazione tecnica per compilare la dichiarazione.

Il secondo vincolo riguarda i dati personali. I cittadini non creano account e nelle segnalazioni i recapiti sono facoltativi. Nell'app non ci sono pubblicità né servizi di analisi di terze parti. Il Comune è titolare del trattamento e noi agiamo come responsabile, con un contratto ai sensi dell'art. 28 del GDPR. Dopo il periodo di conservazione scelto dal Comune, da 6 a 60 mesi (24 di default), le segnalazioni vengono anonimizzate.

Database e file stanno nell'Unione Europea e le Cloud Functions girano in europe-west1. L'autenticazione degli account e l'invio delle notifiche push, gestiti da servizi Firebase, possono trattare dati fuori dall'UE, con clausole contrattuali tipo ed EU-U.S. Data Privacy Framework: lo scriviamo anche sul sito.

Il terzo vincolo è la durata. Un Comune acquista tramite affidamento secondo il d.lgs. 36/2023 e ha bisogno di un costo prevedibile. Per questo CivitApp è un servizio a canone che comprende hosting, nuove versioni, adeguamenti ai sistemi operativi e ai requisiti degli store, assistenza e formazione. La manutenzione rientra nel canone fin dall'inizio.

Le scelte tecniche dietro l'app comunale e il gestionale

Ogni scelta tecnica risponde a chi usa il sistema: uffici con poco tempo, cittadini con telefoni diversi, un servizio che deve durare anni.

  • Flutter per l'app dei cittadini

    Una sola base di codice per iPhone e Android. Ogni Comune ha la propria build con nome, stemma e colori, generata dallo stesso guscio: una correzione si scrive una volta e si porta in tutte le app.

  • Gestionale web in React e TypeScript

    Si usa dal browser degli uffici, senza installazioni sui computer del Comune. La tipizzazione riduce gli errori quando i modelli dei contenuti cambiano nel tempo.

  • Firebase con database e file nell'Unione Europea

    Cloud Firestore, Cloud Storage e Cloud Functions in regioni europee. Il Comune non deve installare né mantenere server, e un contenuto pubblicato dagli uffici compare subito nell'app.

  • Un ambiente separato per ogni Comune

    Contenuti, personale e impostazioni di ogni Ente stanno in uno spazio distinto. Le regole di sicurezza di Firestore e Storage separano i dati dei Comuni e stabiliscono che cosa può fare ciascun ruolo.

  • Notifiche per argomento con Firebase Cloud Messaging

    Gli avvisi partono verso i dispositivi iscritti a un argomento: il Comune, la zona, il promemoria della raccolta. Il Comune sceglie la zona e il messaggio arriva ai dispositivi iscritti, senza account dei cittadini.

  • Accesso anonimo protetto da App Check

    I cittadini non si registrano, quindi serve un'altra difesa contro gli abusi. Firebase App Check, con reCAPTCHA Enterprise sul web, verifica che le richieste arrivino dalle app e dal sito autentici.

  • Test automatici su più livelli

    Test unitari con vitest per le Cloud Functions, test delle regole di sicurezza e una suite end-to-end. Servono a rilasciare aggiornamenti senza compromettere i permessi.

A che punto è CivitApp, l'app per i Comuni

Il sito civitapp.it è online da poco e il servizio è in fase di pre-lancio commerciale. Non ci sono ancora Comuni aderenti: schermate e demo usano il Comune dimostrativo di Borgoverde, con dati inventati. Per questo non riportiamo numeri d'uso. Sugli store non esistono ancora schede dell'app.

Abbiamo sviluppato app, gestionale, Cloud Functions, regole di sicurezza e test. I passi successivi riguardano i primi Comuni: attivazione, formazione e pubblicazione dell'app a nome dell'Ente, una procedura in cui guidiamo il Comune. I tempi di revisione di Apple e Google non dipendono da noi.

Dichiariamo anche i limiti attuali. I servizi online sono collegamenti ai servizi digitali già attivi del Comune; eventuali integrazioni con i sistemi dell'Ente si valutano nel piano Enterprise. I sondaggi sono consultivi e non hanno valore di voto.

CivitApp si aggiunge agli altri prodotti dello studio: DietApp, Beachfy e BarbierItalia. La descrizione completa è nella scheda del progetto CivitApp; il lavoro che svolgiamo per altri è raccontato nelle pagine su sviluppo di app mobile e siti web e piattaforme.

Domande frequenti sull'app del Comune per i cittadini

Le domande che ci aspettiamo da sindaci, segretari comunali e responsabili per la transizione al digitale, con risposte basate su ciò che il servizio prevede oggi.

La aggiornano gli uffici del Comune dal gestionale web, con account personali da amministratore o da redattore. Il gestionale si usa dal browser: all'attivazione facciamo una sessione di formazione online con i contenuti del Comune, e l'assistenza è compresa nel servizio.

ProgettiBarbierItalia: perché il gestionale e il sito del salone sono lo stesso prodottoProgettiCostruire un'app che genera piani alimentari con l'IA e li tiene coerentiProgettiBeachfy e il gestionale che nasce dalla piantina della spiaggia