Application de bureau - Best Practice Bookshelf

Vues : 621

Qu'est-ce que l'application "Best Practice Bookshelf" ?

Cette application est une application multiplateforme permettant la consultation de livre numérique sur Windows et macOS (la version mobile est intégrée à l'application Maitrise orthopédique), les livres proposés sont de la documentation sur de la chirurgie orthopédique, le texte est mis en forme à l’aide d’une application qui est munie d'un éditeur "Wysiwyg", la possibilité d'ajouter des médias (images et vidéo) est également de la partie.
Application Best-Practice Bookshelf

Quelles technologies ont été utilisées pour réaliser cette application ?

Le framework electron

Électron est un framework développé à l'origine par Github (racheté depuis par Microsoft), permettant de créer des applications de bureau avec du code web (JavaScript), de base chaque système d'exploitation (Windows, macOS ... etc.) ont leurs propres méthodes de développement pour créer des applications et le code ne peut pas être partagé, avant "Electron » il y avait des technologies comme "QT » permettant de partager le même code sur plusieurs plateformes. L'avantage d’Electron est qu'il permet aux développeurs web de réutiliser leurs compétences pour créer des applications de bureau.

Quelques avantages d'Electron :

  • Il est possible d'accéder à des fonctions système plus simplement et de manière plus poussée qu’avec navigateur traditionnel.
  • L'application fonctionne comme tout autre sur un ordinateur, c'est un « .exe » sur Windows et un  « .app » sur macOS
  • Il est possible de mettre en place un système de mise à jour de l'application, à chaque lancement de celle-ci elle va vérifier sur un serveur distant si une nouvelle version est disponible, si c'est le cas cette dernière version est téléchargée silencieusement en tâche de fond.
  • Il est possible d'aller plus loin avec le mode "hors ligne", en effet les "Progressive Web App" proposent déjà beaucoup de choses en ce qui concerne le mode hors ligne, une application Electron peut aller beaucoup plus loin.

Quelques inconvénients d'Electron : 

  • La signature du binaire : Pour les développeurs web, cela peut être déroutant, en effet pour que le code soit exécuté correctement directement sur le système d'exploitation cible il faut signer ce code à l'aide d'un certificat de sécurité rapide, permettant d'identifier l'émetteur du binaire.
  • Electron embarque le moteur de Google Chrome, de ce fait le binaire final (livré aux utilisateurs) et très gros, ça peut aller jusqu'a une centaine de méga-octets.
  • À chaque fois qu'une application Electron est lancée sur le système de l'utilisateur, tout le moteur de Chrome est chargé (par application), ce qui consomme beaucoup de ressources.
  • Les performances (la fluidité) ne sont pas aussi bonnes qu'une vraie application native.

Ce projet utilise « Electron » majoritairement pour les raisons suivantes :

  • La possibilité de réutiliser du code déjà écrit pour le web, iOS et Android (Cordova, Ionic et Angular)
  • La possibilité d'avoir un système hors ligne très complet, en effet il y a juste besoin d'une connexion internet à la première utilisation de l'application, après cela tout est en cache dans l'application, il est donc possible de lire même dans l'avion.
  • Le système de mise à jour, en complément du mode hors ligne, permet d'ajouter des fonctionnalités quand l'utilisateur a une connexion internet.

Ionic et Angular

Je les mets ici ensemble pour une raison très simple, à l'époque Ionic et Angular étaient très liés, un projet Ionic était forcément un projet Angular.
Aujourd'hui ce n'est plus le cas, il est possible d'utiliser Ionic avec React, VueJS ou Angular.

Ce choix a été fait pour une raison très simple, l'application mobile de Maitrise orthopédique utilise également Ionic et Angular et intègre le Bookshelf, à l'origine le Bookshelf devait être une application autonome sur iOS et Android, mais Apple en a décidé autrement.

Le fait d'utiliser la même technologie dans l'application mobile ainsi que dans l'application de bureau a le gros avantage de faciliter le portage, à l'époque étant seul développeur à travailler sur ces applications, c'était beaucoup plus simple. C'est d'ailleurs aussi pour ça que l'application mobile Maitrise orthopédique utilise Ionic et Cordova, mais cela sera détaillé dans une prochaine retour de projet sur ce site.

Conclusion

Le plus gros intérêt technique de cette application est son utilisation d'Electron, un framework» qui a fait ses preuves, que l'on retrouve d'ailleurs un peu partout comme dans l'application Slack ou encore Visual Studio code, le web permet un portage entre les plateformes très intéressantes, mais au prix du sacrifice des performances.