# App Android

Alors y’a un super outil pour les gros noob d’Android comme moi, c’est [appinventor](http://appinventor.mit.edu/). il vous suffit de créer un compte, et vous pouvez développer des applis toute simples, avec un codage graphique à la codeblock. C’est très intuitif.

[![image-1583337299472.png](https://doc.labsud.org/uploads/images/gallery/2020-03/scaled-1680-/image-1583337299472.png)](https://doc.labsud.org/uploads/images/gallery/2020-03/image-1583337299472.png)

En plus le debuging est simple : soit par connexion USB avec votre tel, soit par wifi en installant une application dédiée. A la fin quand votre projet est fini, vous pouvez : soit générer un QR code qui vous renverra un lien de téléchargement temporaire, soit télécharger le fichier .apk à installer en manuel (la aussi je vous renvois vers google c’est tout simple).

Voici l’appli : [https://ai2.appinventor.mit.edu/?galleryId=5667337949151232](https://ai2.appinventor.mit.edu/?galleryId=5667337949151232)

[![Capture.PNG](https://doc.labsud.org/uploads/images/gallery/2020-03/scaled-1680-/Capture.PNG)](https://doc.labsud.org/uploads/images/gallery/2020-03/Capture.PNG)

Bon l’écran de base c’est un gros troll pour mon pote avec un magnifique montage que vous pouvez faire péter évidemment ![😉](https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/1f609.svg)

Il suffit d’aller dans « Paramètres », de rentrer votre IP et votre port et voila ça devrait fonctionner. Quand on appuie sur le bouton « ouvrir » ça envoi une bête requête, tant que l’app ne reçoit pas « opening » le bouton reste verrouillé ou bien il se déverrouille au bout de 5 secondes.

Une petite base donnée (« tinyDB ») permet à la fois de garder en mémoire les données pour ne pas avoir à les retaper à chaque lancement, et de passer les infos d’un screen à l’autre. En effet sur AppInventor on ne peut pas créer de variables globales, donc le seul moyen de se faire passer des infos d’un screen à l’autre c’est de passer par une base de donnée …

Au passage dans paramètre certains champs sont prévus mais inactifs : en fait à l’origine je pensais passer par du MQTT plutôt que du HTTP mais ça nécessitait trop de moyens …

<p class="callout info">Je reviens sur ce dernier point : j'ai pas testé cette solution (qui n'existait pas à l'époque de la rédaction) [http://bienonline.magix.net/public/android-AI2-MQTT-en.html ](http://bienonline.magix.net/public/android-AI2-MQTT-en.html)Donc potentiellement on pourrait basculer en MQTT, et la il n'y aurait plus vraiment besoin de coder une application ...</p>