• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#108 – Creare un backend potente e scalabile per le proprie app in pochi minuti con Parse

By the Evil Doc Ham | on 24 Aprile 2012 | 7 Comments
Senza categoria

parse-logo Oggi vedremo come sfruttare un potente e utile servizio offerto da una giovane startup americana, che ci permetterà di creare in pochi minuti un backend per le nostre applicazioni iPhone, iPad o Android per la gestione di dati remoti, login e molto altro. Parleremo di Parse! Vediamo di cosa si tratta e come sfruttarlo nelle nostre app.

Cos’è Parse

Parse (www.parse.com) è un servizio server dedicato agli sviluppatori mobile/web molto interessante e per certi aspetti unico. La piattaforma è in continuo aggiornamento, ma ad oggi le principali funzioni disponibili per le nostre app sono:

  • db NoSQL remoto (ovvero basato sul concetto di chiave/valore tipico delle hashmap o dei json)
  • hosting di file
  • push notification
  • login tramite facebook/twitter

Ma mentre push e login ai social networks sono servizi offerti anche da altri siti, i primi due (db e file) sono realmente innovativi e, per come sono implementati, ad oggi unici.

Grazie al db NoSQL si possono dotare le app di una infrastruttura server per erogare contenuti (notizie, livelli di gioco, classifiche…) o memorizzare informazioni (punteggi, configurazioni, messaggi utente, log…) mentre la gestione “cloud” dei file é relativa all’app e non ad un utente come iCloud, quindi potenzialmente condivisa fra tutti gli utenti (foto sharing ad esempio). Le API esistono per varie piattaforme (iOS, Android, http…).
Inoltre, fatto non da poco, per volumi contenuti (ma neppure troppo) Parse è completamente gratuito, quindi l’ideale per testare e gestire app anche complesse senza accollarsi il costo iniziale dell’infrastruttura server: se l’app avrà successo (più di un milione di chiamate al server al mese) dovremo pagare altrimenti l’unico investimento sarà stato il tempo impiegato nello sviluppo dell’app. E personalmente sarei ben contento di essere costretto a pagare a causa dell’ “eccessivo” successo di una mia app! 😉

Questo tutorial sarà diviso in due parti. Nella prima seguirò più o meno passo passo l’eccellente tutorial disponibile sul sito stesso di Parse, in modo da impratichirsi con i concetti di base, mentre nella seconda parte proporrò alcune idee su come utilizzarlo, con relativo codice ovviamente!

Creare l’app di Test

Per prima cosa dovrete registrarvi sul sito (www.parse.com) per poter creare il vostro account (ricordo che l’operazione è gratuita).
Ora dovete creare lo spazio db per la vostra “app” sul sito: dal menu in alto scegliete “Your App” e create un’app “TestAPP” (viva la fantasia!). Potete avere quante app volete, ma ricordate che il conteggio del traffico verrà fatto sul totale delle vostre app.

Appena creata vi verrà presentata una schermata di riepilogo:


tutorial-parse-backend-ios-android-app-01

che contiene i dati del traffico effettuato finora e altre informazioni (Application ID etc…) che vedremo in seguito.
Ora non dovremo far altro che selezionare QuickStart, scegliere “New iOS project”


tutorial-parse-backend-ios-android-app-02

e seguire le semplicissime istruzioni passo-passo che il sito ci propone.

Per quelli che proprio ci litigano con l’Inglese illustrerò brevemente i vari passaggi (gli altri facciano riferimento direttamente al sito).

Punto 1.
Scaricare il progetto XCode con dentro già l’SDK ed apritelo con XCode.

Punto 2.
Aprite il file ParseStarterProjectAppDelegate.m e nel metodo:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

sostituite il commento con le due righe che trovate nel sito. Qualcosa del tipo:

[Parse setApplicationId:@"AZJD783JSJKXXXXXXXXXX" 
                        clientKey:@"ASSKmmXXXXXXXXXX"];

Tenete presente che quei dati sono già GIUSTI! il QuickStart vi da già le informazioni corrette per l’app per cui state facendo la procedura: comodo no?

Spendo due parole su questi codici misteriosi: sono usati da Parse per identificate l’accoppiata sviluppatore/app, per l’accesso ai vari servizi, senza che sia quindi necessario includere nell’app stessa i vostri dati di login. In questo modo voi potete gestire l’account senza impattare sulle app rilasciate e senza mandare in giro dati troppo sensibili: nella peggiore delle ipotesi un hacker potrebbe “solo” accedere ai dati dell’app, non a tutto il vostro account.

Punto 3.
Nel file .h del view controller (ParseStarterProjectViewController.h) aggiungete la riga:

#import 

mentre nel file .m incollate il metodo viewDidLoad riportato qui sotto:

- (void)viewDidLoad
{
	[super viewDidLoad];
	PFObject *testObject = [PFObject objectWithClassName:@"TestObject"];
	[testObject setObject:@"valore" forKey:@"chiave"];
	[testObject save];
}

A questo punto basta lanciare l’app che presenterà una schermata del tipo “se leggi questo va tutto bene”.
Quale verifica potete premere il bottone “TEST” presente nel QuickStart o ancora meglio selezionare l’app da “Your Apps” e andare in “Data Browser”


tutorial-parse-backend-ios-android-app-03

dove vedrete una tabella con, tra le altre, una colonna “chiave” ed una riga col corrispondente “valore”.

Approfondimenti

Da qui in avanti è d’obbligo seguire la “iOS Guide” presente nella sezione Docs, che vi guiderà con semplici esempi nello scoprire tutte le funzionalità.
Tradurla non è ovviamente lo scopo di questo tutorial, ma ora che avete un’app con cui sperimentare mi sarà più semplice illustrare alcuni concetti chiave.

Abbiamo visto come Parse organizzi i suoi servizi per App, che a loro volta contengono una o più Class che contengono dei PFObject, dati non rigidamente strutturati consistenti in serie di coppie chiave/valore: insomma, dei json, a cui Parse aggiunge automaticamente alcune info per facilitarne la gestione, ovvero un id univoco e le date di creazione e ultima modifica.
Con semplici chiamate è possibile crearli in locale o leggerli dal server, modificarli e salvarli in remoto, sia in maniera sincrona che asincrona (in background). Inoltre nel caso non sia indispensabile un salvataggio immediato “saveEventually” permette di continuare con l’elaborazione lasciando a Parse il compito di salvare appena la rete sarà disponibile.

E’ possibile anche eseguire query più o meno complesse sui dati e pure ordinarli: certo non si possono creare certi “mostri” tipici dell’SQL ma comunque le opzioni dovrebbero coprire la quasi totalità delle necessità.
Recentemente è stato anche aggiunto un sistema di caching dei risultati delle query, così da poter memorizzare sul dispositivo il risultato e quindi (a certe condizioni) lavorare anche offline.

Infine un accenno alla gestione dei file: i PFObject non sono adatti a contenere dati di grosse dimensioni (max 128Kb): oltre è necessario usare i PFFile, la cui dimensione massima è di 10Mb. Come per i PFObject esistono API per leggerli e salvarli in background monitorando anche il progresso dell’operazione.

Lato Server

Finora abbiamo visto come gestire i dati dall’app, ma potrebbe essere necessario immetterli direttamente sul server utilizzando l’app per visualizzarli.
Per fare ciò possiamo usare la pagina “Data Browser” del sito. Da lì infatti è possibile creare, cancellare e modificare le classi e il loro contenuto. Per inserire grosse moli di dati è però più semplice prepararli con altri programmi (anche un semplice foglio excel potrebbe andare bene in molti casi) e poi esportarli in formato CSV: la prima riga rappresentarà le chiavi, le successive i record da inserire.
Tenete presente che il tipo di architettura vi permette anche di inserite in una Class già esistente dei nuovi record che hanno delle colonne in più senza problemi e senza che voi dobbiate fare nulla: Parse si preoccuperà di aggiungerle in automatico. Chi di voi si è già scontrato con l’aggiornamento di versione di una base dati SQL apprezzerà sicuramente…

Conclusione

Parse permette di aggiungere un server alle vostre app, senza doversi preoccupare di impostare e gestire il backend. I dati sono organizzati in strutture di tipo json su cui è possibile effettuare query anche molto complesse, senza peraltro essere costretti ad una rigida struttra del record tipica dei database SQL classici.

Nella seconda parte di questa guida vedremo alcuni esempi pratici di utilizzo.


Se ti è piaciuto il tutorial, ringrazia l’autore scaricando l’app “Fai per tre!” per iPhone, gratis in App Store

.

fai-per-tre-iphone

Share this story:
  • tweet

Tags: backend iOS android applogin app iOS tutorialparse tutorialpush notification iOStutorial parse.comTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Author Description

Fabio detiene uno dei più assurdi nickname del panorama iOS: 'il Malvagio Dottor Prosciutto', opera dei suoi figli. Twitta di iOS e mondo mobile in generale col nick @theEvilDocHam

7 Responses to “T#108 – Creare un backend potente e scalabile per le proprie app in pochi minuti con Parse”

  1. 24 Aprile 2012

    Patapple

    Ciao!! Bel tutorial. Riuscireste a fare un tutorial oppure illustrare come usare un servizio del tipo che da un sito web o da qualsiasi parte io possa scrivere un testo e inviarla come notifica push a tutti gli tuenti che hanno installato l’app. È possibile questo?

  2. 30 Aprile 2012

    Gruppio

    Grazie, quello che cercavo!

  3. 13 Maggio 2012

    Luca

    lo strumento mi sembra ottimo… ci sono anche dal sito dei tutorial interessanti…. nel prossimo tutorial pensate anche di inserire “un metodo per creare amicizia” tra gli utenti dell’App?? non mi pare che ci sia nulla di questo sui tutorial del sito (anche se ho guardato in modo veloce i video e poco il blog) e non avrei idea di come strutturare la cosa!! Complimenti per il tutorial!

  4. 14 Maggio 2012

    Fabio

    Sono un po’ in ritardo con la seconda parte (scusatemi, il lavoro mi uccide…), ma se riesco metterò il codice di base per creare una “chat”…

  5. 14 Maggio 2012

    Luca


    Fabio:

    Sono un po’ in ritardo con la seconda parte (scusatemi, il lavoro mi uccide…), ma se riesco metterò il codice di base per creare una “chat”…

    Il lavoro fa male… l’ho sempre sostenuto……. e molti mi hanno creduto!!

  6. 21 Agosto 2012

    Biggolo


    Fabio:

    Sono un po’ in ritardo con la seconda parte (scusatemi, il lavoro mi uccide…), ma se riesco metterò il codice di base per creare una “chat”…

    Sarebbe davvero una bella cosa…. !!!!

  7. 4 Agosto 2014

    Luca

    Bella, ma la seconda parte dove la trovo?

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO