Sviluppo software

Cosa è il backend di una App iOS/Android?

Quando si pensa ad un'App in genere ci si limita ad immaginare l'interfaccia utente e i meccanismi di interazione con essa, in altri termini la User Experience.

A meno che non si tratti di un'App che non richieda lo scambio di dati per offrire un servizio, la parte che spesso il Cliente sottovaluta o a cui non pensa proprio, è la parte server.

Nei casi reali non banali, un'App non è altro che un'interfaccia verso un sistema molto più complesso che però resta nascosto agli occhi dell'utente.

Questo sistema, molto più complesso dell'App, è quello che effettivamente offre il servizio promesso dall'App.


Tipicamente questo sistema assolve a due compiti:

  1. Memorizzare eventuali dati dell'utente;
  2. Rispondere alle sue richieste.

Il termine tecnico per indicare questo sistema è backend, in contrapposizione all'App che in questo caso diventa il frontend.

Il backend di un'App, per poter assolvere ai suoi compiti deve:

  1. Essere ospitato, attraverso un servizio di hosting, su un server raggiungibile pubblicamente;
  2. Gestire un database contenente i dati degli utenti;
  3. Implementare un protocollo di comunicazione con l'App;
  4. Offrire un'interfaccia di amministrazione (Web App) per i gestori del servizio;
  5. Essere sicuro;
  6. Essere in grado di scalare all'aumentare degli utenti;

Avete in mente un'App per la condivisione di foto? Il vostro backend dovrà farsi carico di ricevere le foto, archiviarle, recuperarle, inviarle ad altri utenti ecc. Inoltre dovrà permettervi di amministrare il tutto: utenti registrati, foto archiviate, ecc.

Tutto questo per dire che non basta trovare un bravo designer che realizzi un'App dall'aspetto accattivante, questa, a voler essere generosi, è solo la metà del lavoro.

Per realizzare un'App standalone (cioè isolata dal resto del mondo), "bastano" conoscenze di HTML5, CSS3, JavaScript o del linguaggio nativo della piattaforma scelta (Objective-C per iOS, Java per Android).

Esempi di App standalone (su iPhone) sono: Note, Promemoria, Orologio, Calcolatrice, ecc.

Per realizzare invece un'App che offra un Servizio è necessario trovare gente che, oltre ad essere in grado di sviluppare un'App multidispositivo, se ne intenda di:

  1. System Administration (es.: Linux);
  2. Hosting (es.: Apache);
  3. Database (es.: MySQL);
  4. Protocolli di comunicazione (es.: HTTP);
  5. Web App (es.: PHP);
  6. Security;
  7. Backup e Disaster Recovery Policies;
  8. Integrazioni con Sistemi di Terze Parti (es.: Pagamenti OnLine);

E questo si limita solo al piano tecnico. Esistono infatti altri aspetti che possono riguardare la distribuzione di un'App, per dirne alcuni:

  1. L'aspetto legale (es.: Termini del Servizio, Privacy Policy);
  2. L'aspetto commerciale (es.: Piani Tariffari);
  3. L'aspetto del marketing (es.: Canali e Strategie di Promozione);

Esempi di App che offrono un servizio (su iPhone) sono: Mappe, Meteo, Borsa, Dropbox, ecc.

Quindi, quando si parla di App, cosa si intende? Solo la piccola applicazione che gira sullo smartphone di un utente oppure anche tutto quello che "ci sta dietro"?

Cerchi qualcuno che possa sviluppare l'App che hai in mente? oppure hai qualche domanda a cui non abbiamo dato risposta? Contattaci senza impegno!

Autore: Giovanni Chiodi
Senior software developer con più di 13 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Lorenzo.

Che soluzione cerchi?#

Read more!

Newsletter

Ti è piaciuto questo articolo? Iscriviti alla newsletter

Di tanto in tanto pubblichiamo nuovi articoli come questo. Se vuoi essere avvisato lascia il tuo indirizzo e-mail di seguito.

Non invieremo mai SPAM e non condivideremo la tua e-mail con altri. Per maggiori informazioni consulta la privacy policy.

Attendere prego...

closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menushareIcona sharearrow upwardIcona arrow upward