Forum Programmation.autre Développement d'une interface de saisie sur tablette

Posté par . Licence CC by-sa
Tags :
3
8
jan.
2014

Bonjour.

Actuellement, lors d'un audit énergétique de bâtiment, on prend des notes sur un cahier (types de murs, dimensions des pièces, équipements de chaufferie, éclairages, etc) et ensuite on entre ça dans un logiciel de calcul, dans un rapport,…

On aimerait se doter d'un logiciel sur une tablette pour faciliter les saisies, une simple interface graphique avec des cases à remplir et des menus déroulants.

  • intégration d'une base de données d'équipements / matériaux
  • la saisie logicielle évite d'oublier de saisir des éléments
  • moins de problèmes de relecture
  • idéalement sortie sous forme de tableur (Excel) puisque c'est ce que les collègues utilisent

Un stagiaire a développé un truc en Excel / user forms à exécuter sur une tablette Microsoft. Ça donne une idée mais dans la pratique, je vais probablement repartir de zéro. Et quitte à repartir de zéro, je changerais bien de technologie / plateforme. Seulement Excel / userforms, malgré certaines limites, c'est pratique. C'est sale et rapide.

J'ai pensé qu'avec Qt je pourrais développer sur linux et avoir compatibilité Windows et Android. Mon idée aussi est que quitte à y passer du temps, j'aimerais bien utiliser un cadriciel pour lequel j'éprouve de l'intérêt.

Visiblement, un émulateur permet de tester l'appli Android depuis un PC. J'espérais qu'Android étant linux, le portage sur Android serait trivial, mais apparemment, c'est plutôt récent puisque ça ne devient accessible que depuis Qt 5.2 (Debian experimental).

N'ayant aucune vision, je veux bien des conseils.

  • Les tablettes, c'est nécessairement Android, Apple ou MS, n'est-ce pas ?

Oui, je pars de loin. En lisant la page WP, j'en vois d'autres, notamment Ubuntu Linux, mais ça a l'air en développement et la liste des appareils pris en charge est limitée : pas de tablette, seulement des téléphones.

  • Si c'est Android, quelles possibilités pour créer des GUI ?

Je cherche un environnement qui me permette de dessiner mes fenêtres façon userforms ou QtCreator.

  • Peut-être existe-t-il des choses qui vont encore plus loin, et qui comprennent la structure des données pour fabriquer automatiquement des fenêtres de saisie en fonction des entités voulues ?

Exemple:

Une classe chaudière avec deux paramètres : rendement (float) et brûleur (pointeur vers instance classe brûleur). Je peux dessiner une fenêtre, placer un champ qui demande un float, un autre avec une liste déroulante de mes instances de brûleurs, et créer ou mettre à jour une instance de chaudière quand on clique sur Valider. Mais est-ce qu'il ne pourrait pas exister des méthodes qui créent les fenêtres en introspectant les classes (en gros) ?

Merci pour vos retours.

  • # UI

    Posté par . Évalué à 2.

    Les tablettes, c'est nécessairement Android, Apple ou MS, n'est-ce pas ?

    Globalement oui. Vise Android pour baisser les coup. Et aussi Windows car l'entreprise se rendra compte que payer des tablettes et un PC à tout le monde c'est inutile.

    Si c'est Android, quelles possibilités pour créer des GUI ?

    Je te conseil Qt, en plus tu à l'air de connaitre.
    Ou alors de le faire en version web. Tu serras compatible "tout", et en plus tu pourra rajouter "cloud computing", ça fait toujours classe. Les difficultés sont: la connexion web, la location du serveur, et l'interface qui s'adapte à la taille de l'écran.

    Peut-être existe-t-il des choses qui vont encore plus loin, et qui comprennent la structure des données pour fabriquer automatiquement des fenêtres de saisie en fonction des entités voulues ?

    Je connais ça en dev web. C'est appelé "scafolding".

    Les questions que tu devrais te poser :
    - est-ce qu'une interface tablette c'est adapté ? (par exemple si les techniciens ont les mains salles, les 2 mains libres (une pour tenir la tablette, l'autre pour l'utiliser), si il pleut sur site …)
    - ont-ils besoin d'écrire beaucoup de texte ? (tache compliqué sur tablette)
    - Est-ce que l'interface doit copier les documents papiers utilisés avant, ou cette nouvelle technologie permet une interface différentes et mieux adapté au support ?

    • [^] # Re: UI

      Posté par . Évalué à 2.

      Merci pour ces éléments.

      Et aussi Windows car l'entreprise se rendra compte que payer des tablettes et un PC à tout le monde c'est inutile.

      Je comprends pas bien cette phrase. En tout cas, on a tous un PC, et l'équipe audit énergétique n'a besoin que d'une à deux tablettes, grand max. Il n'y a pas de redondance.

      Je te conseil Qt, en plus tu à l'air de connaitre.

      Pas plus que ça, en fait, juste une expérience en GTK et j'ai regardé vite fait Qt mais ça m'intéresse et j'en ai vraiment entendu du bien (notamment ici).

      Ou alors de le faire en version web. Tu serras compatible "tout", et en plus tu pourra rajouter "cloud computing", ça fait toujours classe. Les difficultés sont: la connexion web, la location du serveur, et l'interface qui s'adapte à la taille de l'écran.

      Et surtout les problèmes de connexion si ça capte pas ou mal. En revanche, l'idée de le faire en web avec serveur sur la tablette nous a traversé l'esprit. Restait à savoir quoi mettre derrière le HTML.

      Je connais ça en dev web. C'est appelé "scafolding".

      Oui, j'ai découvert le terme ce matin. J'ai vu un lien vers Django, que je ne connais pas, mais je connais Python. Peut-être une piste en HTML.

      Les questions que tu devrais te poser :
      - est-ce qu'une interface tablette c'est adapté ? (par exemple si les techniciens ont les mains salles, les 2 mains libres (une pour tenir la tablette, l'autre pour l'utiliser), si il pleut sur site …)

      J'avais des doutes mais ça c'est déjà validé. Notamment via test de la version du stagiaire.

      Notre outil de travail c'est le carnet et le crayon, donc les mains sales, c'est surtout les frites du midi. On farfouille peu dans les chaudières. L'essentiel se déroule en intérieur.

      • ont-ils besoin d'écrire beaucoup de texte ? (tache compliqué sur tablette)

      L'outil vise à limiter ça via menus déroulants. Reste des zones commentaire pour ce qui est pas prévu, et l'ajout des nouveaux équipements, mais ça devrait aller. (Ça fait aussi partie de mes doutes.)

      • Est-ce que l'interface doit copier les documents papiers utilisés avant, ou cette nouvelle technologie permet une interface différentes et mieux adapté au support ?

      Actuellement, on n'a pas vraiment de modèle, une feuille vierge sur laquelle on dessine le bâtiment au fur et à mesure et on note ce à quoi on pense. Si on est organisé on a une liste. Si on est expérimenté on en a plus mais on peut oublier des choses.

      La question de l'interopérabilité avec les logiciels de calcul thermique n'est pas à l'ordre du jour.

      • [^] # Re: UI

        Posté par . Évalué à 2.

        Et aussi Windows car l'entreprise se rendra compte que payer des tablettes et un PC à tout le monde c'est inutile.

        Je comprends pas bien cette phrase.

        J'ai du faire un travail similaire, où une fois la version tablette codée, aucune tablette n'a été achetée.

        Je connais ça en dev web. C'est appelé "scafolding".

        Oui, j'ai découvert le terme ce matin. J'ai vu un lien vers Django, que je ne connais pas, mais je connais Python. Peut-être une piste en HTML.

        Je me rappelle qu'en java il est possible d'en faire aussi (avec NetBeans). Si tu as tant de champs que ça, tu peux l'écrire toi même, c'est pas si compliqué.

      • [^] # Re: UI

        Posté par . Évalué à 2.

        Et surtout les problèmes de connexion si ça capte pas ou mal. En revanche, l'idée de le faire en web avec serveur sur la tablette nous a traversé l'esprit. Restait à savoir quoi mettre derrière le HTML.
        

        En fait, on peut aussi tout faire en HTML avec du code seulement en Javascript, et pas de serveur derrière (enfin, juste un serveur tout bête qui va servir les fichiers html, css et js). Et pour le problème de l'accès à internet intermittent, HTML5 permet la création d'applications persistantes, qui sont mises en cache à la première connexion, et ne nécessitent pas d'accès à internet pour être utilisées ensuite: http://diveintohtml5.info/offline.html .

  • # Réponse de newbies

    Posté par . Évalué à 2.

    Bonjour, mes début avec android sont très récents (moins de 2 mois) mais voici les éléments que je peut te fournir.
    Avec l'environnement android de base est fournit deux éléments que tu recherche
    -un simulateur pour faire tourner les applis
    -un editeur graphique qui construit pour toi en xml (voici une video qui le présente)

    Le simulateur est d'une lenteur horrible, mais avec une tablette style sams. galax. tab. on peut faire du debug via l'usb très simplement, c'est plus rapide et te montre directement le rendu sur l'ecran d'une tablette.
    Avec android pour le design des ihm on est fortement incité à séparé cela du code, les ihm ce code en xml et c'est pénible de faire des ihm dynamique à partir du code, mais le choix existe. Donc en fonction de cela je doute qu'un parseur de classe existe pour construire une ihm, mais on ne sait jamais.

    une simple interface graphique avec des cases à remplir et des menus déroulants
    

    Ca c'est vraiment simple à faire

    intégration d'une base de données d'équipements / matériaux
    

    Android gère en natif les bases SQLite

    idéalement sortie sous forme de tableur (Excel) puisque c'est ce que les collègues utilisent
    

    Je pense que le plus simple sera plutôt avoir une sortie fichier CSV (format que tout les excel importeront tres bien) ou xml que les récents sauront lire.

    • [^] # Re: Réponse de newbies

      Posté par . Évalué à 2.

      Le simulateur est d'une lenteur horrible

      Il est très lent lorsqu'on utilise des machines virtuelles pour processeur ARM.
      Le SDK Android permet de créer des machines virtuelles pour processeur x86.
      J'ai des applications Android qui tournent plus vite dans une machine virtuelle x86 sur mon PC que sur mon téléphone.

      • [^] # Re: Réponse de newbies

        Posté par . Évalué à 2.

        Merci je vais regarder cela, mais venant de l'embarqué je "target" toujours le proc destination pour faire la mise au point et les tests et tant qu'as acheter au final des tablettes je conseil de faire la mise au point directement sur le matériel de destination envisagé et en acheté une au début du dev.(les habitudes ont la vie longue).

        • [^] # Re: Réponse de newbies

          Posté par . Évalué à 3.

          Moi aussi, je "target" un proc ARM pour les tests finaux avant release mais commencer les tests avec un émulateur x86 permet de déboguer beaucoup plus rapidement.
          De toute façon, même si l'écrasante majorité des téléphones et tablettes tourne sous ARM, il y en a quand même quelques uns en x86. En toute rigueur, il faut donc tester sur les deux architectures.

  • # kivy ?

    Posté par (page perso) . Évalué à 4.

    http://kivy.org/#home

    If you choose open source because you don't have to pay, but depend on it anyway, you're part of the problem.evloper) February 17, 2014

  • # connectée ou pas ?

    Posté par . Évalué à 2.

    si tes tablettes sont connectables (3G/4G, Wifi) dans les batiments que tu visites,
    pourquoi ne pas faire un site web (extranet) avec un "responsive design" pour s'adapter aux navigateurs mobiles ?

    pourquoi je demandes ca,
    simplement parce que si tu fais une appli "lourde" à savoir qui tourne en local de la machine,
    il te faudra quand meme envoyer le resultat dans un fichier pour ensuite l'importer dans le logiciel de calcul.
    en plus il te faudra un outil de gestion de flotte pour que la nouvelle version de l'appli soit installée sur toutes les tablettes du boulot pour eviter que M.Dupont se retrouve avec une version de retard.

    avec la version en ligne, tu ajoutes un champs, tout le monde en beneficie, directement.

    mais evidemment on n'a pas toujours la 3G/4G/Wifi dans certains batiments.

    • [^] # Re: connectée ou pas ?

      Posté par . Évalué à 3.

      C'est peut-être une bêtise, mais en utilisant le Local Storage de HTML5, il y aurait peut être moyen de faire les opérations offline et de les resynchroniser avec le service web une fois la connexion rétablie.

      En tout cas, si jihele, l'auteur de ce post, se lance, j'espère qu'il nous tiendra au courant de ses choix !

  • # Merci

    Posté par . Évalué à 2.

    Je ne sais pas si et quand j'aurai le temps (et les compétences et le courage) de me lancer dans quelque chose qui tient la route (sinon, je reste sur excel/userforms).

    Si c'est le cas, j'explorerais bien la piste Qt, et peut-être en python parce que je me sens à l'aise avec, même si les exemples Qt qu'on trouve sont plutôt C++.

    J'ai eu une conversation avec un "ami qui s'y connaît" et qui m'a rassuré sur cette option.

    Il me faudrait passer par une étape de validation de la facilité du portage Android de l'application python/Qt.

    C'est aussi lié à mes compétences / affinités. Les technos Web/HTML5, etc, je pars de plus loin. Et si ça peut être l'occasion de faire monter un ou deux collègues en compétence sur python, c'est bien, parce que c'est à mon sens un langage de programmation accessible aux non développeurs (par exemple aux habitués de Matlab qui ne connaissent pas le C).

    Peut-être même que ça tournerait sur la tablette Windows qu'on a déjà avec juste un portage (ou un développement) sur Windows… Donc une transition en douceur, en se réservant la possibilité Android pour plus tard.

    En tout cas, si jihele, l'auteur de ce post, se lance, j'espère qu'il nous tiendra au courant de ses choix !

    D'ici à ce que j'arrive à avancer, les commentaires sur cette entrée de forum seront peut-être fermés… D'où ce premier retour.

    Merci pour vos réponses, qui m'ont aidées à dégrossir.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.