BLACKBERRY JAM 2013 La compatibilité Android en question
BB10 met à disposition des développeurs un « runtime Android » pour porter très facilement les apps Android sur les nouveaux terminaux BlackBerry. Le constructeur a donné davantage de détails sur les limites et le futur de cette compatibilité.
Selon les sources, le BlackBerry World compterait entre 20 à 40 % d’apps directement portées du monde Android grâce au runtime intégré au système. Rappelons que ce dernier a fait ses débuts avec la version 2.0 du PlayBook. Il permet à un développeur de prendre son fichier exécutable APK et de le transformer par une moulinette en un app BB10 directement publiable sur le BlackBerry World. Évidemment, ce runtime a ses limites. Ainsi, il est basé sur la version Open Source 2.3 d’Android, ce qui implique que les API nouvelles introduites par Jelly Bean – et d’une manière générale les versions 3.x et 4.x – ne sont pas supportées, mais surtout que tout ce qui est services sous licence Google, et API associées, ne sont pas, eux non plus, présents. Lors de la JAM Europe 2013, BlackBerry est longuement revenu sur d’autres limitations, sur les motivations derrière ce Runtime et sur les évolutions à venir.
Android ne balance pas !
La limitation la moins connue de ce runtime est qu’il est incompatible avec l’univers Travail de BlackBerry Balance. Dès qu’un smartphone BB10 est connecté une première fois à un serveur BES10, deux profils imperméables sont automatiquement créés au sein du terminal : un profil Travail, administré et contrôlé par l’entreprise, et un profil Personnel entièrement contrôlé par l’utilisateur. Les deux univers sont hermétiques et aucune information, aucun fichier, aucune donnée ne peut être transférée ou copier/coller d’un univers à l’autre. Chaque profil accueille ses propres applications. Et une même application peut être installée à la fois dans l’univers Travail et dans l’univers Personnel et adopter alors un comportement propre à chaque usage. Ainsi, l’application Twitter intégrée à BB10 est, au départ, monocompte. Pourtant une fois Balance activé, l’utilisateur dispose d’un Twitter sur l’environnement Personnel (avec son compte perso) et d’un Twitter sur l’environnement Travail – sur lequel il déclarera un compte Pro. Ce n’est qu’un exemple, mais il est vrai pour n’importe quelle app et illustre bien la dualité générée par l’activation de Balance. Mais il existe une limitation majeure : les apps basées sur le runtime Android ne peuvent pas s’exécuter, ni s’installer, dans l’univers Travail.
Des freins politiques
Des raisons autant techniques que politiques sont à l’origine de cette limitation. D’une part, le fonctionnement même du Runtime se heurte aux protections imposées par le monde administré du profil Travail. En théorie, il est techniquement possible d’imaginer avoir une version du Runtime, isolée et profitant du fonctionnement « sandboxé » des apps exécutées par le noyau QNX de BB10. Mais cela imposerait de dupliquer le Runtime pour chaque profil ce qui aurait un lourd impact à la fois sur la consommation mémoire et la consommation batterie. Pour certains développeurs de l’univers Android, disposer ainsi d’une version fortifiée d’Android serait un atout pour leurs offres et pour BlackBerry malgré l’embonpoint engendré. Cependant, comme l’explique Tim Neil, Director Application Platform & Tools de BlackBerry, même si les ingénieurs de BB10 arrivaient techniquement à garantir un fonctionnement totalement isolé des Apps Android, le problème politique demeurerait : « La vaste majorité de nos clients “Entreprise ” ne veulent pas voir les Apps Android apparaître dans le profil Travail de BlackBerry Balance. Ils sont très insistants sur ce point ! »
Solution à court terme uniquement
Il existe toutefois un autre volet politique non abordé par Tim Neil. La multiplication des apps Android n’est pas, à long terme, un atout pour BlackBerry. Alec Saunders, VP Developer Relations BlackBerry, reconnaît que cette compatibilité a été un atout extraordinaire pour le lancement et reste un avantage à court terme. Si BB10 a été introduit avec plus de 70 000 apps disponibles au jour du lancement, c’est en bonne partie grâce à cette compatibilité qui a favorisé les portages. En outre, elle permet aux développeurs de prendre contact, en toute simplicité, avec la plate-forme et de se convaincre de l’intérêt et de la rentabilité du marché BlackBerry. « Démarrer avec un Store riche était notre priorité avant
le lancement. Mais, maintenant que nous sommes enfin disponibles et que nous entrons en concurrence frontale avec la concurrence, il devient important de privilégier la qualité des Apps et la mise en avant des avantages et particularités de notre plate-forme. Rien ne vaut les développements natifs sous Cascades pour cela. C’est désormais notre nouvelle priorité », explique Alec Saunders.
Android 4.1 en approche
En théorie, on pourrait très bien imaginer voir BlackBerry créer des API spéciales pour permettre aux applications Android de mieux s’intégrer au coeur de BB10. « Ce n’est ni dans notre intérêt, ni dans l’esprit même de la conception de notre runtime Android », confirme Alec Saunders. Le but du runtime est avant tout de porter directement un APK Android sur BB10 sans aucune modification ou avec des modifications les plus minimales possibles. Il est vrai que si un développeur tient à limiter son effort de spécialisation sur différentes plates-formes, il peut aujourd’hui s’orienter sur la multitude de solutions de développements multi plates-formes (Sencha, Cordova/PhoneGap, Mono, Appcelerator, Mippin App Generator, Unity, Marmalade, DeveloperIQ, etc.) au lieu de simplement transférer son APK. Cependant, BlackBerry a aussi bien conscience des limitations imposées par l’utilisation du Runtime 2.1. Lors de la JAM, le constructeur a annoncé travailler au support du runtime 4.1 Jelly Bean d’Android, dernière version Open Source en date du Système. Cette adoption de Jelly Bean permettra aux dernières déclinaisons des apps Android de s’exécuter sur les terminaux BlackBerry et, dès lors, offrira à ces derniers des apps plus évoluées. Toutefois, ce support ne sera pas pour tout de suite. Développeurs et utilisateurs devront prendre leur mal en patience. Selon Tim Neil, BlackBerry dispose déjà d’une version fonctionnelle du runtime 4.1, mais un gros travail d’adaptation des API doit encore être réalisé. Le runtime ne sera donc pas introduit avec la version 10.1 du système dont seront équipés les Q10 – et qui a été annoncée à la JAM Europe 2013 avec l’introduction d’une béta du SDK 10.1. Mais il devrait toutefois voir le jour avant la fin de l’année, en même temps qu’une mise à jour majeure du système.<