The MO - Journal application is the companion application to the "Maitrise orthopédique" website I mentioned earlier.
This application enables simplified consultation on mobile terminals (iOS and Android, a "Progressive Web App" version also exists, but has never been deployed).
On the server side, an "ExpressJS" application has been developed (ExpressJS is a framework running on the well-known NodeJS), which connects to the same database as the website, a Galera cluster for fault tolerance.This application is totally stateless, meaning that there are no sessions.each request sent to the server must contain a specific header in order to be recognized and thus gain access to Maitrise-Orthopédique's paying content.
This part was developed using the "Ionic Framework", as I was the only developer on the project and had to release it relatively quickly, Ionic (and Cordoba) enabled us to create a hybrid application with a correct user experience relatively quickly.
Once authenticated, the application lets you browse the various issues of the newspaper in both French and English (detected by the language of the terminal).
It is also possible to view the media offered by Maitrise-Orthopédique. To ensure the best possible fluidity, the latest video compression codecs are used whenever possible (h265 on iOS, WebM for Android).
The site's search engine is found in a softer version of the application, without the "facets" more commonly known as "filters". The idea is to have the most fluid experience possible with the small amount of space available on the screen.
Finally, as I mentioned earlier, BP Bookshelf is integrated into the application.Since the desktop application also uses Ionic, it was simpler to port the Bookshelf's functionalities to the mobile application.
Have you ever typed a login and password on your terminal, what do you think of the user experience?
Personally, I find this kind of experience very unpleasant, and there's room for improvement.
To solve this problem, the mobile application can connect with the terminal's camera...
Once connected to the Maitrise-Orthopédique website on a computer, simply click on "display my connection QR code" and select "easy connection" in the "Maitrise-Orthopédique" application.
Have you ever used the Internet on a TGV train? Most of the time it works, but the connection can be very stable. To compensate for this, when the user selects a newspaper, the application automatically downloads everything necessary to display all the content of this article in the background.
When the user tries to reconsult this content, the application tries to retrieve the latest version from the server with a time-out of a few milliseconds (if the user is not logged in). of a few milliseconds (if the terminal's operating system returns an "offline" statue to the application, then there's no attempt even to connect to the server).
If the application manages to connect to the server after the timeout, the data is updated for the next consultation.
Images, on the other hand, are downloaded and cached only once, and it is possible to force their re-download via the website administration interface.
This is deliberate, to make the most of Maitrise Orthopédique's CDN (content delivery network) and avoid having to download large amounts of data several times.
All this gives the user a fluid browsing experience, whatever the network conditions where they are.
On iOS and Android, it's possible to send "silent notifications", which allow the user's terminal to be remotely prompted for code that's in the application, in this application this function is usedWhen a new issue of Maitrise Orthopédique is released, it is downloaded directly to the user's terminal, enabling offline consultation of the content at a later date.
To keep Maitrise-Orthopédique readers informed of the latest news, congresses, etc., push notifications can easily be sent to users' terminals (with their consent, of course).
Normally, each time an application is updated, it is necessary to go through "App Store verification".App Store terms of use, it is permitted to modify "non-native" code without going through this verification again, so the application must not change too much with these modifications.
As the application is a hybrid, around 70% of its code is "web" code, i.e. "non-native" code, which allows modifications to be made without going through the App Store.
Microsoft CodePush" was used at the time to push modifications into production on users' terminals; today, it's part of "Microsoft App Center".
This little app was interesting, and I'd say it confirms the expression "the devil is in the detail". mobile app market, but when you actually use it ... certain features make it a pleasure to use.