0% ont trouvé ce document utile (0 vote)
604 vues38 pages

Cours de Programmation Mobile

Cours de Programmation Mobile destiné aux étudiants de Troisième année Licence LMD en Conception des Systèmes d'Information.

Transféré par

KITAMBALA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
604 vues38 pages

Cours de Programmation Mobile

Cours de Programmation Mobile destiné aux étudiants de Troisième année Licence LMD en Conception des Systèmes d'Information.

Transféré par

KITAMBALA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

INSTITUT SUPERIEUR PEDAGOGIQUE DE KALEMIE

ISP-KALEMIE/MOBA

NOTES DE COURS DE
PROGRAMMATION
MOBILE

Ass. Ir. KITAMBALA BALIBWA Théophile


Concepteur des S.I

Année académique 2023-2024


Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

AVANT PROPOS
De nos jours, les smartphones sont devenus des appareils courants et fréquemment
utilisées. Ce support est consacré à l’étude des méthodes de programmation orientées vers la
production des applications utilisées sur des supports mobiles tels que les SmartPhones et les
Tablettes. Il est aussi question dans ce support d’initier les étudiants à l’utilisation de
AppInventor pour le développement des applications Android. Il est destiné aux étudiants 3ère
Bachelier en Informatique de gestion.
Pré requis
- Connaissances générales sur l’algorithmique et la programmation.
- Utilisation des Smartphones.
Objectifs
Objectif général
Ce cours vise à développer chez l’apprenant les compétences adéquates pour planifier et
concevoir des applications Mobiles (Android) en utilisant AppInventor.
Objectifs spécifiques
A l’issu de ce cours l’étudiant doit être capable de savoir utiliser et développer une
application Android avec AppInventor.
Public cible
Etudiants de Troisième bachelier (Bac 3) en Informatique de gestion.
Volume horaire
45 heures.

2
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Introduction
A. AppInventor, qu’est-ce que c’est ?
Avant de préciser ce qu’est AppInventor, il est nécessaire de comprendre la logique
commerciale du système d'exploitation mobile Android. Celui-ci se veut être un maximum
libre. Cette notion se décline sous plusieurs angles :
Le code du système est Open Source : libre redistribution d'accès au code source
et de travaux dérivés
Le SDK (Kit de développement) est disponible gratuitement ainsi, le
développement d’applications est abordable.
Ce système est embarqué sur des smartphones de différents constructeurs : HTC,
Samsung, Acer, LG, etc.
Il est généralement possible d’installer n’importe quelle application sur son
téléphone fonctionnant sous Android sous condition de disposer du fichier
d’installation (.APK).
Nous comprenons alors mieux le dessein d’AppInventor : permettre aux utilisateurs lambda
de créer leurs propres applications.
App Inventor est un outil de développement en ligne pour les téléphones et les tablettes qui
fonctionnent avec le système d'exploitation Android. Il faut donc une liaison internet et un
navigateur internet comme Mozilla Firefox ou Chrome. App Inventor est une application web
open-source à l'origine fournie par Google, et maintenant maintenue par le Massachusetts
Institute of Technology (MIT). Cette plate-forme de développement est utilisable par toutes et
tous à condition de posséder un compte Gmail.
La programmation est réalisée sans taper une seule ligne de code, mais simplement en associant
et en paramétrant des briques logicielles toutes faites (langage Scratch).
Des connaissances en programmation orientée objet peuvent toutefois être nécessaires.
Cependant, on pourra s'affranchir complètement de la connaissance des noms des propriétés et
méthodes liées aux objets. En effet des blocs de propriétés, méthodes et événements seront
directement proposés dès la création d'un objet sans que l'on s'en rende compte ce qui simplifie
la programmation.
La programmation orientée objet ne signifie pas que l'on travaille avec des objets
graphiques mais plutôt que l'on manipule des objets informatiques appelés "objets"
qui ont des propriétés, une classe et peuvent elles-mêmes avoir des héritiers, qui
possèdent des méthodes…
L'utilisation de App Inventor rend assez facile la réalisation d'applications Android (en tout cas
plus facile que l'utilisation du programme Google "Android Studio" qui nécessite de connaître
la programmation en Java) mais les possibilités sont plus limitées.
Vérifions que tout fonctionne avant de nous lancer dans une application :
Pour lancer le logiciel il faut, dans l'ordre :

3
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

• lancer "aiStarter" :
cela doit ouvrir la fenêtre suivante :

Ne plus toucher à cette fenêtre (la laisser ouverte)


• dans votre navigateur internet aller sur le site du logiciel :
[Link]
Celui-ci s'ouvre avec une fenêtre comme celle-ci :

4
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Essayons maintenant la simulation :


Cliquez sur le menu "Connect" puis choisir "Emulator"
Une simulation de téléphone sous Android doit apparaître.
Attention cela prend pas mal de temps car le programme va
compiler le code sur un serveur du MIT et le renvoyer à votre
ordinateur. On doit obtenir le résultat suivant :
L'écran du téléphone affiche un page vide (normal on n'a pas
encore fait de programme!).

Si cela ne fonctionne pas demandez de l'aide au professeur


C. Comment utiliser ?
1. Interface web
Premièrement, il faut se rendre sur le site d'AppInventor2 et s'y connecter à l’aide son
compte GMail.
Nous avons beaucoup d'informations sur la page principale, notamment une vidéo de
présentation et des liens vers des aides, plutôt bien faites mais en anglais. Pour créer une
application, cliquez sur le lien « MyProjects ».

Figure 1 : Menu d'AppInventor


Nous arrivons alors sur une page nous présentant tous les projets AppInventor du compte, pour
en créer un nouveau il suffit de cliquer sur « New ».

1
[Link]

5
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Figure 3 : Projets dans AppInventor & actions possibles


Nous entrons le nom du projet et c'est parti! Nous pouvons aussi charger et télécharger des
projets. De cette manière, comme deux comptes ne peuvent pas travailler ensemble sur le même
projet, nous pouvons tout de même transmettre notre projet à un collègue.
Attention : le projet n’est pas exportable en code Java réutilisable par un IDE standard.

Figure 4 : Création d'un nouveau projet


Pour créer une application, la première phase est de la designer. Pour cela le site affiche un
écran de téléphone dans lequel nous pouvons placer, par Drag-and-Drop, les éléments que nous
voulons afficher.
Il y a des éléments graphiques comme des boutons, des labels, … ainsi que beaucoup d'éléments
non graphiques, comme des sensors (accéléromètre, orientation, géo localisation) ou des
fonctions permettant d'effectuer des actions : lecteur audio, lanceurs d'applications basiques du
téléphone (contact picker, camera, barecode scanner, etc). L'annexe X établit une liste complète
des composants disponibles. Il est important de savoir que certains composants sont parfois
ajoutés. Nous parlons ici de la section « LEGO® MINDSTORMS® » qui a été ajoutée dans
AppInventor depuis que nous avons commencé ce projet.
Pour résumer, cet écran représente à la fois les services implantés dans l'application (capteurs)
et les XML d'une application Android classique :
- Le XML du layout de l'interface.
- Le manifest avec la liste des permissions (envoie de SMS).
Nous allons vous détailler tout le processus de création d'une petite application avec
AppInventor. Cette application toute simple affichera la valeur de l'angle d'inclinaison du
téléphone quand l'utilisateur appuiera sur un bouton.

6
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Nous continuons sur le projet DEMO commencé précédemment. Tout d'abord nous mettons un
label qui permettra d'afficher la valeur. En cliquant sur le bouton d'aide du composant, une
petite description du composant s'affiche.

Figure 5 : Aide rapide sur un composant


Encore une fois, elle est en anglais, comme l'ensemble d'AppInventor, ce qui le rend difficile à
utiliser pour les personnes non-anglophones, notamment les plus jeunes. Nous notons
cependant que le texte en lui même n'est pas très compliqué à comprendre même si il utilise
des termes informatiques.
Pour placer le label sur le téléphone, il suffit d'effectuer un Drap-and-Drop vers l'écran.

Figure 6 : Drag-and-Drop d'un composant Label


Pareillement, nous pouvons afficher l'aide du bouton et l'ajouter aussi sur l'écran.
Comme écrit dans l'aide, nous pouvons modifier de nombreuses propriétés des composants.
Voici un extrait des propriétés modifiables pour un bouton :

Figure 7 : Propriétés d'un Label


Nous avons la possibilité, par exemple, de changer simplement le texte ou la couleur mais
beaucoup d'autres options sont modifiables.

7
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Finalement nous ajoutons un composant permettant d'obtenir l'orientation du téléphone :


l'OrientationSensor. Nous le glissons sur le téléphone, celui-ci n’étant pas visible, il s'affiche
sous l'écran. Le fait de l'ajouter permet simplement de pouvoir accéder à ses méthodes dans la
seconde étape du développement.

Figure 8 : Résultat du designer de l'application DEMO


Une fois les composants mis en place et désignés, nous passons à la deuxième phase de
développement d'une application via AppInventor : l'interface Scratch. Pour cela, il faut cliquer
sur "Open the Blocks Editor" en haut à droite de la page.

Figure 9 : Menu du Designer


Il faut alors télécharger un fichier .JNLP (Java Network Launching Protocol) permettant de
lancer une application Java depuis le web. Une fois téléchargée, nous pouvons lancer cette
application fenêtrée.

Figure 10 : Téléchargement de l'[Link]


L'application se lance et demande le chemin du dossier où aura été installée l’AppInventor
Setup. Comme exprimé précédemment, avant de pouvoir utiliser AppInventor, il est nécessaire
d’installer un logiciel sur la machine. Le logiciel en question est appelé AppInventor Setup. Il
est disponible pour :
- Macintosh (Intel processor): Mac OS X 10.5, 10.6

8
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

- Windows: Windows XP, Windows Vista, Windows 7


- GNU/Linux: Ubuntu 8+, Debian 5+
2. Fenêtre Scratch
L’interface Scratch permet d’imbriquer des éléments graphiques entre eux pour effectuer la
partie programmation de l’application à développer.

Figure 11 : AppInventor, éditeur de blocks


Comme vous pouvez le voir sur la Figure 11 : AppInventor, éditeur de blocks, cette interface
est très simple et épurée. En effet, en haut on retrouve des éléments classiques – « Save », «
Undo » et « Redo » ainsi qu’un bouton de test pour lancer l’application sur le mobile ou sur
l’émulateur.
Lorsque cette interface est lancée, il nous est demandé si nous souhaitons tester l’application
sur un mobile (à brancher après l’ouverture de la fenêtre et dont les pilotes doivent
préférablement être installés) ou sur l’émulateur fourni.
Aussi, sur la gauche, nous avons un système d’onglets. Nous y retrouvons les différents
composants (blocks) que nous avions pris soin de placer dans le designer – « My Blocks » – et
des blocks utilitaires – « Built-in ».

Figure 12 : Menus de l'éditeur de blocks


Dans l’onglet « My Blocks » de notre projet DEMO, on retrouvera nos éléments et leurs
accesseurs & fonctions :
- MyDefinitions : variables & procédures globales.
- Button1 : variables & procédures spécifiques au bouton.
- Label1 : variables & procédures spécifiques au label.

9
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

- OrientationSensor1 : variables & procédures spécifiques au capteur.


- Screen1 : variables & procédures spécifiques à l’écran (assez restreint).
Dans l’onglet « Built-in », nous retrouverons toujours les mêmes éléments :
- Definition : morceaux permettant de définir des procédures (avec/sans
résultats/attributs).
- Text : morceaux permettant de traiter du texte. Assimilables au type char et à la classe
String en Java.
- Lists : morceaux permettant de traiter des listes. Assimilables aux sous-classes de List
en Java.
- Math : morceaux permettant de traiter des nombres. Assimilables au type int et à la
classe Integer en Java.
- Logic : morceaux permettant de traiter des booléens. Assimilables au type boolean et
à la classe Boolean en Java.
- Control : outils permettant d’effectuer de la programmation conditionnelle.
- Colors : couleurs.
Aussi, la corbeille est utilisée pour jeter des morceaux de pseudocode et la loupe sert à
zoomer/dé zoomer sur l’éditeur.
Pour en revenir à notre projet DEMO, nous avions exprimé le souhait que notre application «
affiche la valeur de l'angle d'inclinaison du téléphone quand l'utilisateur appuiera sur un bouton
». Ce qui se traduit en pseudocode par :
When [Link] do [Link]([Link]).
C’est à quelques détails près ce que nous pouvons faire à l’aide de Drag-and-Drop dans l’éditeur
de blocks :

Figure 13 : Blocks du projet DEMO


Il s’agit là d’un exemple extrêmement simple.
3. Tester et installer
Nous distinguons bien les termes « tester » et « installer » car il n’est pas nécessaire de disposer
du fichier d’installation de l’application (le .APK) pour l’installation. Lorsque nous avons
branché notre téléphone à l’ordinateur et sommes passé en mode Debug
(Paramètres>Applications>Développement>Débogage USB), une icône apparaît en haut de
l’éditeur de blocks, cfFigure 14 : Téléphone connecté.

Figure 14 : Téléphone connecté Figure 15 : Application en test

10
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Lorsque nous cliquons dessus, l’application est compilée, envoyée au téléphone pour être
installée et lancée dessus, cfFigure 15 : Application en test. Cependant, une fois celle-ci quittée,
elle n’est plus disponible sur le mobile. L’application est donc temporairement installée.
Pour installer son application, il y a trois solutions. Toutes trois démarrent sur l’interface web,
en haut à droite de la fenêtre, via le bouton Package for Phone :

Figure 16 : Compiler l'application


En cliquant sur « Show Barcode », l’application sera empaquetée et, après
quelques secondes, une fenêtre avec QRCode apparaîtra sur l’interface web. En le
scannant avec une application du mobile, le QRCode vous redirigera sur une page
web. Vous devrez alors vous identifier avec le même compte Google que celui qui
développe le projet pour pouvoir télécharger le fichier .APK.
En cliquant sur « Download to this Computer », l’application sera empaquetée et
une fenêtre de téléchargement vous permettra de sauvegarder le fichier .APK sur
votre ordinateur.
En cliquant sur « Download to Connected Phone », l’application sera empaquetée
et installée sur le téléphone Android connecté à l’ordinateur. Le téléphone doit là
encore être passé en mode Debug.
Pour ces trois manipulations, il est nécessaire que l’éditeur de blocks soit encore ouvert.
II. Applications réalisées
Afin de tester les différentes possibilités d’AppInventor, nous avons réalisé quelques
applications. En voici quelques unes.
Première application : du texte
Nous allons réaliser l'application suivante :
Sur l'écran s'affiche un bouton et une zone de Texte à remplir. Quand on appuie sur le bouton,
un message apparaît sous le bouton (bonjour) et le nom rentré dans la zone de texte s'affiche
sous "bonjour"

11
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Étape 1 : création de l'application :


Allez dans le menu "Projets" puis choisir
"Commencer nouveau projet ..."
Choisir un nom de projet puis cliquez sur OK :

Étape 2: placement des éléments sur l'écran:


Nous avons 4 éléments à placer sur notre écran (interface homme/machine) :
• une zone de texte à remplir ('zone de texte')
• un bouton
• 2 zones de texte où écrire ('Label')
Placez les éléments pour obtenir l'écran ci-dessous. Pour placer un élément, cliquez dessus dans
le menu de gauche et le
déplacer, en gardant le clic
enfoncé, à l'endroit où
vous voulez le poser (dans
le "Screen1" qui est le nom
de votre fenêtre
d'application)
Vous remarquerez que les
éléments apparaissent
dans 2 fenêtres, dans votre
"Screen1" bien
évidemment mais aussi
dans la fenêtre
"composants".

Étape 3: paramétrage des éléments


Le paramétrage se passe dans la fenêtre de droite "propriétés" Pour la zone de texte, on va lui
mettre un texte par défaut" :

12
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Pour le bouton, on va lui mettre un texte :


Pour le 1er texte (Label1), on va écrire
'bonjour' et le rendre invisible :
Pour le 2ème texte (Label2), on ne
va rien écrire et le rendre
invisible aussi:
Vous remarquerez que les 2
éléments de texte (label) ont
disparu de votre Screen1 mais ils
sont toujours présents dans la
fenêtre "Composants"

Il faut penser à faire régulièrement des sauvegardes (menu "Projets" puis "enregistrer
le projet")

Étape 4: écriture du programme


Comme annoncé en introduction, nous n'allons pas écrire de
lignes de codes mais utiliser un mode de programmation
graphique. Pour y accéder il faut cliquer sur "Blocs" (en haut à
droite).
Les éléments de notre "Screen1" apparaissent bien (en bas à
gauche).
Au-dessus, ce sont les blocs disponibles classés en grandes
fonctions :
• Contrôle : les éléments de test, de boucles, ….
• Logique : éléments liés à de la logique, "vrai", "faux",…
• Math : des outils mathématiques (addition, …)
• Text : pour gérer les textes
Avant de faire quoi que ce soit, il faut écrire le
programme, sous la forme que vous voulez
(algorithmes, algorigrammes, …). Une fois le
programme écrit ou pourra le traduire en blocs.

13
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Ici l'algorithme est :


Quand le Bouton1 est cliqué, on fait :
• on rend le label1 visible
• on rend le label2 visible
• on affiche dans le label2 le texte de la zone
de texte1
Quand on clique sur le Bouton1, une fenêtre avec
toutes les possibilités associées à cet élément
apparaissent :
On va choisir :
Si on clique sur
"Label1" :

Voilà donc le bloc qui signifie "quand le Bouton1 est cliqué on rend le label1 visible"

A vous de compléter la programmation de façon à obtenir :

Étape 5: essai du programme(de l'application)


Si l'on possède un téléphone ou une tablette sous Android on peut
essayer l'application en réel (et ça fonctionne bien mieux que la
simulation) Sinon on utilise la simulation (là il faut être patient!).
Vérifier que votre application fonctionne (copie
d'écran à fournir)

14
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Si vous voulez enregistrer votre application sur votre ordinateur, allez sans l’onglet "Construire"
puis choisissez “App (enregistrer .apk sur mon ordinateur)”
La compilation de votre application s’exécute et vous obtenez un fichier APK qui s'enregistre
dans votre dossier téléchargement.
Deuxième application : des images, du son et du temps
Version N°1 :
Cette deuxième application va afficher une image/bouton. Quand on cliquera dessus un son sera
émis et un texte s'affichera. Vous disposez de 2 fichiers (gong.mp3 et photo_lamache.jpg)
Description de l'interface :
Vous allez donc insérer un bouton, du son (menu "média" puis "son") et un texte
(Label) Pour le paramétrage (propriétés) du bouton vous allez ajouter l'image :

Pour le Label vous y mettrez le texte : "Bienvenue au Lycée LaMache" et le rendrez invisible.
Pour le paramétrage du son vous allez ajouter le fichier son ("Propriétés" puis "Source"):

Maintenant le programme à réaliser :

1. Avant de faire le paramétrage de l'interface et la programmation des blocs, écrire


l'algorithme du programme précédant (cela doit décrire de manière intelligible ce que
réalise le programme.

15
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

2. Faites le programme et vérifier que votre application fonctionne (copies d'écran à


fournir)
Version N°2 : amélioration et rajout d'une temporisation
Nous rajoutons maintenant l'élément "Horloge" (dans le menu Media)
avec comme paramétrage : 4000 (le temps est en millisecondes = 4000
ms = 4s)
Vous mettrez aussi l'image à une taille adaptée à notre écran (H:55 %,
L:60%) Le programme sera le suivant :

3. Avant de faire la programmation des blocs, écrire l'algorithme du programme


précédant (cela doit décrire de manière intelligible ce que réalise le programme).
4. Faites le programme et testez-le (copies d'écran à fournir). Quand tout fonctionne faites
valider par le professeur.
Utilisation de fonctions mathématiques
Nous allons maintenant réaliser une application qui fait l'addition de deux nombres.
Description de l'interface :
Il y aura 3 textes, 3 zones de textes et 2 boutons :

16
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Pour placer nos différents éléments correctement les uns par rapport aux autres nous allons les
mettre dans un tableau :
Label1 Zone de texte 1
Label2 Zone de texte 2
Label3 Zone de texte 3
Le tableau se trouve dans le menu de gauche "Disposition" et
s'appelle "arrangement tableau"
On choisira donc 2 colonnes et 3 lignes (dans le menu "propriétés")
Pour les zones de texte il faudra préciser "nombres uniquement" et
pour la 3ème zone de texte ne pas l'activer (en effet elle ne doit pas
pouvoir être modifiée manuellement).
Il peut être très utile de renommer les éléments utilisés afin de rendre leur
utilisation plus facile dans la partie programmation.
Ainsi vous renommerez les 2 boutons par "bouton_plus" et "RAZ" (ce qui est quand
même plus intelligible que "Bouton1" ou "Bouton2"!).
Le programme sera le suivant :
A prendre dans le menu
de droite qui s'appelle
"Math"

1. Avant de faire le paramétrage de l'interface et la programmation des blocs, écrire


l'algorithme du programme précédant (cela doit décrire de manière intelligible ce que
réalise le programme).
2. Faites le programme et testez-le (copies d'écran à fournir). Quand tout fonctionne faites
valider par le professeur.

17
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Gestion de plusieurs écrans (pages)


Nous allons maintenant découvrir comment avoir plusieurs écrans (pages) dans notre
applications et comment passer
de l'une à l'autre
Créez une nouvelle application
et paramétrez le "Screen1" de
la façon suivante :
• un texte
• un bouton
Maintenant vous allez créer un
nouvel écran en cliquant sur le
bouton "Ajouter écran …" et le
paramétrer de la façon
suivante :
• un texte
• un bouton
Comment faire la
programmation du bouton
? Voici un exemple pour le
"Screen1" :

Faites la programmation de l'interface et du programme et testez votre application. Quand


tout fonctionne faites valider par le professeur.

18
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Sauvegarde de données
Vous allez maintenant créer une nouvelle application dont le but est de mémoriser quelque
chose que nous appellerons un "mémo" (petite phrase) dans une base de données située dans le
téléphone.
L'interface doit ressembler à :
et doit contenir :
• 5 labels
• une zone de texte
• 2 boutons
• une base de données
(TinyDB)
• une horloge
• un notificateur
Le fonctionnement :
Quand on rentre une phrase à
mémoriser et que l'on appuie sur
le bouton "Enreg.", cette phrase
(mémo) est sauvegardée dans la
base de données (avec la date et
l'heure de l'enregistrement) et un
message signalant
l'enregistrement s'affiche
(notification) sur fond rouge.
Si on appuie sur le bouton
"Memo", le dernier mémo
s'affiche ainsi que le jour et la
date d'enregistrement
Le programme sera le suivant :

19
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

1. Avant de faire le paramétrage de l'interface et la programmation des blocs, écrire


l'algorithme du programme précédant (cela doit décrire de manière intelligible ce que
réalise le programme).
2. Faites le programme et testez-le (copies d'écran à fournir). Quand tout fonctionne faites
valider par le professeur.
Les variables et les boutons "case à cocher"
Version 1 :
Nous allons maintenant créer une nouvelle application dont le but est de mémoriser le choix
d'une langue et, suivant ce choix, d'afficher des pages différentes.
Nous allons utiliser les variables globales : "global" signifie qu'elles existent et
sont disponibles sur toute la page (par contre elles ne sont pas globales à plusieurs
pages) à l'inverse des variables locales qui ne fonctionnent qu'à l'intérieur d'un
bloc.

20
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

L'interface homme/machine pour la page 1 (Screen1) sera la suivante :


• 2 cases à cocher
• 2 textes (labels)
• un bouton
• un notificateur (pour la
version 2)
• une base de données

L'interface homme/machine pour la page 2 (Screen2) sera la suivante :


• 2 textes (labels)
• un bouton
• une base de données
Le programme pour la page 1
(Screen1) sera :

21
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

22
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Le programme pour la page 2 (Screen2) sera :

Ce bloc "logique" renvoie "vrai" si la case a été validée et "faux" s'il elle n'est pas validée

23
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

1. Avant de faire le paramétrage de l'interface et la programmation des blocs, écrire


l'algorithme des programmes précédents (cela doit décrire de manière intelligible ce que
réalise le programme).
2. En se référençant à ce que vous avez vu dans d'autres langages (php, javascipt,
arduino) , donner les types des 2 variables des programmes (Screen1 et Screen2).
3. Faites le programme et testez-le (copies d'écran à fournir). Quand tout fonctionne faites
valider par le professeur.
Version 2 :
Amélioration à faire:
• sur la page 1 (Screen1) quand on clique et qu'aucun choix n'a été fait, rajouter un message
éphémère (notification), en blanc sur fond rouge, pour dire "il faut choisir une langue"
4. Faites le programme et testez-le (copies d'écran à fournir). Quand tout fonctionne faites
valider par le professeur.
En bonus
Vous allez reprendre l'application de la question VI (sauvegarde de données)
Vous allez maintenant rajouter :
• un deuxième "mémo" mémorisable dans la base de données (il aura comme tags
"memo2" et
"heure2")
• 2 boutons pour effacer le mémo 1 ou le mémo 2
• un label pour afficher le 2ème mémo
Le fonctionnement :
• au démarrage de l'application il faut aller chercher dans la base de données le nombre
de mémo
• si on rentre un texte et que l'on appuie sur "Enreg", et qu'il y a encore de la place on
enregistre le nouveau mémo. S'il n'y a plus de place on affiche un message bref
(notificateur).

24
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

• Si l'on veut effacer un mémo, il faut choisir celui que l'on efface et si l'on efface le mémo
1, le mémo 2 prend sa place. Si l'on se trompe un message nous le signale :

L'interface homme/machine doit ressembler à cela :

25
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Vous remarquerez la présence d'une variable debug. Celle-ci est le nombre de mémo
mémorisés et a servi à tester le programme. Elle sera enlevée une fois l'application
testée et validée (vous n'êtes pas obligé de la mettre si vous n'en ressentez pas le
besoin).
Astuces ou aide :
• on peut avoir besoin d'une variable globale "nombre_memo" que l'on sauvegardera dans
la base de données avec le tag "nombre"
• il faut penser à tous les cas possibles et pour cela réaliser avant toute chose un algorithme
(sous la forme que vous voulez) pour bien avoir la structure du programme.
Faites le programme et testez-le. Quand tout fonctionne faites valider par le professeur.
A. ShareAccelerometer
1. But du projet
Le dessein de ce projet était de prendre en main l’interface et de voir les possibilités d’une
multitude de composants. Parmi eux : la reconnaissance vocale, l’envoie et la réception de
SMS, le notifieur, etc.
L’application devait permettre d’envoyer un SMS à un contact pour lui montrer les valeurs
maximums que nous avons atteint sur l’accéléromètre. La personne doit être sélectionnée dans
la liste de contacts du téléphone et une partie du contenu du SMS sera rédigé à la voix. Des
sons et notifications viendraient illustrer l’application.
2. Réalisation
Au début, nous avions ajouté beaucoup de composants à cette application. Par la suite, nous
avons nettoyé la liste pour arriver à cette dernière :
- Screen1

26
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

- VerticalArrangement1
- HorizontalArrangement1
- Label
- Button1
- TextBox
- PhoneNumberPicker1
- Button
- Button
- SpeechRecognizer
- Texting1
- AccelerometerSensor1
- Sound1
- Notifier1
Le développement de cette application nous a permis de mettre en valeur de bons et de
mauvais points pour AppInventor.
Le côté positif est qu’il permet un accès extrêmement simple aux composants graphiques
(boutons, etc.) et à quelques services très amusant (SMS, reconnaissance vocale). Grace aux
blocks, il est très simple d’envoyer un SMS (trois lignes). Un autre point fort est que nous
pouvons facilement personnaliser les boutons et jouer des sons en ajoutant des fichiers
image et son dans l’interface web.
Malheureusement, nous avons aussi trouvé quelques faiblesses à ce type de développement. Il
n’est pas possible de créer de variables locales. Nous sommes toujours obligés, même dans
les procédures créées par nos soins, d’utiliser des variables globales. Aussi, pour des fonctions
assez simples, les tailles de celles-ci prennent vite de la place. On remarque cependant qu’il
est possible de réduire les fonctions et de réorganiser les éléments.
B. MoveTheBall
1. But du projet
Nous nous sommes mis dans la peau d’un enfant souhaitant réaliser une petite application
simple : faire bouger une balle sur l’écran grâce à l’orientation du télé[Link] but de ce
scénario est d’établir si un enfant peut utiliser AppInventor seul pour faire ne serait-ce qu’une
application très simple.
Nous avons eu l’idée de cet application car les composants Canvas et Ball d’AppInventor sont
spécifiquement faits pour ce type de développement : la balle se déplace sur ce qui pourrait
être appelé « un plateau », représenté ici par le canvas.
2. Réalisation
Dans un premier temps, nous avons créé l’interface. Voici son architecture :
- Screen1
- Canvas1
- Ball1
- OrientationSensor1

27
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Le canvas est la zone où la balle peut se déplacer. Il remplit l’écran en largeur et possède une
hauteur de 200 pixels.
Ensuite, avec l’éditeur de blocks, nous avons utilisé une fonction très pratique :
[Link](). Cette fonction est appelée à
chaque changement d’orientation du téléphone. Elle est donc très sollicitée.
Après quelques tests, le résultat est concluant. Lorsque le téléphone s’incline sur la droite ou
sur la gauche avec un angle supérieur à 10°, la balle se déplace sur l’axe X. Lorsque le
téléphone s’incline vers l’avant ou vers l’arrière avec un angle supérieur à 10°, la balle se
déplace sur l’axe Y.
La conception de cette petite application n’a posé aucun problème particulier. Nous avons
juste perdu quelques minutes à déterminer à quoi correspondaient les angles Pitch, Roll et Yaw
du capteur d’orientation et à connaître leurs valeurs lorsque le téléphone est à plat.
Voici l’algorithme que nous avons pu mettre en place après quelques minutes sur l’interface
Scrach :

Figure 17 : Blocks de l'application MoveTheBall


D’un point de vue développeur, un petit problème se pose : il n’y a pas la possibilité de fixer
l’écran dans une orientation par défaut (portrait ou paysage). Ainsi, lorsque le téléphone
est trop incliné vers la droite ou la gauche, l’écran passe en mode paysage détériorant le
concept car le rendu est faussé.
Aussi, nous nous posons réellement la question de savoir si un enfant d’une douzaine d’années
pourrait coder cette application. Les notions de fonctions, variables et conditions sont certes

28
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

des concepts de base en programmation mais, si ils sont inconnus, peuvent être difficiles à
utiliser pour un enfant.
C. MessageDirectory
1. But du projet
Les applications précédentes se voulaient assez accessibles. Pour cette dernière, nous avons
voulu augmenter la difficulté. Le principe de cette application est de pouvoir poster un
message à un endroit, à un moment donné. Ce message ne doit être accessible en lecture que
si on se trouve près de là où il a été posté.
Nous allons voir quels problèmes se sont posés et comment nous avons pu y faire face.
2. Réalisation
Dans un premier temps, nous souhaitions qu’un utilisateur A partage seulement avec un
utilisateur B un message visible uniquement dans le rayon où il se trouve. Ce processus devait
utiliser les mails ou les SMS pour partager le message (sans l’afficher) et la localisation.

Figure 18 : MessageDirectory version 1


Un premier problème s’est posé : comment transmettre le message sans l’afficher ? Avec
les outils d’AppInventor, c’était proprement impossible. Nous avons donc pensé à mettre en
place un serveur web qu’il faudrait joindre pour envoyer/recevoir les messages.

Figure 19 : MessageDirectory version 2


Malheureusement, un second problème s’est posé : comment joindre le serveur dans
l’application AppInventor ? À nouveau, aucun outil ne correspond à cette fonctionnalité
dans AppInventor. De ce fait, nous avons eu la possibilité, mais surtout la nécessité, d’utiliser
le composant ActivityStarter d’AppInventor.
Ce composant permet de lancer une autre Activity (d’une autre application) disponible sur le
téléphone. Ainsi, en développant nous même une application en Java, nous pourrions
communiquer avec le serveur Web.

29
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Figure 20 : MessageDirectory version finale


De ce fait, le message et la géolocalisation se font dans l’application AppInventor, le tout est
transmis à l’application en Java qui l’envoie au serveur. Celui-ci répond favorablement ou non
à la requête. L’application java transmet la réponse à l’application AppInventor et l’utilisateur
a enfin une réponse.
Pour obtenir les messages se trouvant à proximité, l’utilisateur clique sur le bouton
« Rafraichir » pour envoyer à l’application Java les coordonnées de géolocalisation. L’app Java
va contacter le serveur qui lui retournera les messages datant d’une semaine, disponibles dans
un rayon d’un kilomètre. Enfin les messages seront retournés à l’application AppInventor qui
traitera le retour.
Pour réaliser cette application, nous étions partis du principe que tous les composants
étaient disponibles dans AppInventor. Nous nous sommes vite aperçus que ce n’était pas du
tout le cas et avons dû changer l’architecture du projet, à plusieurs reprises. Ceci étant, nous
avons aussi pu utiliser un composant intéressant (ActivityStarter) qui nous a pris beaucoup de
temps à comprendre.
En effet, lancer une Activity externe à l’application AppInventor n’est pas réellement difficile
mais passer des paramètres en entrée/sortie n’est pas très bien décrit dans l’aide disponible sur
le site web2. Après quelques recherches et envois de messages sur des forums, nous avons
trouvé une solution. Cependant, il s’avère que le passage de paramètres en entrée/sortie est
moins complet avec AppInventor qu’en développement de façon classique en Java.
III. Utile et utilisable ?
A. Pour un développeur, comparaison avec le développement standard
En master E-services, nous avons pu travailler à de nombreuses reprises sur la plateforme
Android avec une programmation classique (en Java, avec l’IDE Eclipse). Grace à cette
expérience, nous allons pouvoir déterminer l'utilisabilité d’AppInventor par rapport à une
programmation plus classique.
Au début, ce qui saute aux yeux est la simplicité et la rapidité avec laquelle nous «
programmons » sous AppInventor. L'utilisation de composants et de services ce fait
naturellement (pour le programmeur) en ajoutant le dit composant au projet puis en complétant

2
[Link]

30
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

les blocks en rapport, alors qu'en programmation classique, il faut forcement passer par la
documentation et les tests pour faire marcher des composants inconnus convenablement.
Cependant, plus les fonctionnalités d'une application sont nombreuses, plus les blocks seront
nombreux sous AppInventor. En effet, alors que sous Eclipse le code est divisé en fichiers,
classes et méthodes, sur AppInventor toutes les méthodes utilisées sont regroupées au même
endroit. Quand les blocks deviennent massifs et nombreux, il est difficile de s'y retrouver,
même en les organisant entre eux. De plus, même si nous avons la possibilité de commenter
les blocks, cela rajoute du contenu graphique et de l’illisibilité.

Figure 21 : Editeur de blocks commençant à être illisible


L'application X, qui comporte de nombreuses fonctionnalités, cumules les blocks et devient
plus difficile à maintenir.
Si quelqu'un doit reprendre un projet avec des dizaines de blocks et comportant des dizaines de
sous blocks, il devra lire quasiment l’intégralité des blocks pour comprendre le fonctionnement
du programme.
AppInventor souffre aussi d'autres limites, plus techniques. En effet certains composants
manquent à l'appel, comme la possibilité de faire appel à des librairies comme OpenGL,
d'utiliser des services web (requêtes HTTP pour récupérer des XML, images ou fichiers par
exemple) ou même le simple concept d’objets et d’instances est absent.
De plus, un projet est basé sur une Activity et ne permet pas d'en créer d'autre. Une Activity
correspond, dans Android, à un écran d'application ; Il y a donc généralement une Activity pour
l'accueil, une autre pour la fonctionnalité A, une troisième pour la fonctionnalité B, etc.
Techniquement une application développée avec AppInventor est limitée à un seul écran.
Il existe des façons de contourner ce problème :
3
1. Nous pouvons créer plusieurs layouts dans AppInventor .

3
[Link]
asbest-we-can/

31
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Chacun correspond à un écran, lors de l'initialisation du programme, il faut tous


les mettre en invisible à l’exception d’un. De la même façon, lorsqu’il faut
changer d'écran, le layout affiché doit être passé en invisible et celui à afficher
devient à son tour visible.
Ce processus fonctionne mais évidemment ce n'est pas très propre et cela
complique énormément la programmation en blocks.
2. La deuxième solution est qu'il est possible de lancer une Activity d'une autre
application AppInventor.
Dans ce cas, il faut donc créer un projet par écran et avoir toutes les applications
de ses projets installées sur le téléphone pour pouvoir lancer l'Activity d'une
autre application qui une fois terminée rendra la main à celle qui l'a lancé.
Cette solution n'est, elle non plus, pas propre, car les projets ne sont plus des
applications bien distinctes mais des sous-projets d'un plus grand projet. De
plus, pour que cela fonctionne, il faut que toutes les applications soient
installées sur le téléphone.
Nous constatons alors qu'AppInventor n'est pas fait pour concevoir d’importantes applications.
Nous ne pouvons pas non plus utiliser AppInventor pour créer des morceaux de programme
ou des interfaces graphiques à utiliser dans une application programmée plus classiquement.
En effet, comme souligné dans la partie I, il est impossible d'exporter un projet
AppInventor sous forme de code Java. Nous pouvons juste télécharger un fichier .RAR
contenant le projet servant à le partager avec d'autres utilisateurs d’AppInventor. On remarque
d'ailleurs que, contrairement à d'autre outils de travail en ligne créé par Google
(Google Document, Google Wave, …), il n’est pas possible de collaborer et de partager le projet
en ligne pour le travailler à plusieurs simultanément.
De plus, on remarque de façon plus générale qu’il n’est pas possible de créer des widgets ou
des fonds d'écran animés avec AppInventor. Ce sont deux types particuliers d'application :

Figure 22 : Exemples de widget

32
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

Les widgets sont en quelques sortes des icônes à placer sur le « bureau » du téléphone et mis à
jour (à un délai déterminé) pour afficher diverses informations ou permettre des fonctionnalités.
Les fonds d'écran animés sont, comme leur nom l'indique, des fonds d'écrans, qui sont en
arrière-plan du bureau, et animés. Ils sont codés comme une application Android, ce qui leur
permet d'utiliser des fonctionnalités du téléphone pour influer sur l'animation – afficher la carte
en fonction de l'endroit où vous êtes géolocalisé, changer si on secoue le téléphone, etc.

Figure 23 : Exemples de fond d'écran animé


Enfin, dernière limitation et non des moindres : il n'est pas possible de publier des applications
créées avec AppInventor sur l'Android Market. Lorsque nous essayons, nous obtenons le
message suivant :

Figure 24 : Message d'erreur lors d'un envoi sur l'Android Market


Google a sans doute voulu ici, éviter que le Market soit pollué d'applications conçues « à la va
vite » avec AppInventor. La publication sur d'autres Markets ou la distribution du .APK reste
néanmoins possible.
Pour résumer, pour un programmeur Android classique, développer une application avec
AppInventor n'a pas vraiment d'utilité. En effet AppInventor comporte énormément de
limitations par rapport à un développement classique. L'outil peut lui servir à autre chose
(maquettage), comme nous le verrons plus loin, mais il perd son utilité première d’outil de
développement complet.

33
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

AppInventor est cependant très facilement utilisable, on retrouve les components que l'on
connait et leurs méthodes. Pour un programmeur ne connaissant pas Android, il est tout aussi
utilisable – car il s'abstrait de la programmation Java et se concentre sur la programmation
logique par blocks, commune à la plupart des langages de programmation –, mais il devient
également plus utile, par exemple pour découvrir rapidement une grande partie des
fonctionnalités disponibles. Pour un programmeur, AppInventor est donc très utilisable et cela
même si il est peu utile pour faire une application finalisée, on peut lui trouver d'autres usages
comme nous le démontrerons plus loin.

B. Pour un novice
Nous avons vu que AppInventor était très limité pour un programmeur désireux de créer une
« vraie application », mais qu'en est-il des non informaticiens qui veulent s'essayer à la
programmation ? AppInventor a était conçu pour eux et nous allons voir dans cette partie si il
est utilisable et utile pour un novice.
Nous avons trois cobayes qui vont essayer de réaliser deux petits exercices de programmation
avec l’outil de Google. Les trois cobayes ont des profils forts différents :
1. Quentin – 21 ans – étudiant en DUT biologie – profil scientifique.
2. Emilie – 23 ans – diplômée d’une licence d'anglais – profil littéraire.
3. Lise – 8 ans – possède de bonnes notes en maths et en français.
Les exercices sont les suivants :
1. Réaliser une application comportant une zone de saisie de texte (TextBox), un
bouton et une zone d’affichage de texte (Label, non éditable). Après avoir saisi
un texte, si on clique sur le bouton, il faut que le texte s’affiche dans le label.

TextBox TextBox

Bouton Bouton Bouton

Label

On entre du texte dans On cliqu e sur le


le TextBox bouton

Figure 25 : Schéma de la première application test à réaliser


2. Réaliser une application qui affiche les plus grandes valeurs obtenues avec le
capteur accéléromètrique.

34
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

9.10

9.10

9.10

On secoue le
téléphone

Figure 26 : Schéma de la seconde application test à réaliser

Dans l’ensemble, aucun des cobayes n’a réussi à réaliser ces exercices seul. Tout d’abord
lors de la phase de design, la première contrainte est le vocabulaire, à la fois la langue et les
termes utilisés. En effet, AppInventor est en anglais, ce qui pose problème aux non
anglophones. Même pour les anglophones, certains termes ne sont pas familiers aux non
informaticiens – par exemple : le terme « label » qui se traduit par « étiquette », représente une
zone de texte non éditable.
Une fois les différents composants expliqués, la phase de design est généralement réussie. Le
fait d’effectuer des Drap-and-Drop de composants puis de voir l'écran tracer un trait de
positionnement en temps réel aide à la compréhension. Néanmoins, l’utilisation de composants
non visibles n’est pas claire au début. Ici, le fait de placer un AcceleratometerSensor sur l'écran
pour y avoir accès par la suite dans l’éditeur de blocks n’est pas évident à comprendre pour
des non informaticiens qui ne sont pas habitués à faire des importations dans leur code.
Une fois l’interface désignée et tous les composants ajoutés, les choses se gâtent.
Effectivement, bien que la programmation par blocks via l’interface Scratch soit beaucoup
plus abordable que la programmation en classiques lignes de code, elle reste complexe à
assimiler. Elle reste basée sur l’appel de méthode, le passage de paramètres, … cette logique
n’est pas intelligible pour les non informaticiens. Ils comprennent le fonctionnement de code
assemblé quand on leur explique mais ont beaucoup de mal à en composer par eux même.
Trouver les bons blocks et savoir comment les utiliser leur prend du temps et encore une fois
la langue n’aide pas.
La première application qui consiste à transférer le texte du TextBox vers un label lorsque l’on
clique sur un bouton a été réussie (avec aide) par tous les cobayes, à l’exception de Lise. On
ne peut pas faire d’un cas d’étude une généralité. Mais en essayant de faire comprendre le
fonctionnement d’AppInventor à cette enfant de 8ans, nous nous sommes aperçus qu’un grand

35
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

nombre d’obstacles se dressaient face à elle – la langue dans un premier temps ainsi que le
concept des composants. Ils sont difficilement surmontables pour quelqu’un n’utilisant pas de
téléphone/Smartphone. S’agissant des autres testeurs, la conception de la première application
a aussi nécessité notre aide : pour expliquer le rôle et le fonctionnement des composants, les
méthodes à utiliser dans la partie éditeur de blocks et, plus globalement, les étapes à suivre
pour faire fonctionner AppInventor.
La deuxième application nécessite plus de logique. Elle utilise des variables et des conditions.
Ici aussi ces concepts logiques propres aux informaticiens ne sont pas connus de tous. Il a donc
fallu expliquer le système de IF ELSE THEN, le type booléen, etc.
Pour conclure, on peut dire qu’AppInventor est inutilisable sans aide par des non
informaticiens ; ceci à cause de la langue, des termes techniques et des logiques propres à la
programmation. Cependant avec l’aide de quelqu’un, cela permet d’avoir une première
approche de cette logique ainsi que d’avoir un résultat immédiat de son travail puisqu’on
peut rapidement tester sur son téléphone et créer des applications assez intéressantes
(utilisation de TextToSpeech, GPS, …).
C. Quels usages pour AppInventor ?
Nous avons vu dans les parties précédentes qu’AppInventor était utilisable mais peu utile pour
les informaticiens et à l’inverse utile mais peu utilisable par les non informaticiens. On peut
donc se demander quels sont les usages d’AppInventor ? En fait, il y en a quelques-uns, pour
les différents types d’utilisateur.
Tout d’abord pour les informaticiens, même si l’outil est limité en matière de développement
d’applications entièrement fonctionnelles, il peut être utilisé pour créer rapidement des
maquettes d’applications en partie fonctionnelles. En effet, l’interface visuelle peut être
employée pour designer des applications : il est rapide à prendre en main, facilement
modifiable ; on peut établir des comportements grâce aux blocks et enfin on peut tester et
exporter rapidement sur le téléphone. Cela peut donc permettre de créer rapidement une
maquette, pour tester des concepts ou présenter une idée à ses collaborateurs.
Pour les informaticiens, non-initiés à Android, AppInventor donne l’occasion de découvrir les
composants. Ils peuvent alors s’en servir pour créer rapidement de petites applications
correspondant à un besoin facilement réalisable avec AppInventor, donc relativement limité
en fonctionnalités.
Concernant les non informaticiens, AppInventor se trouve être difficile à utiliser. Ils
peuvent tout de même s’en sortir s’ils comprennent l’anglais et qu’ils suivent à la lettre les
tutoriaux disponibles4.
Pour finir, avec l’aide d’un professeur, cela permet de découvrir les bases de la
programmation, ou tout du moins ses logiques. La programmation par blocks ressemble
beaucoup à la programmation « en pseudocode » qui peut être vue lors de premières années
d’études informatiques. Utiliser AppInventor offre en prime la possibilité d’apprendre les

4
[Link]

36
Cours de Programmation Mobile/Troisième Bachelier en I.G [Link]@[Link]

logiques de la programmation, de mettre en place facilement une interface graphique et surtout


de pouvoir tester soit même son code avec un téléphone.
Conclusion
Ce projet nous a permis d’étudier AppInventor de plus près. Nous avons réalisé trois
applications, plus ou moins complexes, fait tester cette plate-forme à des néophytes pour en
évaluer l’utilisabilité, et enfin nous avons recherché des usages à ce site.
Les avantages de cette solution sont nombreux. Comme nous avons pu l’observer tout au long
de ce rapport, AppInventor est extrêmement bien réalisé. Il existe peu de produits
comparables pour Android. Il renferme beaucoup de fonctionnalités au travers de ces
nombreux composants, se trouve être bien documenté, est totalement gratuit et de surcroit
possède un forum assez actif. Toutefois, il comporte aussi des limitations et inconvénients
notables. Effectivement, même si de nombreuses fonctionnalités sont présentes, elles n’y sont
pas toutes. De plus, nous ne pouvons pas réaliser n'importe quels types de projet Android (pas
de widgets ou de fonds d'écran) et nous sommes limités à un seul écran par projet.
Plus généralement, AppInventor est uniquement en anglais, ce qui peut s'avérer être un
problème. En effet, les principales cibles sont les élèves de collège et lycée. Ceux-ci risquent
d'avoir du mal à s'en sortir s’ils ne sont pas anglophones. Enfin, cet outil ne permet pas de
publier les applications créées sur l'Android Market, alors qu’il est tout de même possible de
la proposer sur d'autres markets, non officiels. Malheureusement l'Android Market est le plus
visité.
De notre point de vue, AppInventor est donc un outil parfaitement conçu mais qui manque
d'utilité. Il reste trop compliqué pour les non informaticiens et trop simple pour les
informaticiens si bien qu'il est difficile de savoir à qui il pourrait réellement être à la fois utile
et utilisable. Néanmoins il y a quand même certains usages où il peut s'avérer fort utile, comme
nous avons pu le voir plus précédemment, notamment dans le design et le maquettage
d'applications et l'apprentissage des bases de l'informatique.

37
Cours de Laboratoire Informatique/L1 I.G [Link]@[Link]

Bibliographie
[1] Christophe Porteneuve, Bien developers pour le Web 2.0, ©Groupe Eyrolles, 2007.
[2] Pierre-Baptiste Naigeon, Tutos «Notion de base, CSS» , 2 Mai 2006

Webographie
[3] Christophe MAGDELAINE [Link]
[4] Nicolas Chu [Link]
[5] [Link]
[6] [Link]
your-app-asbest-we-can/

38

Vous aimerez peut-être aussi