Archive

Articles taggués ‘Google’

Lancement d’Ice Cream Sandwich, la nouvelle version d’Android

La nouvelle version du système d’exploitation Android, nommée Ice Cream Sandwich (version 4.0) a été annoncée par Google cette semaine à Hong Kong.

Cette nouvelle version de l’OS est destinée aux tablettes et aux téléphones. Pour rappel, la précédente version, Honeycomb (3.0), avait été réalisée spécifiquement pour les tablettes. Par conséquent les mobiles Android n’avaient pas vu leur OS évoluer depuis la sortie de Gingerbread (2.3), il y a presque un an. Ice Cream Sandwich va donc permettre de fusionner les deux branches (mobile et tablette) en un seul et même système.

En plus des fonctionnalités héritées d’Honeycomb (accélération 2D matérielle, framework 3D Renderscript, etc.), les mobiles en 4.0 vont profiter des nouveautés suivantes (entre autres) :

  • De nouvelles possibilités de communications entre appareils (WiFi Direct, NFC)
  • Des outils améliorés pour la reconnaissance vocale et l’accessibilité
  • Un outil permettant de suivre et analyser la consommation data des applications
  • Des performances globales améliorées, un nouveau “launcher” d’applications
  • Des applications mises à jour : navigateur web, appareil photo, galerie…
  • Une ergonomie globalement améliorée

Et côté framework, de nouvelles API et fonctions sont fournies :

  • Une API “sociale” pour le partage de contenu avec les contacts, et l’interaction avec les réseaux sociaux
  • Une API pour accéder à l’agenda. Les applications pourront par exemple créer des évènements dans le calendrier de l’utilisateur.
  • Un nouveau type de vue (TextureView) permettant de manipuler des flux d’images (vidéos, OpenGL, appareil photo…) de la même façon qu’avec des vues classiques. Cela va notamment être très pratique pour les animations.
  • Une API pour accéder aux services de reconnaissance vocale et au dictionnaire
  • Un nouveau type de layout permettant d’organiser les vues en grille (GridLayout), à la manière des tableaux en HTML.

Pour la liste complète : http://developer.android.com/sdk/android-4.0-highlights.html

Comme pour chaque nouvelle version, la compatibilité avec les anciennes applications est respectée. Cela veut dire que la plupart des applications existantes vont fonctionner sur Ice Cream Sandwich sans que les développeurs n’aient besoin d’intervenir dans leur code. Ils seront tout de même invités à faire évoluer leurs applications ou à en créer de nouvelles pour tirer parti des nouvelles fonctionnalités offertes.

Concernant la mise-à-jour des terminaux actuels, ce nouvel OS étant assez gourmand en RAM et en ressources graphiques, seuls les smartphones haut de gamme pourront être mis à jour. Les Google Nexus S et Samsung Galaxy S II en feront probablement partie. Google a également annoncé la sortie du nouveau smartphone de la marque, le Galaxy Nexus. Ce mobile high-tech conçu par Samsung sera équipé d’Ice Cream Sandwich dès sa sortie.

Categories: Actualités, Mobile Tags: , , ,

Test d’Android App Inventor

Annoncé le 12 juillet dernier par Google, App Inventor est un projet visant à mettre le développement d’applications Android à la portée de tout le monde. Le projet permet de concevoir en ligne des applications Android avec une interface WYSIWIG (What You See Is What You Get) uniquement par drag’n drop. Il est librement inspiré d’un projet du MIT destiné à enseigner la programmation de façons visuelle et intuitive, Scratch.

Le projet est encore en bêta fermée, mais des invitations sont régulièrement distribuée et j’ai eu la chance d’en recevoir une dans ma boîte mail. Je vous propose donc un petit retour sur l’utilisation de ce nouveau produit Google.

Installation

L’installation est très simple, elle ne nécessite que d’avoir installé une version récente de Java sur son poste. Il n’est même pas nécessaire de posséder un téléphone sous Android, puisque l’utilisation d’un émulateur est possible. Fidèle à lui-même Google propose de développer son application Android via une interface web.

En réalité seule la partie vue de l’application peut être conçue en ligne. Pour la partie contrôle, elle est réalisée dans une application JavaWebStart nommée block editor. En effet, le projet propose de ne plus coder la logique dans un fichier source mais de réaliser un emboîtement visuel de bloc logique à la manière d’un puzzle.

Utilisation

La conception de l’interface se fait par simple glisser-déposer. Les composants classiques sont présents – Button, Label, Checkbox .. – ainsi que d’autres spécifiques aux téléphones tel que l’accéléromètre ou la localisation. Il existe aussi des composants qui font directement appels au système Android tel que le PhoneCall pour passer des appels ou le SpeechRecognizer pour utiliser les fonctions de reconnaissance vocales.

Malheureusement, il manque beaucoup de composants d’Android et il n’est pas possible d’utiliser ceux présents aussi finement qu’avec une programmation classique. Le point particulièrement bloquant est qu’il est impossible d’avoir plus d’un écrans. L’application devra donc se limiter à un seul écran …

Interface web d'Android App Inventor

La conception de la partie logique est la plus intéressante mais aussi la plus déroutante. Le “jeu” consiste à créer toute la logique de notre application en emboîtant les interactions de chaque composants. On retrouve donc tous les composants qu’on a  déjà positionné ainsi que d’autres “blocs” représentant les procédures, nombres, texte, listes et logique.

Blocks Editor d'Android App Inventor

J’ai d’abord trouvé cette nouvelle façons de “programmer” très facile et surtout très ludique. Il est vraiment simple de glisser les blocs “do” dans des blocs “when” et de construire ainsi très rapidement les interactions des boutons avec les autres composants. Un mini débuggueur est même intégré qui permet d’espionner des variables tout en testant sur le téléphone. Mais, tout comme dans un fichier source classique, avec le nombre vient la complexité. Après avoir ajouté de nombreux widgets et interactions je me suis retrouvé avec un espace de travail très fourni, et il était difficile de retrouver les variables à positionner dans les tests et autres procédures. Entre autre, c’est au final très désorientant pour quelqu’un qui connaît la programmation classique de créer sa logique visuellement.

Voici par exemple la création et l’affichage d’une liste :

Manipulation d'une liste avec Blocks Editor

Et son équivalent en code java :

List<String>; mousquetaires = new ArrayList<String>({“Athos”, “Porthos”, “Aramis”});
mousquetaires.add(“D’Artagnan”);

StringBuilder sb = new StringBuilder(“Les mousquetaires du roi : ”);
for (String mousquetaire : mousquetaires) {
    sb.append(mousquetaire);
}

Clairement, pour quelqu’un qui connait les concepts d’une liste en java c’est beaucoup plus rapide d’écrire un code source. Toutefois, pour une personne qui n’a jamais vu un bout de code, alors là c’est vraiment intéressant pour apprendre les concepts de programmation et des structures logiques.

Conclusion :

App Inventor possède de nombreuses idées très intéressantes. La conception visuelle de la partie logique met le développement à la portée des non-informaticiens. Pour les informaticiens, cela permet de réaliser des prototypes fonctionnels très rapidement en quelques clics. Enfin, il est possible d’utiliser App Inventor instantanément et sur n’importe quelle plateforme et de déployer son application sur son téléphone sans être redevable d’une licence.

Il paraît cependant improbable de pouvoir développer de vraies applications professionnelles avec cet outil à l’heure actuelle. Les limitations par rapport à un développement classique en Java sont bien trop grandes. Il est d’ailleurs impossible d’exporter un projet réalisé avec App Inventor sous forme de code Java pour le reprendre de façon classique par la suite sous Eclipse.

App Inventor risque donc de se cantonner à de petites applications développées par des particuliers pour s’amuser avec leur téléphone et apprendre les bases de la programmation. En cela,  le projet de Google est une bonne chose s’il permet de démocratiser le développement auprès de personnes créatives mais rebutées par le code.

Par contre, ne risque-t-on pas de voir fleurir prochainement sur l’Android Market des tonnes d’applications baclées ? Mais peut-être est-ce un plan de Google pour rattraper Apple dans la course éffrenée aux plus grans nombres d’apps …

En tout cas le projet est une belle démonstration technique notamment par l’utilisation de GWT pour l’interface web et reste à surveiller. Peut-être qu’après le TDD, le DDD, le MDD verra-t-on arriver le DnDDD (Drag’n Drop Development Driven) ? :)

Categories: Divers, Mobile Tags: , , ,

Google annonce Go

go-logo-blackAprès Noop, Google annonce un nouveau langage de programmation : Go. Go reprend les points forts de C/C++ (efficacité, sécurité) et de Python (langage dynamique) voire de Java (Garbage collector).

A son habitude, Google a lancé un site dédié à ce langage avec de nombreuses documentations, pour amener le plus de développeurs possibles à l’utiliser.

En quelques mots, Go se veut un langage :

  • simple
  • rapide
  • sur
  • adapté aux multi-coeurs
  • amusant
  • et bien sur open-source.

Après 2 ans de développement, Google publie le code pour permettre de compléter ce langage open-source des bibliothèques qui augmenteront sa popularité. Pour autant, Google ne l’utilise pas encore, semble-t-il, pour ses développements internes.

Alors, Go ?

Plus d’info : l’annonce lue sur Zorgloob

Categories: Divers Tags: , ,

ParisJug Google – Androïd (part1)

Le mardi 10 Novembre 2009 a eu lieu le JUG parisien sur Google, JUG qui s’est temporairement transformé en GUG !

Trois thèmes abordés lors de cette soirée : Androïd, GAE et Wave. Les présentations furent intéressantes bien qu’inégales, mais globalement toutes étaient trop courtes (environ 40 minutes pour chaque sujet, c’est peu).

Androïd

Je ne reprendrai pas l’historique d’Androïd, seulement la partie dév. Il faut savoir qu’Androïd est basé sur un noyau Linux 2.6 et un environnement Java, sauf que ce n’est pas du vrai Linux et qu’il n’embarque pas une JVM, mais une Dalvik VM, allégée et spécifique à des processeurs et unités mémoire de téléphone portable. De ce fait quand on veut développer une appli, on utilise un simili Java SE (AndroïdSDK, en v3 pour Androïd 2.0). Google livre donc un outillage spécifique : l’Androïd Development Toolkit (ADT) qui s’intègre sous Eclipse, qui offre un joli émulateur/debugger de Google Phone (Androïd Virtual Device) qui permet de visualiser le rendu de notre appli. L’environnement de développement offre une interface WYSIWYG (on peut sinon faire du declarativeUI, ou encore du programmaticUI), et manipule essentiellement 4 types de composants :

  • les activités : composants graphiques, comparables à des widgets (une activité correspond à un écran)
  • les services : comme son nom l’indique, il s’agit de services (fonctionnement comparable aux threads)
  • les broadcast receivers : réception de message broadcast (exemple : message de batterie faible)
  • les content providers : fournisseurs d’accès aux données publiques

On voit donc apparaître une notion de message, qui semble être une notion capitale dans le dév Androïd : on parle alors d’ « Intent ». Un intent, peut être soit explicite (cible un composant au sein d’une application) ou implicite; il s’agit alors d’un message qui circule entre toutes les applis Androïd (pas de couplage fort entre les applis ). Par manque de temps, la présentation s’est arrêtée ici, mais vous pouvez voir le support complet .

La suite dans le prochain billet !

Categories: Actualités Tags: , , ,

Google Wave en vrai

(suite de mon post précédent)

Ayè ! J’en suis :-) J’ai mon accès Google Wave.

Premiers contacts pas à pas :

  • Je regarde la vidéo de présentation incluse dans la Vague d’introduction. J’apprends un nouveau mot : un “blip”. C’est le bout de message ajouté ou modifié quand on intervient sur une Vague (une Vague est une composition de Blips).
  • Demie-surprise : je retrouve dans ma liste de contacts Wave mes contacts Google qui ont déjà un compte Wave (5 personnes seulement : on a tout de suite l’impression d’appartenir à un club très “select”). Ca veut dire que tous ces correspondants savent que je suis “Wavisé”. Petit malaise : Big Brother n’est pas loin.
  • J’édite mon profil (c’est assez bien caché : il faut cliquer sur son nom dans les contacts mais celui-ci n’est pas apparemment “sensible”). Big Brother 2, le retour : il me propose d’ajouter des liens vers des sites qui ont un rapport avec moi. On retrouve dans la liste, des sites “Google” en relation avec moi (Picasa, Youtube), mais aussi d’autres sites sans rapport directs avec Google !!! En fait, il s’agit de domaines dont je suis le propriétaire et dont les sites sont hébergés chez OVH…
  • Difficile de trouver les “robots”, ces contacts qui permettent des usages alternatifs de Google Wave (publier un Twit ou un blog par exemple). Je dois faire un passage par l’aide en ligne pour arriver à faire mon premier Wave Twit.
  • Déception : je ne trouve pas le robot magique qui m’aurait permis de publier ce post directement via une Vague. En revanche, j’ai trouvé quelques robots amusants via un site tiers.
  • Les forums sont très vides et il n’y a pas de FAQ (il y a plus de buzz autour de GW que de vrai info dedans !)

Conclusions à chaud :

  • Le nom est bien choisi, mais les initiales me posent un petit problème personnel…
  • Si mes amis et collègues ne sont pas sur la Vague, je n’ai pas les moyens de communiquer avec eux par ce biais (pas de passerelle simple vers le courriel traditionnel ni même vers Google Talk). Donc, pour le moment, ça ne sert pas à grand chose et je ne peux même pas faire une démo sympa :-(
  • La peinture n’est pas sèche. On voit en permanence des fonctions qui manquent, des erreurs d’ergonomie flagrantes… qui expliquent l’usage “restreint” (100 000 c’est restreint à l’échelle Google) ou des trucs qui ne fonctionnent pas (comme le robot “Bloggy” permettant de blogger une Vague mais qui affiche en permanence un message d’erreur) ou accessibles uniquement à certains utilisateurs.
  • A contrario, au fur et à mesure qu’on s’en sert, plein d’usages nouveaux viennent à l’esprit. En vrac et sans filtre (à chacun des usages suivants, il faut ajouter systématiquement l’adjectif “… collaboratif”) :
    • Mind Mapping
    • prise de note et compte-rendu de réunion
    • constitution de FAQ
    • modélisation
    • interview
    • pair programming

Maintenant j’attends avec impatience :

  1. D’avoir la possibilité d’inviter du monde et d’échanger avec mon entourage
  2. D’avoir accès à la sandbox pour que mon côté geek puisse s’exprimer.

A bientôt pour la suite donc.

Categories: Actualités, Cloud Tags: , , ,

Google Wave, révolution ?

Logo Google Wave Je me suis avalé l’intégralité de la vidéo de présentation de Google Waves (1h20 !) mais ça valait le coup. Depuis l’annonce faite en mai à la conférence Google I/O à quelques (600) happy few, le buzz a considérablement enflé. Jusqu’il y a quelques jours où Google a annoncé qu’il élargissait le nombre d’invitations à 100 000 et où le sport à la mode est devenu d’avoir SON accès (voire, encore plus fort, l’accès à la sandbox développeur). Il parait même que certains les achètent aux enchères sur e-bay !

Mais qu’est-ce donc que cet OVNI. L’ambition de Google est tout simplement de succéder à l’e-mail (et donc à SMTP) en terme d’usage et de popularité !

La solution ? Fournir un client unique pour toutes les usages collaboratifs d’Internet : le courriel donc, mais aussi le chat, le twitt, le blogging, la publication dans un Wiki, dans Facebook ou tout autre réseau social, jusqu’à l’écriture de compte-rendus de réunion, la planification d’un voyage ou même le jeu, ou toute autre activité qui induit un échange, une collaboration, une publication. Rien que ça !

Comment Google présente-t-il son nouveau bébé ? Qu’est ce qu’une Vague ?

  • Une Vague, c’est moitié conversation, moitié document
  • Une Vague c’est partagé
  • Une Vague c’est vivant

Mais encore? Quoi de neuf par rapport à un courriel traditionnel ?

  • On est plus proche d’une conversation que d’un courrier : tous les participants peuvent intervenir à tout moment (voire se couper la parole !). En ce sens ça ressemble plus à du chat.
  • Les échanges se font instantanément. Toute modification (frappe d’un caractère, mais aussi ajout de pièce jointe, ou d’image) est propagée instantanément à tous les participants ce qui rend effectivement l’échange extrêmement vivant (fini le temps d’attente pendant lequel apparaît le message “votre correspondant rédige un message”) mais aussi très intrusif (quand on chat on peut faire autre chose en même temps, c’est beaucoup plus difficile quand on est sur une Vague).
  • Une nouvelle dimension intervient, le temps : l’historique des échanges qui ont amené la Vague dans l’état courant est conservé et peut être restitué.
  • On peut intervenir à tout endroit de la conversation sans la dupliquer : on rassemble en un seul document un thread complet (i.e. le mail initial et toutes ses réponses ou mises à jour)
  • C’est réellement et nativement multi-media (même si le support initial est aujourd’hui majoritairement le texte).
  • On peut gérer des habilitations : l’accès à une Vague ou à certaines de ses parties peut être finement contrôlé.

L’équipe de Lars Rasmussen et Stephanie Hannon (les créateurs de Google Maps) est partie de la question suivante : à quoi ressemblerait l’e-mail s’il était inventé aujourd’hui ? La présentation du résultat est bluffante et, sans faire du “Googlisme” primaire, le concept me semble effectivement révolutionnaire.

Google Wave, c’est trois composants :

  • Un produit : un client écrit en GWT accédant à un serveur hébergé sur Google AppEngine
  • Une plateforme : des APIs pour développer
  • Un protocole : basé sur XMPP

Le tout est intégralement open source, l’objectif étant de développer des APIs et des usages nouveaux (j’ai admiré l’initiative de la R&D SAP pour proposer un outil collaboratif de modélisation de Business Process s’appuyant sur Google Wave).

J’attends avec impatience mon accès pour vous donner un retour concret (incluant aussi les points négatifs ;-)