La guerra delle piattaforme software nella telefonia mobile si combatte senza esclusione di colpi: Samsung, tradizionalmente legata all’hardware, invade il territorio delle software house proponendo Bada. Vediamo meglio di cosa si tratta…
L’obiettivo di Samsung è dichiarato: rendere gli smartphone alla portata, anche economica, di tutti, in modo tale che chiunque possa godere dei vantaggi di questi dispositivi evoluti, attualmente disponibili solo per una piccola percentuale di utenti.
Bada, descritta come una piattaforma smartphone per le masse, è lo strumento che, nella visione di Samsung, permetterà la realizzazione di questo scenario (pomposamente definito dall’azienda coreana “la smartphone era, una nuova democrazia per miliardi di persone”).
Ma, sostanzialmente, di cosa stiamo parlando?
Una volta spazzato il fumo che avvolge il sito ufficiale del progetto, si capisce che abbiamo di fronte il tentativo di Samsung di seguire la strada intrapresa, ormai, da tutti i maggiori player nell’ambito della telefonia mobile: ottenere la fidelizzazione del cliente.
Quali sono gli strumenti per raggiungere questo risultato?
- La creazione di ambienti software sempre più pervasivi (che, spesso, vanno oltre il dispositivo fisico rappresentato dal telefono, si pensi a Vodafone 360).
- La connettività totale (si pensi, ad esempio, al supporto a programmi di instant messenger e social network, un modo per ottenere una compatibilità sulle informazioni non avendo quella sulle applicazioni).
- Fornire applicazioni e servizi che coprano tutte le esigenze del consumatore (fulcro dei quali sono i vari market da cui recuperare i software).
La battaglia non si combatte più confrontando soltanto il dispositivo in se (per quanto questo abbia ancora importanza), ma si sposta sempre più verso ciò che permette di fare.
Ovviamente una strategia del genere non può avere successo se non si pensa anche all’altra faccia della medaglia: gli sviluppatori. Come già sottolineato nell’articolo dedicato all’ambiente di sviluppo per Android personalizzato da Motorola, chi crea il software ha un ruolo fondamentale nella formazione di quell’ecosistema mobile che, per forza di cose, non può basarsi unicamente su quanto messo a disposizione dai progettisti della piattaforma.
Anche Bada non sfugge a questa regola, mettendo a disposizione degli sviluppatori un IDE (Integrated Development Environment) e un SDK (Software Development Kit) che puntano a facilitare il più possibile la creazione di software. In aggiunta è stato creato anche un sito dedicato agli sviluppatori che rappresenta un buon punto di partenza per capire la piattaforma da un punto di vista tecnico.
Partiamo dall’architettura del sistema come descritta nella seguente immagine:
Alla base di tutto c’è il kernel, o per meglio dire, un kernel. Infatti una delle più interessanti caratteristiche della piattaforma è quella di non essere strettamente legata a un certo tipo di kernel, il cui unico obbligo è quello di essere real-time (cioè, per dirla semplicisticamente, avere la capacità di compiere le operazioni in tempi deterministici). Come ovvio Linux si suppone sarà una delle scelte più gettonate per lo sviluppo dei nuovi dispositivi Bada (voci di corridoio suggeriscono che anche il nuovo Wave abbia il Pinguino al suo interno).
Il Device Layer si occupa di implementare alcune delle più importanti funzioni del dispositivo tra cui la parte strettamente telefonica e quella relativa al sistema di gestione della grafica.
Allontanandosi dal kernel l’astrazione aumenta sempre di più: il terzo layer (Service) si occupa di implementare una delle idee portanti di Bada, cioè quella di essere una piattaforma service-centric, dunque fondata sui servizi, siano essi locali o remoti.
Per ultimo abbiamo lo strato Framework, il più importante per gli sviluppatori perché l’unico con il quale si possa effettivamente interagire: questo livello mette infatti a disposizione un’API (Application Programming Interface) per creare applicazioni e sfruttare quanto messo a disposizione dagli strati sottostanti.
C++ è il linguaggio che, al momento attuale, è previsto si utilizzi per la scrittura delle applicazioni. La documentazione mette in mostra una serie di namespace (che potremmo definire, in maniera poco ortodossa, contenitori) all’interno dei quali troviamo le classi che ci permetteranno di sfruttare le potenzialità dello smartphone.
Tralasciando i namespace principalmente dedicati agli aspetti tecnici della programmazione (come ad esempio Base che fornisce i tipi di dato, l’implementazione dei thread, i meccanismi per la sincronizzazione…), andiamo a descrivere alcuni di quelli che, invece, possono essere considerati interessanti dal punto di vista delle funzionalità.
- Graphics: il framework mette a disposizione classi per la gestione della grafica sia 2D (primitive, bitmap e font vettoriali) che 3D (OpenGL ES 1.1 e 2.0, EGL). Sembra che Samsung punti molto su Bada anche come piattaforma per il gioco in mobilità, quindi questa parte dovrebbe essere di qualità elevata.
- Ui: namespace dedicato alla creazione di interfacce grafiche. Oltre alla gestione degli eventi e all’utilizzo dei normali elementi a cui gli attuali sistemi operativi per smartphone ci hanno abituato, lo sviluppatore ha la possibilità di utilizzare tutto quanto messo a disposizione da TouchWiz 3.0, l’interfaccia utilizzata da Samsung per la sua linea di telefoni Bada enabled. Stiamo parlando di controlli avanzati contenenti elementi Flash, mappe, animazioni, pagine web (sfruttando la tecnologia Webkit), ma anche di elementi tipici del sistema operativo, come ad esempio, il tastierino virtuale o il multi-touch. Sembra inoltre che si potrà sfruttare un tool grafico (UI Builder) per costruire le GUI (Graphical User Interface).
- Uix: fornisce classi che facilitano l’interazione avanzata con l’utente. In sostanza permettono la gestione di componenti come i vari tipi di sensori presenti in un telefono (accelerazione, magnetico, di prossimità…), il GPS, la fotocamera… In aggiunta troviamo funzionalità avanzate come il riconoscimento di pattern di movimento o la localizzazione di visi mediante la fotocamera.
- Media: per la gestione di file e flussi multimediali. Si potranno, quindi, usare le funzionalità che permettono la riproduzione e registrazione di stream audio/video e l’elaborazione di immagini. Interessante il supporto a diversi tipi di file (tra gli altri H.263, H.264, MPEG-4 e VC-1).
- Social: namespace che permette di gestire i dati personali dell’utente come, ad esempio, la rubrica contatti, il calendario e i log delle varie attività intraprese dal proprietario del telefono. Non solo: la piattaforma ha implementato, tramite i bada Server, quello che viene chiamato SNS (Social Network Service) gateway, cioè un’interfaccia comune ai vari servizi di social networking (al momento attuale supportato solo Twitter). Ciò significa che, potenzialmente, da un unico punto di accesso si avrà la possibilità di gestire le informazioni dirette verso i vari servizi (ma anche da essi provenienti), come ad esempio la buddy list. Allo stesso modo si centralizzeranno le operazioni in maniera trasparente (pensiamo all’indirizzamento di un messaggio verso un utente, fatto senza la necessità di conoscere il “veicolo”).
- Content: classi dedicate alla gestione dei contenuti (e alla loro ricerca) sia in locale (cioè dati fisicamente presenti nel telefono) che in remoto (dati presenti nella “nuvola”), funzionalità ottenuta sempre tramite l’intermediazione dei bada Server.
- Locations: insieme di classi per la gestione dei servizi di posizionamento (associati al GPS). Tra le altre interessanti caratteristiche c’è la possibilità di conoscere la posizione relativa a dispositivi remoti (quindi, ad esempio, gli smartphone dei vostri amici) da individuare, poi, nelle mappe (servizio offerto da deCarta). Il tutto avendo sempre un occhio di particolare riguardo verso la privacy.
- Web: per ultimo ricordiamo le classi che permettono di utilizzare le funzionalità di un browser web all’interno della propria applicazione, in speciali elementi dell’interfaccia grafica.
Da questa breve panoramica si può capire come la piattaforma abbia buone potenzialità, in particolare tenendo conto della focalizzazione sui servizi provenienti dalla “nuvola”, compresi quelli di social networking.
Quale è la principale nota stonata in tutto questo?
Fondamentalmente il fatto che, nonostante la parola open sia ripetuta in lungo e in largo in tutti i siti dedicati a Bada, al momento attuale l’SDK e l’IDE possono essere scaricati soltanto da membri del gruppo Bada Developers che hanno ottenuto la qualifica di Partner. Non siamo riusciti a trovare nel sito i requisiti necessari per raggiungere tale status (se non si considerano generiche frasi più legate al marketing che alla sostanza): si può supporre che soltanto aziende con un interesse immediato nella piattaforma al momento possano accedere agli strumenti citati precedentemente e, di conseguenza, valutare efficacemente Bada. Agli sviluppatori non partner rimane soltanto la possibilità di spulciare gli ottimi tutorial in pdf messi a disposizione nel Developer site.
Ricordiamo inoltre come l’IDE e l’SDK vengano forniti, al momento, per i soli sistemi Windows; colpisce l’assenza di strumenti di sviluppo su Linux, in particolare se si tiene conto che la toolchain è basata su software GNU.