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.
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 :
Some disadvantages of Electron :
This project uses Electron for the following reasons:
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.