Appare evidente che gli sviluppatori preferiscono rilasciare applicazioni, utility e giochi per la piattaforma Windows Phone 8, trascurando non poco la versione 7.x, ed i motivi sono tanti del perché questa loro reticenza riguardo la piattaforma WP7.x: proviamo dunque ad esaminarne soltanto qualcuna, alfine di farci un’idea chiara di questo loro atteggiamento e soprattutto capirne il motivo.
Alla base di tutto c’è l’investimento di tempo ed energie che sono le componenti basilari per potere sviluppare un’app in termini di studio, di pratica e di litri di caffè. Come è noto, le app WP7 girano anche su WP8, mentre le app WP8 non girano su WP7.
Gli scenari possibili sono due:
Windows Phone store
uno sviluppatore che ha già sviluppato app per WP7, oltre ad aver già acquisito la competenza necessaria, sa qual è l’attuale base di installato di ogni sua app (in termini di numero di download, di app vendute, ecc.) e può basare su questo dato la decisione se, e fino a quando, continuare a supportare WP7. Banalmente, dati alla mano, può valutare il rapporto costi/ricavi.Uno sviluppatore che inizia oggi a sviluppare per Windows Phone deve valutare e decidere se l’app dovrà essere basata su WP7 (e quindi girare su WP8 senza sfruttare le novità di WP8), solo su WP8 (e quindi non potrà girare su WP7) o supportare entrambe le piattaforme.
Conoscere entrambe le piattaforme ovviamente richiede più impegno. Dopo la fase di apprendimento e di sperimentazione, l’obiettivo dello sviluppatore è minimizzare il tempo necessario per scrivere e pubblicare l’app su cui sta investendo.
Che si tratti di un’app innovativa o di un’app che fornisce maggiori o migliori funzionalità rispetto ad altre app già presenti nello Store, più tempo passa e più è probabile che appiano altre app simili o che vengano rilasciate nuove versioni dell’app “target” (quella di cui ha individuato le carenze) che annullino il vantaggio competitivo dell’app che intende pubblicare.
Supportare entrambe le piattaforme
La scrittura del codice per supportare entrambe le piattaforme può avvenire in due modi:
gestendo un unico progetto in cui scrivere tutto il codice, differenziando le parti specifiche a WP7.x da quelle per WP8 in alternativa, si possono gestire due progetti distinti, uno per ciascuna piattaforma.
La separazione del codice agevola il compito, ma in entrambi i casi (unico progetto o progetti separati), come si può intuire facilmente, è richiesto un lavoro extra in termini di scrittura, di organizzazione e di manutenzione del codice. Aumenta comunque la complessità. Se lo sviluppatore è un professionista, l’obiettivo è ottenere la remunerazione dell’investimento a breve‐medio termine. Maggiore è la complessità, più tardi inizierà ad essere remunerato l’investimento, e quindi maggiori saranno i costi da coprire.
Ci sono moltissime modifiche a livello di librerie di programmazione tra WP7 e WP8, con comportamenti parzialmente incompatibili o del tutto incompatibili. Tutto ciò rende più complesso la scrittura e il test dell’app. Giusto per farvi un’idea del numero di modifiche introdotte (da considerare e testare se si supportano entrambe le piattaforme) potete dare un’occhiata a questa pagina in inglese.
Dati statistici
Numeri alla manoAdDuplex è una società lituana che fornisce agli sviluppatori Windows 8 e Windows Phone un servizio pubblicitario gratuito e mondiale di interpromozione delle app. Grazie alle circa 3000 app che ad oggi hanno aderito a questo servizio, la società è in grado di monitorare l’evoluzione dei terminali Windows Phone su cui appaiono le inserzioni pubblicitarie.Secondo le ultime rilevazioni mensili effettuate da AdDuplex nel 2013 il rapporto, a livello mondiale, tra terminali WP7 e WP8 in cui sono in esecuzione app affiliate a AdDuplex si è evoluto in questo modo:
Statisticamente non è un campione enorme, ma è un campione che descrive esattamente la mutazione nell’ecosistema AdDuplex. Il trend è statisticamente significativo. Considerando la riduzione di prezzo dei terminali WP8, di questo passo tra 7 mesi la diffusione dei terminali WP7 sarà ancora più bassa. Trattandosi di un investimento, la domanda dello sviluppatore è: su quale “titolo” è oggi più remunerativo investire? La risposta è scontata, specie nel caso di uno sviluppatore che si avvicina per la prima volta a Windows Phone.
Il fattore hardwareA livello hardware ci sono differenze notevoli tra i terminali WP7 e WP8 che possono condizionare drasticamente le scelte dello sviluppatore (e quindi della piattaforma) in base all’app da realizzare. Un esempio estremo? Per sviluppare un’app WP che mostra l’altitudine senza ricorrere ai segnali GPS è necessario un terminale con sensore di pressione barometrica (in modo da ricavare la stima dell’altitudine dal valore rilevato dal sensore della pressione atmosferica).
Ad oggi l’unico terminale WP dotato di questo sensore è il Lumia 1020. Se nell’ambito di un progetto per Windows Phone è specificato (o è implicito) che è necessario fornire questa informazione, e che l’app verrà utilizzata prevalentemente al chiuso, lo sviluppatore non potrà fare affidamento sul GPS: non gli resta che utilizzare il sensore barometrico, ossia proporre una soluzione che funziona solo sul Lumia 1020. È un caso limite, certo, ma la scelta diventa obbligata.
A livello di supporto dell’hardware, altri vincoli imposti dal progetto che possono far propendere la scelta dello sviluppatore verso WP8 sono:
- dimensione dello schermo
- quantità di RAM installata (512, 1024 o 2048 MB)
- capacità di memorizzazione (8/16 o 32 GB)
- lettura/scrittura di tag NFC
- versione minima Bluetooth (2.1, 3 o 4)
- presenza della camera frontale (ad es. per un’app di videochat è essenziale!)
- specifici sensori (ad es. il giroscopio non è presente sul Lumia 520 che è il modello Lumia più venduto)
- numero di core della cpu
- utilizzo della scheda SD esterna per salvare dati (cosa non possibile su WP7)
A proposito di app e di hardware, il consiglio ufficiale di Nokia riportato sul sito developer.nokia.com recita più o meno così: “Evitate che la vostra app non supporti i dispositivi privi di una certa funzionalità hardware a meno che non sia realmente essenziale per l’operatività dell’app; ciò limiterebbe notevolmente la distribuzione dell’app senza un motivo reale. Piuttosto, su questi dispositivi considerate di sostituire o disabilitare la funzionalità nell’app. Tuttavia, se l’app ha realmente necessità di una funzionalità per operare correttamente, dovrete impedire che l’app sia resa disponibile sul Windows Phone Store per i dispositivi che ne sono privi”.
Anche il linguaggio ha il suo peso
Il codice dell’app che risponde ai comandi degli utenti tramite l’interfaccia grafica, in WP7 viene scritto utilizzando linguaggi come Visual Basic e C#. Con l’avvento di WP8, è possibile scrivere app utilizzando anche il C++. Perché? Oltre ad attirare ulteriori sviluppatori e a facilitare il porting di codice C++ già esistente, C++ è un linguaggio a più basso livello (semplificando, è un bel po’ più “ostico” ma è più potente) rispetto a Visual Basic e a C# e permette al programmatore di ottenere maggiori prestazioni e di esercitare un maggior controllo sui dettagli di ogni operazione. Su WP8 per scrivere app grafiche spinte (giochi e non) che utilizzano DirectX è obbligatorio utilizzare C++. Per WP7 il problema non si pone: l’opzione C++ non è disponibile, e le app WP7 non possono sfruttare questa potenza.
Supporto prodotto e phase out
Quando terminerà il supporto principale per WP 7.8? Nella pagina “ciclo di vita prodotti” pubblicata dal Supporto Tecnico di Microsoft, la fatidica data riportata è il 9/9/2014: tra 8 mesi. Per WP8 invece si arriva al 12/1/2016. Il phase out si inizia ad “annusare” anche nella documentazione tecnica per sviluppatori: il peso di WP8 è ovviamente preponderante, in termini di numero di pagine dedicate alla documentazione, di esempi di codice e di nuovi modelli preconfezionati per lo sviluppo di app Windows Phone.
In sintesiLo sviluppatore che ha già pubblicato un’app per WP7 dispone sullo Store dei dati statistici relativi all’app (numero di download, fatturato, ecc.), e pertanto sa, dati alla mano, quando sarà il momento di fermarsi. Per lo sviluppatore che si accinge ora a scrivere app per Windows Phone è la prospettiva di mercato a medio termine il fattore guida: sono i dati attuali e il trend di diffusione l’ago della bilancia.