//Build 2015: Astoria et Islandwood ou comment Microsoft permet aux applications Android/iOS de tourner sur Windows!

Si vous avez suivi les annonces de la //Build 2015, vous avez sans doute entendu parlé de ce qui a fait un buzz sur la toile: la recompilation d’applications iOS et Android sur Windows (Phone) 10.

Ce petit exploit est rendu possible grâce à 2 nouveaux Toolkit proprosés par Microsoft:

L’objectif de Microsoft est de permettre aux développeurs iOS / Android de prendre leur code source et de le recompiler sur la plateforme Windows, avec un minimum de modifications de code:

CD5tn77VEAINRcB

Bien sur, sous le capot, il y a beaucoup de travail qui est effectué par Microsoft: mapping des contrôles natifs sur Windows, remplacement des appels aux APIs Google Play Services, mapping d’OpenGL sur DirectX grâce au projet Angle, etc.

Techniquement, les applications Android compilées avec le projet Astoria s’exécutent dans un “container” dédié, qui possède un sous-ensemble des permissions Android et Windows. De plus, si certaines applications Windows font du partage vers des “Astoria Android apps”, alors le mapping en Intent (que l’on connait sur Android) sera fait automatiquemet pour vous. En termes d’Android API, seul l’API Level 19 (Kit Kat) est supporté, tout ce qui est au dessus (API Level 20 avec Wear, etc.) ne fonctionnera pas sur Windows.

CD5uEPvUEAAj8VV

Point intéressant: certaines APIs, comme les APIs WinRT pour les Live Tile sont même directement exposées en Java grâce aux principe des projections:

CD8BJiZUIAEEeRh

Microsoft met à disposition des développeurs qui font partis de ce programme Preview, un outil qui permet de tester ses APKs et de dire s’ils sont compatibles avec le project Astoria: https://dev.windows.com/ProjectACompatCheck/SelectAPK?logged_in=1

 

Côté iOS, Microsoft nous propose là-encore de belles choses avec un compilateur et un runtime, des APIs WinRT utilisables depuis du code Objectif-C, etc.:

CD8xha5W0AAVwDK

CD8y-EaWAAAUt0c

CD80G99WgAALiFz

Toutes les APIs ne sont pas supportés malheureusement mais, comme pour Android, les APIs iOS seront mappées sur des APIs Windows:

CD83OzEW8AA4pn0

CD84wRmWIAEgWq2

Pour en savoir plus, n’hésitez pas à (re)voir ces 2 sessions de la //Build:

 

Sans avoir eu l’occasion de jouer avec, c’est toujours compliqué de se rendre compte des possibilités mais, une chose est sûre, l’idée est intéressante (et techniquement impressionnante). N’hésitez pas à vous inscrire aux programmes Preview pour avoir l’occasion de tester ces 2 nouveaux Toolkit!

 

Happy coding! :)

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus