Desktop application - Best Practice Bookshelf

Views: 84

What is the "Best Practice Bookshelf" application?

Best Practice Bookshelf is a multiplatform application for consulting digital books on Windows and macOS (the mobile version is integrated into the Maitrise orthopédique application).The text is formatted using an application equipped with a "Wysiwyg" editor, and the possibility of adding media (images and video) is also included.
Application Best-Practice Bookshelf

What technologies were used to create this application?

The electron framework

Electron is a framework originally developed by Github (since acquired by Microsoft), enabling the creation of desktop applications with web code (JavaScript).) have their own development methods for creating applications, and code cannot be shared. Before "Electron", there were technologies like "QT", enabling the same code to be shared across multiple platforms. The advantage of Electron is that it enables web developers to reuse their skills to create desktop applications.

Some advantages of Electron :

  • System functions can be accessed more easily and extensively than with a traditional browser.
  • The application works like any other on a computer: it's an ".exe" on Windows and an ".app" on macOS.
  • Each time the application is launched, it checks a remote server to see if a new version is available. If this is the case, the latest version is downloaded silently in the background.
  • It's possible to go even further with the "offline" mode, as "Progressive Web Apps" already offer a great deal in terms of offline mode, an Electron application can go much further.

Some disadvantages of Electron :

  • Signing the binary: For web developers, this can be confusing, as for the code to be executed correctly directly on the target operating system, it must be signed using a fast security certificate, enabling the issuer of the binary to be identified.
  • Electron uses the Google Chrome engine, so the final binary (delivered to users) is very large, up to a hundred megabytes.
  • Every time an Electron application is launched on the user's system, the entire Chrome engine is loaded (per application), which consumes a lot of resources.
  • Performance (fluidity) is not as good as a real native application.

This project uses Electron for the following reasons:

  • The ability to reuse code already written for the web, iOS and Android (Cordova, Ionic and Angular)
  • The possibility of having a very complete offline system, in fact all you need is an Internet connection the first time you use the application, after which everything is cached in the application, so it's possible to read even on a plane.
  • In addition to the offline mode, the update system lets you add new functionalities when the user has an Internet connection.

Ionic and Angular

I'm putting them together here for a very simple reason: at the time, Ionic and Angular were very closely linked, and an Ionic project was inevitably an Angular project.
Today, this is no longer the case: you can use Ionic with React, VueJS or Angular.

This choice was made for a very simple reason: the Maitrise orthopédique mobile application also uses Ionic and Angular and integrates the Bookshelf. Originally, the Bookshelf was to be a stand-alone application on iOS and Android, but Apple decided otherwise.

The fact of using the same technology in the mobile app as in the desktop app has the big advantage of making porting much easier, at the time being the only developer working on these apps, it was much simpler. This is also why the Maitrise orthopédique mobile application uses Ionic and Cordova, but this will be detailed in a future project review on this site.


The biggest technical advantage of this application is its use of Electron, a tried-and-tested "framework" that can be found just about everywhere, such as in the Slack application or Visual Studio code. The web enables very interesting cross-platform porting, but at the price of sacrificing performance.