Recherche des références d'un livre à partir de son code ISBN

Durée estimée: 25 minutes

Présentation :

Dans cette application, nous allons utiliser la fonction scan de la tablette ou du smartphone pour reconnaitre le code ISBN d'un livre, puis consulter un serveur Web pour en savoir plus sur ce livre : Titre, auteur, date de parution, etc.

Remarque :
  • Cette application simple, a l'intérêt de montrer l'utilisation d'un capteur (scanner) pour acquérir une information, la réutiliser dans un algorithme, chercher la réponse souhaitée sur le web et finalement l'afficher.
  • Elle illustre un schéma récurrent d'acquisition (avec un capteur ou un service web), d'exploitation (par un algorithme) et finalement d'action (ici l'affichage).
  • Ce processus est extrêmement puissant (même si il apparait simple et facile). C'est le principe de beaucoup de programmes, à commencer par les robots ou les machines à laver.

Ce que l’on va faire :

Développer de bout en bout une application communicante (SMS et appels téléphoniques) qui tire au sort un des participants.

  1. cerner les contours de l'application à réaliser,
  2. définir l'interface utilisateur et seélectionner les ressources utilisées,
  3. identifier les évènements auxquels l'application doit réagir et coder le script ou la séquence d'instructions (blocs) correspondant à chaque évènement,
  4. Tester et corriger les bugs si il y'en a.

Ressources en entrée :

L'information à connaitre est l'adresse (ou l'URL) du serveur qui pourra fournir les références du livre à partir de son code ISBN. Il y en a plusieurs.
Nous avons utilisé l'URL : "http://google.fr/search?tbm=bks&q=isbn:" suivie du code ISBN.
Vous pouvez aussi utiliser : "http://www.isbnsearch.org/isbn/"
ou d'autres formes de requêtes "http://google.fr/search?tbm=bks&q=isbn:".

(Nous ne développons pas ici, les critéres de choix du serveur, mais ce peut être un bon sujet de débat si vous animez un groupe).

Réalisation

Notions abordées :

  • L'interface utilisateur avec des composants visibles(bouton, et afficheur Web) et des ressources utilisées dans le progralle: le composant de scan des codes barre,
  • Notion d'évènement (click sur le bouton, réception d'une réponse après scan...) et de script associé à chaque évènement,
  • Appel à un capteur : le scanner,
  • Affichage du contenu correspondant à l'adresse d'un service web,
  • Essais.

Extensions possibles de cette application

  • Recherche de n'importe quel produit à partir de son code barre
  • Comparaison des prix, ...

Déroulement

cf. vidéo

Revue des notions mises en oeuvre

  • Les étapes dans la réalisation d'une application :
    • Design de l'interface utilisateur et le choix des ressources,
    • Programmation : scripts ou séquences d'instructions (ou de blocs) qui font suite à un évènement,
    • Transfert du programme vers le mobile (en mode debug interactif),
    • Mise au point et essais nécessaires pour vérifier le bon fonctionnement.
  • Dans la partie design :
    • Choisir/trouver les composants :
      • le composant d'affichage web est dans la catégorie "Interface utilisateur". C'est un composant visible qui apparait à l'écran.
      • le scan est dans la catégorie des "capteurs" (ou sensors)", c'est un composant invisible qui renvoie des données qui sont exploitées ensuite par le programme sans nécessairement appraitre à l'écran. Pendant le design, ce composant apparait sous la fenêtre.
    • Le choix du nom des composants a t-il un impact théorique ou pratique sur la phase suivante de programmation ?
      Il a un impcat pratique car le nom va permettre de se rappeler à quoi correspond chaque composant quand on va écrire le programme. Par exemple : "BoutonScan" permet de se rappeler qu'il s'agit bien du bouton de scan. Par contre, ça n'a aucune importance pour le programme. On aurait très bien pu appeler ce bouton "Michel" ou "MaBicyclette". Vous pouvez le renommer et vir que le programme marche exactement pareil. La différence est pratique, ni informatique ou théorique.
    • Le design permet de choisir les principales propriétés des composants. Il restera possible de modifier ces propriétés ensuite dans le programme, mais ça n'est pas toujours nécessaire.
  • Programmation : les évènements et les blocs utilisés :
    • Quels évènements avons nous pris en compte ?
      click et la fin de scan qui correspond à la réception du résultat.
    • Les blocs ont plusieurs formes : lesquelles et à quoi correspondent-elles ?
    • idem pour la couleur ?
    • correspondance avec les objets :
  • Transfert du programme vers le téléphone ou la tablette :
    On a utilisé l'onglet "connect/ AI companion" qui permet une installation temporaire sur le smartphone. Nous verrons que ce mode est bien adapté à la phase de développement.
    Nous verrons plus tard le transfert avec l'onglet " construire / App (QR code pour apk)" ou " build/app (provideQRcode for .apk)" qui permettra un transfert permanent, lorsque l'application est au point. Avec ce mode, l'application poura être utilisée sur le téléphone de façon autonome.