Location without Google Services

These days you will rarely find an app that doesn’t have some kind of location-based functionality. Things like navigation, geofencing or location tracking are more and more common. It’s all good when you can rely on Google Play Services. Sadly, that’s not always the case. Sometimes the devices that your users are going to use don’t have Play Services installed. Such devices can be manufactured by some weird and unknown company, can have a custom ROM installed on them, or be located in a country where Google is not allowed to operate....

October 5, 2022 · 3 min · Todor Kostov

Lifecycle changes after API 28

Some time ago, I was going through the documentation about the infamous Activity class. All was good and even uneventful until I came across an interesting paragraph stating the following: A question popped up in my head- but why the change in the order? My first idea was to search for any articles on the topic. Sadly, with no result. Then, I decided to go through the source code of the Activity class....

August 27, 2022 · 2 min · Todor Kostov

Flow types

It’s been a while since my last post! Actually, more than 4 years… The Android ecosystem has changed a lot during that time! Some new concepts were introduced, some old programming languages were left behind and we have to make the most out of this situation (as always). So, let’s get down to business! What is a Flow? (briefly) The flow is a “new” concept of doing asynchronous tasks. Flows are built on top of coroutines and I am sure you have heard about them....

June 15, 2022 · 3 min · Todor Kostov

Logging in Android

I am sure that each developer out there have heard the phrase ‘Check the logs’ at least once during his or here career! And checking the logs have saved my ass several times this month. But what exactly a log message is and what are the advantages and disadvantages of logging? Let’s try to find out! What is logging? Logging — the cutting, skidding, on-site processing and loading of trees onto trucks....

January 17, 2018 · 3 min · Todor Kostov

Android tricks - Runtime permissions and the 'Never ask again' option

With Android 6.0 (API 23) users are able to grant app permissions during run time. That new feature made our developer lives a bit more difficult, but gave huge powers to our users. And do you remember that little check box which says ‘Never ask me again’? Yep… this particular one! So, how can we know that this check box had ever been selected by the user? Actually, it’s not that difficult!...

January 12, 2018 · 1 min · Todor Kostov