Name | Description |
---|---|
Ionic | The Ionic Framework is an open-source UI toolkit for building performant, high-quality mobile and desktop apps using web technologies — HTML, CSS, and JavaScript — with integrations for popular frameworks like Angular, React, and Vue. |
Angular | Angular is a platform and framework for building single-page client applications using HTML and TypeScript. |
Before starting the work of upgrading the app, the original app was tested thoroughly to find any bugs or issues in the app and to find any potential components which can be updated. Additional research was carried out to study the products offered by competitors to understand the areas where the original app could be improved. After receiving the source code for the app, the structure of the app was studied in further detail to understand the functioning of the app and to find any other potential bugs or issues.
The first step after studying and analyzing the app was to upgrade the codebase to Ionic 4.x and Angular 7.x. This upgrade alone massively improved the performance of the app. Even though it is hard to quantify the performance improvement in terms of numbers, initial testing showed that the app-load performance had improved drastically. The load time for the old version was approximately 5.54 seconds whereas the load time for the new app was 1.42 seconds (average of 5 runs). This translates to a 75% improvement in the initial load time for the app. Other improvements from the new version of Ionic were also reflected in the app which meant that the app ran at 60 FPS at all times and provided a smoother experience for the users.
The original app used the in-app browser to display information from the company's website. This saves a lot of time by making it easier to make changes to the information or adding new content. However, when a user is not connected to the internet, the in-app browser is unable to load the content and display it. The default browser-provided error page was unappealing and gave away the fact that a web page was being displayed to the user.
To solve this issue, custom error pages were added to the in-app browser which is displayed to the user when they're not connected to the internet or if a page fails to load.
Updates to the app were primarily focused on improving the user interface. Some examples of this include the sidebar which contained links for navigation. In the original version of the app, the sidebar had links arranged in the form of bubbles which made it look cluttered. This was updated to a list of buttons that had a clearly defined tap area and looked neater.
Another example of an improved user experience was the login page. Clearly defined form validation was added to the login page to make the user's login flow smoother and the error messages were updated to provide more accurate information to the user.