AIR pour mobiles – Bug de Google Maps (freeze) enfin pris en compte par Google
Dans tous les frameworks vraiment natifs (Android et iOS), se trouvent des composants par défaut pour afficher une carte, pour indiquer une géo-localisation par exemple. Ces composants sont en fait des carte Google Maps optimisées pour mobile qui sont bien pratiques puisqu'elles vous permettent de vous focaliser sur vos problématiques métier et pas sur la création d'une carte.
Dans un cadre "classique" web, on utilise le SDK Google Maps for Flash pour pouvoir intégrer une carte dans son application AS3 ou Flex.
Pour les applications AIR, on fait de même, seul le mécanisme de licence change. Le système de licence web est lié à une clé correspondant à une URL ce qui n'est pas adapté à une application AIR. Google expliquait donc qu'il fallait donner une url par laquelle l'application pouvait être téléchargée.
L'intégration se fait très bien dans une petite application mais lorsque vous avez une application plus conséquente, vous allez remarquer un bug plutôt bloquant. L'application se gèle pendant un temps qui peut aller jusqu'à 20 secondes. L'application n'est plus accessible et le système la croit plantée.
Un bug a été rentré il y a quelques mois sur la bug base de Google Maps SDK:
Bug: AIR application freezes on initialization for 15+ seconds
Ce bug a été maintes fois reproduit, aussi bien sur Mac que sous Windows. Un des utilisateurs a même commenté sur le bug, expliquant la raison possible de ce freeze. Pour autoriser l'application Google Maps semble mettre toute l'application dans un ByteArray avant de l'envoyer pour vérification de licence. Plus l'application est grande, plus cette manipulation va prendre du temps et freezer l'application.
Ce bug était aussi présent lorsque l'on créait une application AIR pour Android ce qui était plutôt gênant. Il existe certes des "hacks" décrits dans les commentaires mais ceux-ci ne sont pas simples à mettre en place ou tout simplement impossible à réaliser avec AIR pour Android.
La bonne nouvelle
La bonne nouvelle est arrivée il y a quelques jours de la part d'un admin "lukem":
Comment 37 by project member lu…@google.com, Dec 01 (2 days ago)
We're looking into it. Thanks!
Status: Acknowledged
Labels: Internal-3246096
Bon, cela ne nous donne pas une date de résolution mais il faut espérer que ce soit bientôt!
ToasterLib – Gestion du resize en v1.0.2
Et oui, déjà des corrections apportées à la ToasterLib. Si vous aviez seulement regardé l'exemple qui se trouve dans les articles de flex-tutorial, vous aviez peu de chance de rencontrer le bug corrigé en question puisqu'il s'agissait d'un bug de resize du Toaster (sur les articles, le SWF a une taille fixe).
Quand on redimensionnait l'application (ou tout du point, le conteneur parent du Toaster, la notification ne bougeait pas et pouvait donc soit être partiellement cachée, soit se retrouver au milieu de la page. Le code était déjà prévu mais pas la logique (j'ai voulu faire une release rapide).
Après quelques switch et une dixaine de lignes de code, ce bug est désormais corrigé.
Les exemples en ligne ont été mis à jour (pensez à vider votre cache).
Vous pouvez donc télécharger le nouveau SWC de la ToasterLib (v1.0.2):
Télécharger le SWC de la ToasterLib
Ou alors, vous pouvez faire un checkout des sources par SVN et la compilez vous-même:
Récupérer la ToasterLib par SVN
Si vous utilisez la ToasterLib (ou que vous comptez l'utiliser) et que vous trouvez des bugs, merci d'utiliser l'onglet "Issue" du projet pour rentrer vos bugs:






