25 novembre 2016

ABC-Bonjour

Il est quelquefois amusant de voir comment une application évolue.

Il y a quelques semaines, on m’a demandé si je pouvais créer un serveur web sur le réseau local à l’intérieur d’une application IOS. Comme j’avais déjà fait ABC-Ardoise et Professeur, deux applications communiquant entre elles sur le réseau local, je me suis dit que cela ne devrait pas poser de problème…

Bonjour

La première chose est d’expliquer ce qu’est bonjour car ce n’est pas si simple.

Lorsque vous vous connectez à un serveur distant (sur Internet), vous donnez son adresse (par exemple http://abc-applications.com), mais abc-applications.com n’est pas la vraie adresse de l’ordinateur qui vous répond, la vraie adresse est 163.172.41.34, plus difficile à retenir. Pour vous connecter à mon serveur, votre ordinateur va s'adresser à un serveur nommé abc-applications.com, et le serveur va lui répondre 163.172.41.34, ce qui permettra à votre navigateur de se connecter à mon ordinateur.

Maintenant, si vous n’êtes plus sur Internet, mais dans votre réseau local, il n’y a que des adresse à nombres (adresse IP). Or vous souhaitez vous connecter à votre imprimante, comment faire ? Avant on vous demandait de rentrer l’adresse IP à la main, mais ce n’était pas pratique. C’est là que  bonjour  intervient. Ce protocole, permet de créer une sorte de serveur avec un nom pour le réseau local où chaque service peut se déclarer. En clair lorsque vous voulez imprimer, votre ordinateur lance une demande sur le réseau local à toutes les machines leur demandant « vous êtes une imprimante? » et les imprimantes répondent « oui, je m’appelle EPSONXYZ ou autre chose et mon adresse est X.X.X.X ».

Serveur web bonjour

Avec bonjour, vous pouvez donc demander quels sont les serveurs web de votre réseau local. Avec SAFARI sur MacOSX, c’est juste une option à cocher. J’ai donc créé le serveur web dans JeValide et utilisé bonjour pour le déclarer. Et cela a fonctionné ! Vous pouvez actuellement, avec la version 2.11 de JeValide, vous connecter à la base de données des élèves et sélectionner les items acquis pour chacun d'eux. La vidéo ci-dessous vous montre la chose en vrai.

SAFARI iPad

Evidemment, le but recherché lorsque l’on met un serveur web à JeValide n’est pas d’y accéder via un Mac, mais plutôt via des tablettes dans la classe. J’ai donc commencé mes tests et tenté d’activer  bonjour  sur SAFARI iPad, et là, je n’ai pas trouvé comment faire ! L’option n’est pas là. Je ne sais pas quelle raison marketing douteuse fait que l’option ne soit plus là, mais elle n’est, vraiment,  pas là. Peut-être pour obliger les constructeurs d’appareils connectés à faire des applications…

Toujours est-il que je me suis trouvé fort embarrassé, sans bonjour  dans SAFARI je me trouvais obligé de faire une application « cliente » de JeValide, mais ce n’est pas ce que je voulais.

ABC-Bonjour

J’ai donc développé ABC-Bonjour, une application qui fait ce que Safari devrait faire. Cette application montre les services web du réseau local et lance SAFARI avec les bons paramètres.

J’ai préféré faire une application générique, qui pourra servir aussi bien à se connecter au serveur web de JeValide qu'à son imprimante ou sa box, peut-être ferai-je un jour une version cliente de JeValide, mais uniquement si j’ajoute des fonctionnalités difficiles à mettre en place en web. En attendant ABC-Bonjour est là et gratuite.

Pour mieux comprendre ABC-Bonjour, voici une petite vidéo :

CNIL

En ce moment, on me pose beaucoup de questions sur la CNIL, et on me demande si j’ai déclaré mon fichier… Mon problème est que je n’ai pas de fichier ! Donc pas de déclaration.

C’est vous qui avez le fichier des enfants de votre classe dans votre iPad. ABC-Applications n’a, jamais, accès à vos données. Dans le cas du site web, c’est pareil… JeValide devient serveur web, mais sur le réseau local et je n’y ai pas accès.  Et le fichier de base de données reste dans votre appareil. A vous de jouer !

Limitations liées à IOS

Apple ne permet pas de faire de vrai serveur dans ses appareils. C’est à dire que le site web ne fonctionne que si l’application est active, car je n’ai pas le droit de faire fonctionner mon application en tâche de fond. De même si l’écran s’éteint, le serveur aussi, c’est pourquoi j’ai enlevé l’extinction automatique de l’écran lorsque JeValide est actif.

Conclusion

Voilà comment une simple question ajoute une fonctionnalité importante à une application. Ce n’était pas prévu, mais cela vous sera sûrement utile. Reste à améliorer le service en lui ajoutant toutes les fonctionnalités qui me seront données.


Emmanuel CROMBEZ