Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

1juin/117

AIR Mobile – Utilisation de Google Maps par StageWebView

L'API Google Maps est disponible sous plusieurs formats. Sous forme d'API JavaScript, qui doit être la plus utilisée ou sous forme d'API ActionScript:

Google Maps API Family

En ce qui concerne l'API ActionScript, vous pouvez récupérer un fichier SWC contenant les composants essentiels comme Map ou Overlay. Quelques tags plus tard, vous pouvez avoir votre carte dans votre application. Mais avant de l'utiliser, il vous faut récupérer une clé API en donnant à Google l'URL de l'application par laquelle vous allez charger l'API. Tout cela pour compter vos nombres de demandes de tuiles et de géocodage (limités en usage gratuit).

Sauf que si vous voulez utiliser une carte Google Maps dans une application AIR, vous n'êtes pas lié à une URL, leur système partait donc en miettes. Il n'était d'ailleurs pas possible d'intégrer une carte Google Maps dans une application AIR pendant un bon moment jusqu'à l'arrivée d'un fix.

Google Maps API for Flash + AIR: How did we ever breathe before?

En plus de passer une clé (propriété "url" sur Map), on passe une "key" qui correspond à une URL par laquelle l'application AIR peut être téléchargée. Franchement discutable comme concept mais le pire n'est pas là.

Le bug qui bloque tout le monde

Alors ils ont beau faire les malins avec leur système de key, les gars du SDK Google Maps se sont complètement plantés. Pour preuve, un Bug Report qui est là depuis le 29 Septembre 2010:

http://code.google.com/p/gmaps-api-issues/issues/detail?id=2750

Pour résumer, si vous l'utilisez dans un projet AIR, votre application freeze pendant 15-30 secondes. La raison est complètement interne à l'API et comme le code n'est pas open source, il n'est pas très facile de savoir d'où vient ce bug. Certains sont quand même aller fouiller dans les tripes de l'API et on trouvé que l'on chargeait toute l'application dans un ByteArray sur lequel on effectuait un cryptage SHA1, sûrement pour les problématiques de clé API. Bref, c'est inutilisable, même si plusieurs "workaround" sont apparus dans le thread dont un monkey patch de la classe SHA1.

Pour les applications mobile, même problème. Sur un système Android, on vous demande même si vous voulez faire un "force close" tellement il pense que l'application ne répond plus. Inutilisable en l'état.

La solution avec StageWebView

Si vous avez besoin de plus de fonctionnalités basées sur l'API AS, vous êtes foutus (vous pouvez toujours utiliser le hack mais attention aux problèmes de licence). Pour une utilisation simple (affichage de carte), il existe une alternative que je ne vais même pas appeler un "hack". De plus, cette solution sur mobile est cross-platform (Android, iOS). Ce que l'on va faire, c'est utiliser la classe StageWebView pour intégrer un navigateur dans son application et afficher Google Maps en version mobile (adapté).

Pour info, @achauvire l'a utilisée dans son application AIR pour iOS (ESEO sur l'AppStore) si vous voulez la tester.

Remplis sous: Adobe Air Lire la suite
12déc/102

LeWeb'10 – Compte rendu et impressions

Et voilà, après 2 jours bien remplis, LeWeb'10 c'est terminé. Si vous n'avez pas suivi l'histoire, LeWeb'10 est un évènement international rassemblant les grands acteurs qui font (ou qui espèrent le faire) le web. L'évènement s'est tenu dans la banlieue parisienne pendant 2 jours, vous trouverez toutes les informations sur http://www.leweb.net. Au programme, des conférences, des intervenants, des workshops et un panel de startup. J'ai été invité par Intel grâce à un concours de bloggeurs, ce qui m'a permis de participer pour la première fois à cet évènement.

Ambiance générale

Il y a quelques semaines, je suis allé au Adobe Business Exchange, à la conf "décideurs" et c'est le type de public que je m'attendais à avoir @ LeWeb'10 vu le prix du ticket d'entrée (2000€ full price). En fait, pas vraiment, il y avait plus d'entrepreneurs à la recherche de Business Angels que de décideurs. J'ai rarement vu autant d'iPad en un seul endroit, assez impressionnent même si la plupart ne faisaient que d'essayer de se connecter au Wifi et de lancer les écrans d'accueil dans tous les sens.

Les conférences se sont toutes tenues en anglais (international oblige), et j'en reparle un peu plus loin. Des invités furent nombreux et de qualité, notamment Twitter, MS, Facebook, FourSquare & co.

Recherche de Wifi sous Windows XP et pas sur iPad !

Recherche de Wifi sous Windows XP et pas sur iPad !

L'ambiance était donc plutôt détendue vu que la plupart des participants étaient là pour faire du networking. Un des bâtiments était réservé aux StartUps, avec notamment un concours permettant d'élire la "meilleure" d'entre elles.
Après la première journée, tous les participants étaient invités à l'hôtel de ville de Paris pour un cocktail (un de plus). Malgré la neige qui a bloqué/découragé pas mal de monde, beaucoup ont répondu présent.

Speakers FR: un niveau d'anglais discutable

Comme de nombreux invités avait fait le voyage vers Paris, l'ensemble des conférences et des workshops ont été données en anglais. Malgré cela, on aurait dit que tous les speakers français s'étaient arrêtés après 3h de Wall Street English.
Le niveau global était inquiétant et parfois à la limite du ridicule, pour le responsable des ARDrones par exemple. Il en va de même pour le député maire de Paris et le cuisinier fou qui l'accompagnait. Je ne suis pas sûr que le France ait brillé pendant ces 2 jours, c'est regrettable.

Yet Another Semantic Twitter Aggregator

J'ai parcouru beaucoup de stands, pratiquement tous, et le bilan que j'en fait d'un point de vue développeur n'est pas grandiose. Je n'ai pas vu de concept vraiment innovant, la plupart ont choisi de surfer sur la vague des réseaux sociaux sur différents thèmes.

Alors c'est peut-être moi qui avait trop d'attentes sur cet évènement mais beaucoup de ceux que j'ai vu faisaient des agrégateurs de contenu Twitter. Pour pouvoir apporter une réelle valeur ajoutée sur ces agrégateurs de flux, la plupart parlent d'analyse sémantique de ces contenus, permettant d'extraire des informations importantes. On a donc des agrégateurs permettant de comparer ce que l'on dit sur vous par rapport à vos concurrents avec de jolis graphiques ou une analyse de vos flux par rapport à ceux des autres pour vous permettre de faire le bon choix. Ajoutez à cela une application iPhone, et vous avez votre startup.

10déc/100

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!

19sept/100

AIR pour Android – Application P2P Radar (Google Maps 3D, Twitter et Stratus)

Avec l'arrivée du SDK Android 2.5 qui commence à être très complet et fonctionnel, on voir arriver de nombreuses applications, présentées sous la forme de mashup. Un mashup, pour ceux qui auraient raté la grande époque du web 2.0, c'est une application qui fait cohabiter et communiquer plusieurs services Web.

Chez Adobe, il y a LCCS (LiveCycle Collaboration Service) qui propose de nombreux services (partage de bureau à distance, communication webcam / audio, tableau blanc partagé, chat, etc.) mais on peut bien sûr utiliser les services d'autres APIs. Parmi les plus célèbres, on a Google Maps (API la plus populaire sur le net) par exemple, qui vous permet d'afficher une carte gratuitement.

L'application présentée dans ce billet est nommée P2P Radar. C'est une application Air (bureautique) avec une version pour Android qui est basée sur le même code source:

P2P-Radar from Mark Doherty on Vimeo.

Elle est développé par un Adobe Platform Evangelist (India) nommé Mark Doherty.

Comme vous pouvez le voir sur cette vidéo, on commence par se logger sur Twitter. Cela se fait grâce au nouveau composant StageWebView d'Adobe 2.5  qui permet d'intégrer dans votre application, le navigateur natif d'Android (un peu comme le fait le composant HTMLLoader classique d'Air). Une fois authentifié, l'application permet d'afficher une carte du monde des différentes personnes connectées à l'application. Celles-ci sont affichées sur la carte 3D par des markers.

Grâce aux possibilités de Peer 2 Peer offertes par le service Stratus, les personnes connectées peuvent communiquer directement. Dans le cas de cette application, on peut appeler directement l'autre personne.

Voici le lien vers l'article original. Bonne nouvelle pour les curieux, les sources sont disponibles en téléchargement !

P2P Radar for Android

27août/100

LCCS – Carte Google Maps collaborative synchronisée avec Whiteboard

Ah, si seulement j'avais le temps d'en faire autant que Christophe Coenraets, je ferais sûrement des trucs super cool comme lui ^^. Jour après jour, il nous présente des applications collaboratives basées sur LCCS (LiveCycle Collaboration Service). Après la vidéo-conférence et le morpion, un peu de cartographie cette fois.

L'application est comme d'habitude, multi-plateforme. Ainsi, il l'exécute sur son mobile Android et l'autre personne qui collabore avec lui l'utilise depuis son navigateur. On peut donc créer une session de collaboration, qui est une room LCCS. A partir de ce moment-là, on arrive sur une page avec une carte Google et plusieurs options:

  • Activer le whiteboard pour pouvoir dessiner avec votre collaborateur sur la carte
  • Inviter un utilisateur: L'application envoie un mail à votre contact contenant un lien vers une page web qui contient l'application. Celle-ci vous connectera directement la personne qui vous a invité
  • Activer / Désactiver le partage de webcam.

Pendant ce temps-là, la carte est synchronisée. Si votre collaborateur zoom in/out ou fait un déplacement, vous verrez directement le résultat sur votre carte.


collab-1

Voir l'article original: Multi-User Google Maps Collaboration on Android

Tester l'application dans votre navigateur (ouvrez plusieurs onglets pour tester)