Recherche d'informations sur un livre à partir de son code ISBN

Durée estimée: 25 minutes

Présentation :

Dans cette application, on utilise la fonction scan du smartphone ou de la tablette pour reconnaitre le code ISBN d'un livre, puis consulter un serveur Web pour récupérer les informations sur ce livre : Titre, auteur, date de parution, etc.

Remarque :

  • Cette application simple, montre l'acquisition d'une information avec un capteur (scanner), puis l'exploitation de cette information dans un algorithme, la recherche d'informations dans une base de données sur Internet, et l'affichage de l'information recherchée.
  • Elle illustre un schéma récurrent : acquisition(capteur ou service web), traitement (algorithme) et finalement action (l'affichage).
  • Cet enchainement est extrêmement puissant. C'est le principe de beaucoup de programmes, à commencer par les robots ou les machines à laver.
  • Cete application est à peu près la même que celle qui scanne le code barre d'un produit alimentaire pour afficher son nutriscore (voir plus loin).

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).

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.

Réalisation (Build)

Extensions possibles (Customize)

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

Revue des notions mises en oeuvre (Conceptualize)

  • 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.