Push notification: queste sconosciute – Parte 1

Print Content | More

push1

In principio fu l'iPhone, poi venne Windows Phone: si parla tanto oggi di Push Notifications, ma di cosa si tratta realmente?

Come sappiamo, anche se con le dovute differenze, Windows Phone 7 e iPhone sono sistemi operativi monotasking (anche se iOS 4 ha cercato di colmare questa lacuna fornendo alcune API che gli sviluppatori possono utilizzare per rendere alcune componenti delle loro applicazioni multitasking): questo vuol dire che abbiamo la possibilità di eseguire una sola applicazione alla volta. Se vogliamo utilizzarne un'altra, dobbiamo chiudere quella corrente, tornare al menu principale e selezionarla.

Le applicazioni cercano di "mascherare" questo limite gestendone lo stato e facendo si che quando l'utente riapre l'applicazione precedente questa compaia esattamente come era stata lasciata. Vedremo in un post dedicato come Windows Phone gestisca questo tipo di situazioni, offrendo degli eventi che ci permettono di gestire il fatto che la nostra applicazione sta per venire sospesa o chiusa definitivamente.

Questo sistema non permette però di soddisfare un'esigenza che molti sviluppatori hanno: notificare l'utente di un evento anche mentre non stanno usando la nostra applicazione. Gli esempi sono tanti: pensiamo ad una applicazione di messaggistica, sportiva oppure di tracciamento di un pacco spedito. Sono tutti programmi che, in qualche momento della loro vita, hanno bisogno di avvisare l'utente che è successo qualcosa: ha ricevuto un messaggio, la sua squadra del cuore ha segnato, il pacco che sta aspettando è in transito.

Le notifiche push servono proprio a questo: il nome "push" nasce dal fatto che non sono le applicazioni a richiedere ciclicamente al server se ci sono novità (questo meccanismo in termini tecnici si chiama polling), ma é il server stesso che, dopo aver registrato una connessione con il telefono, si incarica di avvisarlo quando c'è qualche novità.

Questo sistema, oltre ad essere più intelligente, diventa indispensabile su un device mobile, dato che garantisce un consumo di risorse molto minore, consentendo quindi una maggiore efficienza e un consumo inferiore della batteria.

Windows Phone vs iPhone

Entrambi i sistemi offrono la possibilità di usare notifiche push e il loro utilizzo è molto simile. Quello che cambia nei due sistemi è il tipo di notifiche push che lo sviluppatore può implementare nelle sue applicazioni.

iPhone offre tre modi di gestire le notifiche push:

  • Tramite un avviso sonoro
  • Tramite un pop up visuale
  • Tramite un badge, ovvero il piccolo cerchio rosso con all'interno un numero visualizzato sull'icona dell'applicazione.

Il sistema stesso ci offre esempi di tutte e tre le notifiche: quando riceviamo un SMS o veniamo avvisati di un evento nel calendario, viene utilizzata una notifica di tipo audio e una di tipo pop-up. Quando controlliamo la posta, invece, viene utilizzata una notifica di tipo badge, che ci notifica sull'icona di Mail quante mail non lette abbiamo.

Windows Phone offre anch'esso tre tipi di notifiche, a mio avviso più potenti e complete di quelle dell'iPhone e che permettono allo sviluppatore di gestire una maggiore varietà di situazioni. Abbiamo infatti:

  • Le notifiche di tipo RAW: come si può dedurre dal nome, è il tipo di notifica che da la massima libertà, dato che può contenere dati e informazioni di qualsiasi tipo. Il limite di questa tipologia è che funziona solamente se l’utente ha l’applicazione aperta in quel momento: in caso contrario, la notifica viene respinta e rispedita la mittente.
  • Le notifiche di tipo Toast: sono quelle più “intrusive”, in quanto comportano la comparsa di un alert visivo nella parte superiore del display. Sono collegate anche ad un avviso sonoro e ad una vibrazione del device.
  • Le notifiche di tipo Tile: sono le notifiche collegate appunto ai tile, ovvero i riquadri in home page  che corrispondono alle varie applicazioni. Possono contenere un testo, una immagine e un numero i quali, combinati tra di loro, vanno a formare la tile vera e propria.

Come funzionano?

L’architettura che sta alla base delle notifiche push è simile in entrambi i sistemi. Gli attori in gioco sono fondamentalmente tre:

  • Un applicazione server (da noi realizzata) che genera le notifiche.
  • Un server centrale, che riceve le notifiche e le smista ai device.
  • Il telefono, che viene registrato sul server e abilitato a ricevere le notifiche.

In entrambi I casi, avviene un accoppiamento tra il device e il server centrale: in questo modo, non siamo noi a doverci preoccupare di smistare le notifiche alle persone che hanno installato la nostra applicazione, ma ci pensa la “casa madre” (Microsoft o Apple a seconda dei casi). La nostra unica preoccupazione è quella di generare la notifica, secondo le regole stabilite dal produttore. Qui sotto possiamo vedere una rappresentazione grafica dell’architettura di Microsoft, ma quella di Apple è sostanzialmente identica, solo che il Microsoft Push Notification Service è sostituito da un analogo servizio di Apple.

WP7-HOL Manual V14_page81_image1

Nel prossimo post ne analizzeremo meglio il funzionamento e vedremo vantaggi e svantaggi delle notifiche push in entrambi i mondi.

Stay tuned!


IPhone , Notifiche push , Windows Phone

1 comments

Related Post


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


  1. #1 da http://qmatteoq.tostring.it/blog/post/push-notification-queste-sconosciute

    La gestione dello stato delle applicazioni su Windows Phone 7

  2. #2 da http://qmatteoq.tostring.it/blog/post/usare-entity-framework-4.1-code-first-e-sql-ce-4.0-per-gestire-un-servizio-di-push-notifications

    qmatteoq.tostring.it - Usare Entity Framework 4.1 Code- First e SQL CE 4.0 per gestire un servizio di push notifications