Mouse Genome Informatics (MGI) has just released the redesign of their mobile app, Genome Compass, on the Android and iOS app stores. Genome Compass, redesigned and developed by Clearly Innovative, is a handy tool for people conducting biomedical research or enthusiasts. It allows people the chance to stay connected and hear first hand about new discoveries concerning genes, disease associations, and phenotypes. Users will search for the items that they are interested in keeping up with, save them in their Favorites list, and receive Updates for them whenever a new discovery has been made.
When MGI handed this project to us they wanted a complete remake of the app they had currently developed. Because of our expertise in Angular and Ionic, naturally, we elected to use the Ionic Framework. The app has a beautiful layout with buttery smooth animations.
Genome Compass works with two main data types; Updates and Favorites. Whenever the app is alive, either in the foreground or the background of the Operating System, the app needs to keep track of and manipulate a list of each of these data types. In order to do this efficiently and synchronously, we utilized the state management framework MobX.
Implementing MobX allowed us to work more effectively around our data by separating it and all logic associated with it from the Component code. MobX is also designed with observables, making it soothingly compatible with Angular’s template subscription features, and allowing components such as the favorites count to listen for data changes and respond accordingly. Using Angulars ChangeDetectionStrategy with this feature offers an impressive performance boost.
The most appealing feature this app offers is the ability to receive push notifications whenever a new Update is found for one of your Favorites. If the app is not currently active, the user will receive a notification on their phone which will open the app for them. If somehow they are using the app when the notification hits, they are prompted with an alert. The powerhouse for the push notifications in this app is Firebase Cloud Messaging.