Last month three Android engineers from Freeletics went to the first in a long time in-person conference - droidcon Berlin 2021. The conference was packed with interesting topics, this blog post is just a snapshot of topics we were most interested in. Full content of the conference can be found here, all the talks have been recorded and can be…
Freeletics
https://freeletics.engineering/ · 10 posts · history since 2019 · active
16 Nov 2021
20 Apr 2021
It has been already more than one month since I left my last job at Freeletics. I am still enjoying the last days of my days off, before I start my new job very soon. But I have been planning since then to write about my interesting experience and learnings at this unique company, and finally the time has come.…
26 Jan 2021
Background In 2020, Freeletics had huge surge in traffic as users started to look for best digital health app to keep them fit during the COVID-19 lockdown. This initially led to performance degradation of our servers, about which we were alerted from our monitoring services and user’s complain. We were in firefighting mode for almost 3 weeks, and after repetitive…
22 Jan 2021
Finding the right abstraction is hard. In this blog post, I would like to share a technique that works well for us (my android teammates and me) when dealing with String resources on android. An abstraction layer for Strings? Why do we even need an abstraction to simply work with Strings on Android? Probably you don’t if your app is…
29 Jun 2020
Our main Freeletics app like many other modern mobile applications often uses client-server communications. It means that the data should be loaded from the server before being shown to the user. Therefore, the most common pattern while building features is: show progress indicator while we perform the network request to fetch some data from the backend (Loading state); after receiving…
22 Jun 2020
As iOS developers, we often need to implement tracking in our applications. There are many third-party frameworks that would allow us to implement tracking systems in our projects. But in this article, we are going to talk about how we have implemented our custom tracking infrastructure at Freeletics with the help of CoreData, without using any third party framework. Our…
30 Oct 2019
A little background Our two flagship Android apps - Bodyweight and Nutrition serve two very different needs but usually to the same target audience. An essential feature missing in the user experience so far was to share the login across the two apps so that users who were signed into one of these apps could be automatically signed into the…
18 Oct 2019
Intro With the release of Github Actions, we experimented with it to replace our current Continuous Integration (CI) process. This post describes the steps we took in order to do so. Our CI includes of 3 checks: specs rubocop check linter check for swagger docs These checks run every time a developer pushes a commit or creates a Pull Requests…
9 Sept 2019
Like many developers in the realm of Software Engineering, we are using git as our version control system. The most typical git workflow looks like the following: Create a new branch for implementing a new feature Commit new changes and push them to the remote branch Create a pull request and let your colleagues (or contributors in case of open…
3 Jun 2019
Hundredths of a second typically separate Gold medalists and Silver medalists in an Olympic track race, and as such, precise timing measurements are critical. Even if you’re not training for the next Olympic Games, you probably want an accurate estimate of distance and time when you go for a run. At Freeletics, we strive to make our app as precise…