android_porting_windows_10

Dopo avervi mostrato le quattro novità del Windows Store in arrivo e un video su come effettuare il porting sul Windows Store di un’app Android, oggi scendiamo nei dettagli, chiarendo cosa può essere trasformato del codice Android in un’app per Windows 10 Mobile grazie al progetto Astoria.

Servizi Microsoft

Quando Windows 10 Mobile verrà distribuito verso la fine dell’anno, ricompilando le app, saremo in grado di eseguire tutte quelle sviluppate per Android sugli smartphone e sui tablet di piccola dimensione (non sui Surface, notebook o PC desktop). Probabilmente verranno eseguite in un sottosistema Android basato su KikKat. Kevin Gallo di Microsoft è ottimista sull’argomento: “Crediamo che avremo una buona compatibilità perché è basato su AOSP (Android Open Source Project)”.

Questo non vuol dire che qualsiasi app Android funzionerà. Bisognerà apportare alcune modifiche. “Sostituiamo i servizi Android con i nostri” ha detto Gallo. “Stiamo lavorando per trasformarli nei nostri – concettualmente funzioneranno come Windows app, in modo da utilizzare un livello middleware per tradurre le API Android in quelle utilizzate da Windows”.

Per quanto riguarda le prestazioni e la durata della batteria, Gallo suggerisce: “Le applicazioni non vengono eseguite in background e vengono apportate delle modifiche per farle funzionare nel migliore dei modi”. Ovviamente le funzioni di base (file system, sensori, connessioni, ecc.) verranno convertite automaticamente in quelle utilizzate da Windows.

Le app saranno disponibili nel Windows Store piuttosto che nel Play Store e non utilizzeranno, in alcun modo, i servizi Google. Ad esempio, al posto di Google Ads e Google Analytics, useranno i Microsoft Ads e App Insights; al posto delle notifiche push useranno le notifiche Windows; al posto di Google Maps useranno Bing Maps; al posto dei servizi di Google Play useranno i servizi Xbox Live. Gli sviluppatori potranno apportare tutte queste modifiche con “zero o pochissimi ritocchi”. Se però decideranno di introdurre funzionalità aggiuntive, come le live tile, avranno bisogno di lavorare un po’ di più.

Non tutte le applicazioni Android funzioneranno correttamente in questo modo. “Le app di messaggistica, e tutte quelle che svolgono il loro lavoro anche in background, avranno sicuramente dei problemi di esecuzione” afferma Gallo, “ed avranno un impatto negativo per quanto riguarda le prestazioni”. Ha però sottolineato che “non tutte le app funzionano in tutte le distribuzioni di Android”.

Gallo e tutti gli altri dirigenti di Microsoft tengono a sottolineare che, portare le app Android in Windows 10 non è l’unico modo. Trasformare siti internet in applicazioni universali per Windows richiederà pochissimo tempo e permetterà la gestione delle notifiche push, l’aggiornamento delle live tile e tante altre funzionalità che fino ad oggi solo una vera e propria app può gestire. Allo stesso modo le applicazioni .NET e Win32, che abitualmente usiamo sui nostri desktop, potranno essere facilmente convertite in app universali per godere delle stesse funzionalità. Infine, le app attualmente disponibili per iOS potranno essere ricompilate anche per Windows, riutilizzando gran parte del codice già scritto in Objective-C.

Islandwood: conversione semplificata delle app di iOS

L’SDK del progetto Islandwood per gli sviluppatori iOS è molto più potente rispetto a quello del progetto Astoria (anche se, secondo Microsoft, gli sviluppatori delle app Android riescono a riutilizzare più codice di quelli che sviluppano per iOS) poiché riescono ad ottenere il pieno accesso alle API di Windows 10 – e quindi possono creare le Windows App in grado di funzionare su smartphone, tablet, desktop (e potenzialmente anche su Xbox e HoloLens).

Ovviamente le app contenenti il codice Android verranno sviluppate come Windows App per motivi di sicurezza, ma saranno degli APK Android e verranno eseguiti solo su smartphone e piccoli tablet perché solo la versione Mobile ha il sottosistema Android (almeno per quest’anno).

Perché non avviene la stessa cosa per le app iOS? A causa di problemi tecnici e per evitare potenziali problemi legali per il runtime.

Perché Microsoft ha optato per l’Objective-C e non Swift? Perché “c’è un sacco di codice scritto in Objective-C ma guarderemo Swift“.

Limiti del porting

Microsoft è, ovviamente, interessata al miliardo di dispositivi pronti per essere aggiornati a Windows 10. Per questo motivo ha deciso di intraprendere questa strada e di rendere più facile e meno costoso per gli sviluppatori portare le proprie app in Windows 10. “Stiamo facendo tutto il possibile per ridurre gli sforzi di sviluppo per la nostra piattaforma, in modo da poter sviluppare in modo efficiente e riutilizzare il codice già scritto, per quanto possibile, invece di doverlo riscrivere su tutte le piattaforme” afferma Gallo – ed ammette liberamente che non sempre è facile.

Non è assolutamente immaginabile che il supporto alle app Android e iOS possa disincentivare lo sviluppo delle Windows App, a causa delle limitazioni del porting: “l’esperienza utente [di un’applicazione sviluppata per uno schermo piccolo] funzionerà sul desktop, ma non sarà accettabile per tutta la gamma di dispositivi”. Come lo stesso Gallo ha sottolineato “potrebbe non essere un’esperienza efficace”.

Inoltre, un’app Android o iOS in esecuzione su Windows 10 con la modalità Continuum non funzionerà poiché non sarà disponibile una interfaccia desktop fruibile con mouse e tastiera.

Una mano agli sviluppatori

Il supporto alle app Android consentirà di portare, in modo semplice e quasi indolore, le applicazioni più semplici sviluppate dalle organizzazioni, che vogliono avere le loro app ovunque ma non vogliono spendere soldi e tempo nello sviluppo. “Le banche e gli alberghi saranno un esempio abbastanza buono” suggerisce Gallo. Inoltre, gli utenti Windows potranno accedere a tutte le app Android disponibili in Cina, che utilizzano AOSP e non hanno i servizi Google.

Conclusioni

Microsoft ha deciso di effettuare il porting delle app Android/iOS perché c’è la necessità di colmare il gap esistente sulle app disponibili e, per farlo, ha bisogno che gli sviluppatori si avvicinino all’ecosistema Windows 10. Come ha affermato lo stesso Gallo: “vogliamo ristabilire il contatto con gli sviluppatori”, “abbiamo fatto molte false partenze e ora stiamo cercando di sistemare le cose”. È sicuramente un primo passo, ma sarà quello giusto? Diteci la vostra nei commenti.

Articolo di Windows Blog Italia