The Tech Stack behind our products is what makes us successful and we want to share this with you. We will kick-off with Android, but be prepared for more articles to follow.
At eGym, we always check if latest technology trends fit into our development stack and if they are already mature enough to be used in our production environment. To give developers the time to play and test with these technologies, we have “innovation weeks” – or how we call them “10% weeks” – which take place a couple of times a year (every 10th week). During our innovation weeks, developers have the time to work on their own projects.
Starting with Android, used for our Fitness App, we recently spent a lot of time redesigning the whole application. As well we move fast in integrating as many fitness trackers as possible. The best example is Fitbit, which we just integrated two weeks ago.
To also improve code quality and user experience, we are currently in the middle of moving to a more test-friendly Model View Presenter (MVP) architecture and prepare our App for the upcoming internationalization.
In the following graph you can find the libraries used by our Android development team. A rating indicates to what extent we are using it within the application. “Five” therefore indicates that we are using a library extensively.
To evaluate if the technology we are using, is already widely used by other developers, we looked at data for the Top 500 applications provided by AppBrain.
From the graph above, we can tell that we use a pretty mature development stack which is broadly used within the developer community. We also see that Firebase has not yet become widely accepted and used. This is probably the case, because most apps use an already defined and implemented process for tracking application data. A possible problem for Firebase adaption could be the fact that moving data to a different platform involves a lot of migration work to be done. As well we can see that reactive programming is already more mature than we expected and we can leverage the benefits it brings much more within the application.
Usage level mapping:
When it comes to testing, we are currently focusing on three main tools:
- JUnit for testing logical parts and presenters within the application.
- Espresso for end-to-end testing.
- Nimbledroid for automated performance testing in the QA process.
As well we use Hugo when we experience performance bottlenecks and need to figure out the reasons for it quickly. To ensure our application does not use unnecessary memory we keep an eye on memory leaks by using LeakCanary.
Spoiler Alert: In the next article we will dive deeper into our favorite Android libraries.