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) ? 🙂

2 réflexions au sujet de « Test d’Android App Inventor »

  • 6 août 2010 à 8 h 04 min
    Permalink

    Dommage qu’on ne puisse pas réaliser les interfaces avec cet outil, puis continuer l’appli en Java.
    Le SDK Android ne sera pas complet tant qu’il n’aura pas un vrai outil de conception d’interface WYSIWYG.

  • 26 octobre 2010 à 15 h 13 min
    Permalink

    Pour débuter je trouve ça génial !!!

    L’idée de devoir installer Eclipse, télécharger le SDK, etc. me déprimait un peu …

    J’ai essayé l’App Inventor et c’est méga pratique. Fonctionnel tout de suite, on a accès aux composants de base (accéléromètre, localisation, texto, répertoire, sprites …) On teste en live sur le téléphone. Il y a une doc, des tutoriaux, forum 🙂

    Donc le soir après le boulot, c’est idéal. On ne se brûle plus les yeux sur des lignes de codes ^^, on assemble juste des blocs, c’est divertissant 😀

    J’aime !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *