Push notifications: queste sconosciute – Parte 2

Print Content | More

Vantaggi e svantaggi delle notifiche push su iPhone

apple-iphone-3g3_2

Il punto di forza principale delle push notifications su iPhone è probabilmente il prezzo: sono infatti gratuite, non si paga alcunchè ad Apple per usufruire dei loro APN (si chiamano così i server che smistano le notifiche). Un altro punto di forza è che gli APN Apple implementano un sistema di QoS (Quality of Service), che consente il rinvio automatico di notifiche in caso il device non è stato in grado di riceverla la prima volta (ad esempio, perchè disconnesso). Su Windows Phone questa operazione è a carico dello sviluppatore: in caso una notifica non venga consegnata, riceverà semplicemente una notifica del fallimento; è poi a carico suoimplementare un sistema di rinvio delle richieste fallite.

C’è un altro punto di forza, che è stato introdotto con iOS 4: le push notifications locali. Si tratta di notifiche push in tutto e per tutto, con la differenza che non vengono generate da un nostro server remoto ma direttamente dall’applicazione stessa. Questo tipo di notifiche va a coprire tutte quelle situazioni in cui la nostra applicazione contiene già al suo interno le informazioni necessarie per generare notifiche. Pensiamo ad esempio ad un’applicazione che serve per gestire i promemoria delle medicine che una persona deve prendere durante la giornata: prima di iOS 4 sarebbe stato necessario memorizzare su un server remoto questo tipo di informazioni (nome della medicina, orario, ecc.), affinchè la nostra applicazione lato server potesse generare le notifiche push da spedire agli utenti che l’hanno acquistata. Ora invece è possibile non dover più mettere in piedi un’architettura server ove non necessario: è l’applicazione stessa a poter segnalare al device le notifiche. Ovviamente questo non va a rimpiazzare le notifiche tradizionali: tutti gli ambiti che richiedono aggiornamenti in tempo reale (ad esempio, i risultati di un evento sportivo) devono per forza continuare ad avere un’architettura lato server che raccolga le informazioni e generi le notifiche.

Parlando degli svantaggi, il principale è sicuramente la complessità: implementare le notifiche push all’interno di una applicazione iPhone non è affatto semplice, soprattutto per quanto riguarda l’architettura server. La struttura di una notifica push Apple è infatti piuttosto complessa e richiede l’invio di dati in formato binario, con all’interno i vari parametri per definire testo, suono e numero da visualizzare nel badge. Inoltre, sempre lato server, bisogna soddisfare tutta una serie di requisiti di sicurezza come l’installazione di certificati specifici.

Infine Apple, al contrario di Microsoft, non ha un suo “ecosistema” fatto di framework, tool di sviluppo per qualsiasi tipo di applicazione, sistemi operativi server, ecc. O meglio, li ha ma sono scarsamente diffusi e pochissimo utilizzati: mettere in piedi un server capace di generare notifiche push è quindi tutto fuochè semplice, soprattutto se vogliamo integrare questa funzionalità in una applicazione già esistente (ad esempio, un sito web di e-commerce potrebbe voler generare una nuova notifica ogni qualvolta lato backoffice l’amministratore inserisce una nuova promozione). Sia ben chiaro, lo stesso discorso vale anche per Microsoft (anche se come vedremo dopo le notifiche per Windows Phone sono molto più semplici da generare): nel “mondo reale” è però sicuramente più facile trovare un server basato su Windows Server piuttosto che su Snow Leopard Server, o un gestionale  per Windows sviluppato in WPF o Windows Forms piuttosto che un’applicazione Mac basata su Cocoa.

Vantaggi e svantaggi delle notifiche push su Windows Phone

Lg-Windows_phone-7-Settembre_2

Sono principalmente due i grandi punti di forza delle notifiche push su Windows Phone. Il primo è sicuramente la varietà: su iPhone abbiamo 3 tipi di notifiche, che però alla fine sono assimilabili a due, dato che il pop up e l’avviso sonoro sono in realtà due modi per segnalare la stessa cosa. Su Windows Phone invece abbiamo 3 tipi di notifiche completamente diverse, che permettono di gestire una gran varietà di situazioni. Alcune di esse, come le notifiche Tile, permettono inoltre di implementare scenari molto interessanti, che vanno al di là della semplice notifica di un evento. Pensiamo ad una applicazione meteo: sfruttando il fatto che le notifiche di tipo Tile possono contenere un’immagine, un testo e un numero, è semplice pensare ad un’applicazione che, sulla tile in home page, mostri e aggiorni periodicamente le condizioni meteo del luogo in cui si trova l’utente. Le notifiche RAW, invece, pur avendo il limite che possono essere recepite solo ad applicazione aperta, sono completamente personalizzabili e possono contenere informazioni di qualsiasi tipo.

Il secondo grande punto di forza è la semplicità: le notifiche push su Windows Phone non sono nient’altro dei file XML che vengono spediti verso il server di Microsoft con una normalissima POST HTTP. Infatti l’MNP (ovvero il server di gestione delle notifiche push di Microsoft) non fa altro che creare un canale tra il nostro server (che genera le notifiche) e il device, definendo uno specifico URI a cui noi dovremo spedire le nostre notifiche. Se poi abbiamo già un ecosistema di applicazioni sviluppate con tecnologia Microsoft e vogliamo collegarci un sistema di notifiche push l’operazione è quasi banale.

Lo svantaggio principale delle notifiche push è il costo, anche se per ora non c’è nulla di certo: al Remix si è parlato di 500 notifiche gratuite al giorno, ma non è ancora chiaro (nemmeno agli addetti ai lavori) se questo limite sia generale per applicazione o legato invece al singolo device. Inoltre le notifiche push non supportano alcun tipo di protocollo di sicurezza, ad esempio, per poterle criptare: ovviamente una necessità di questo tipo non avrebbe alcun senso per le notifiche di tipo Tile e Toast (dato che possono contenere solo poche informazioni ben definite), ma potrebbe essere utili per le notifiche RAW, che possono contenere dati a piacimento. D’altra parte, è uno “svantaggio” che va preso con le pinze: non trattandosi di un servizio affidabile (le notifiche push non consegnate vengono semplicemente scartate, non esiste nessun meccanismo di QoS), non avrebbe senso mandare dati sensibili tramite una notifica push. Molto meglio, ad esempio, mandare un identificatore che poi la nostra applicazione Windows Phone, tramite informazioni memorizzate nell’isolated storage o chiamando un servizio esterno, può decodificare e mostrare a schermo.

Piccola curiosità: le notifiche push vengono definite “in the cloud” proprio perchè l’MPN fa parte dei servizi che sono hosted su Windows Azure, la piattaforma di cloud di Microsoft.

Per concludere

Insomma, ci siamo fatti una bella panoramica su cosa sono le notifiche push e come funzionano a grandi linee: prossimamente vedremo, in maniera più approfondita, come funzionano su Windows Phone, con qualche esempio e tecnicismo per noi sviluppatori Smile

Stay tuned!


Windows Phone , IPhone , Notifiche push

5 comments

Related Post

  1. #1 da dancerjude Friday July 2010 alle 11:52

    a proposito della caduta di stile di Jobs, l'hai visto questo ?
    http://www.apple.com/it/antenna/

  2. #2 da Matteo Pagani Saturday July 2010 alle 12:30

    Visto visto purtroppo... E stamattina hanno fatto un'altra caduta di stile non da poco... Hanno annunciato in pompa magna il lancio dell'iPhone 4 in Italia e poi ne hanno messi a disposizione si e no 1000 per tutto il territorio italiano. Sin dal primo istante in cui è stato messo in vendita sull'Apple Store Online, la stima di spedizione è di tre settimane. Sembra che abbiano fatto apposta per creare situazioni come quella di stamattina a Carugate: code chilometriche sin dalla notte e risse (fermo restando che le persone che erano la non godono propriamente la mia stima).


(will not be published)
(es: http://www.mysite.com)