Bringing everything together.
In the first two parts (part 1 and part 2), we outlined the process we would be following for migrating to Room from our previous ORM, Cupboard, and we identified 4 main phases for doing so. We also explored in detail what Phase 1 and Phase 2 were all about.
In this final part, we will at the last two phases:
Since its creation, the Blinkist app has seen 12 explicit database migrations. Why explicit, you might be…
Preparing the ground and getting our hands dirty.
In this second part, we will look at the first two phases:
Because each entity model came with its own repository, it was fairly easy to split the task between two people: every time one of us finished…
Analysis and planning.
In this series of articles, we will walk you through our process of migrating to Room at Blinkist. Even though we will refer specifically to our previous ORM, we strongly believe that the steps we took, and the processes we followed, are applicable regardless and should be beneficial to anyone considering to do the same thing.
This article was written by two hands, mine and David Lázaro’s. We worked on this project together, and together decided that we wanted to describe the approach we took.
The Android team at Blinkist is currently growing at a rapid pace…
On why default Proguard rules are important
A few days ago, while I was working on introducing AndroidX to the Blinkist app, I stumbled upon an unexpected crash. After a solid amount of hours spent on trying to understand whether it was a regression or a jolly good bug, I realized that it had to do with Proguard, and that the solution was apparently not as well known as one might think.
TL;DR: using default Proguard rules can save you time and pain, especially (but not limited to) when migrating to AndroidX.
At I/O ’18, Google announced AndroidX. Put it…
A small story around how Ripples are somewhat broken on Pie, and how to f̵i̵x̵ temporarily patch them.
Like any other regular day at the Blinkist office, I open the production version of the app, just to check something. As I move through the various screen, I notice something. It’s sudden, only for a fraction of second, but it is there and my brain registers it.
A quick reflection
I recently started working on a completely new codebase for me, one that is almost 6 years old but that has aged very well, luckily. Many early bets have proven to be right and have definitely paid off over time: the wide adoption of MVP, RxJava, Dagger… the whole gang.
The interaction with the backend is also very traditional, with JSON payloads passed back and forth. The tool used to de-serialize JSON into POJOs and vice-versa is Gson, which has been the de facto standard for quite some time now.
I was very familiar with Gson, having…
A quick and easy way to check the third-party licenses for your Android app
Licences are a tricky beast, but more often than not we tend to ignore them even though we really should not. The fact that a third-party library is open-source easily deceives us into thinking that we can do whatever we want with it, because why not? The code is there for everyone to see, we can copy or modify it, and there is no physical limitation that prevents us from doing so. But, as it turns out, licenses are extremely important from a legal perspective.
A closer look at the I/O 2018 announcements
Google I/O 2018 is just behind us, but it brought a lot of news when it comes to in-app purchases, both already available and coming soon. In this article, I will try to summarize all the new announcements (spoiler: there’s a ton of stuff!) and explain what they are and how can you benefit from them.
The Play Billing Library (PBL, in short) was announced in September 2017 and has since started gaining traction, due to its immensely simpler integration process and guarantee of support. …
An addendum to the official documentation
Monetization is one of the most important aspects of distributing your product to the rest of the world. It can make or break a small freelance developer or an established startup.
Android, being so widespread, provides ways for users to purchase products from within your app: this is referred to as In-app Billing. Through this set of APIs, developers can offer two types of products:
So Long, and Thanks for All the Fish!
A month ago we celebrated methodscount.com 3 years anniversary, and it seems almost appropriate to communicate that the service will be taken down in the coming weeks.
This post was written collaboratively by me and my dear friend Nicola, who I thank again for having helped me creating this tool.
For those of you that don’t know us or have never used it, MethodsCount is (was?) a service that allows to compute the number of methods of a given library for Android. …
Engineering Manager + Android Engineer, GDE