Let us start with a simple use case:
Imagine we have to build a web app where you can enter an address and you get the latitude and longitude for it.

For this app, we want to use the Google Maps Geocoding API. To get the information we need, we have to do a GET API call. Providing the address as well as a key, which is the Google API key:


But how do we get the API key?

First, we need a Google Cloud project. Go to the Google Cloud console and create one. Initially, the project is…

All of the following decisions and thoughts about moving from RxJava to Kotlin coroutines originated from a meeting where one of us said:
RxJava 2 will be deprecated in one week”.

So we discussed what we want to do. In the short-term, but also in the long run. Thoughts like the following came up:

  • Staying at RxJava 2?
    Because it’s stable. There is no need to do something.
  • Bulk updating to RxJava 3?
    Meaning we hopefully only change all imports and hope that there were no behavior changes.
  • A mix of both worlds?
    Staying at RxJava 2 in the short-term but…

I just finished my first review meeting in a Golang learning group at work. Today I want to share a very interesting discussion with you about the bufio.Scanner we had there.

I don’t want to dive deep into the learning group and what we do there. But to get you onboard, let me explain the task we had to solve:
Read text from a file

Sounds simple, right? For me, to be honest, there is only a “single solution” to use to solve the task. Using the ioutil.ReadFile function (note that ioutil is deprecated and moved to os.ReadFile since Go…

As a mobile app developer or app designer, you may know the issue. Over the years, while both teams iterate over the app, you start noticing that the published app looks different than the designs. While the user experience is overall the same, there are mostly smaller differences. A text needs to be centered, an icon should be tinted to the main color, the font in dialogs is not the one you use everywhere else, the padding is not correct, and so on. Just to name a few of them.

We, at ioki, don’t ask why such smaller gaps happen…

Before I show you some code snippets, let me explain my current project, which issues I faced there, and how Goroutines fixed these.

I have developed a web application that makes an HTTP request to the App Store or to the Play Store or both. Depending on the input parameters. The application parses some HTML from the response and prints a few information afterward.

The application is developed pretty straightforward. It parses the input queries (which could be android and/or ios), put this information into two slices, and performs the HTTP requests one after another. …

DigitalOcean, the company behind Hacktoberfest, “asked me” several times about sharing my story. If you are like me and participated in Hacktoberfest, you know what I mean. It starts with an “Registration is now open” and ends with the “Can we get a quick favor?” e-mail.

After they spammed my inbox several times I decided to say: Yes, I will write something! It’s not because I think they should have success with the flood of e-mails they send, but rather, that I like Hacktoberfest and want it to be celebrated in the years to come. …

The coasters I organized for every attendee

On the 29. September at 9:00 AM we started our first remote Hackday.
Christian, my stream lead, and I build a prototype for something we call Issue of the month. I can’t wait until we finalized everything and share it with the world. But… that is another story. Here I just want to share why and how I organized this year’s Hackday. Sharing the challenges I had and my thought during the process.

Before I dig into details I want to say that I never organized a meeting of this size. …

I haven’t coded in Go for a long time. You only have to check out the Golicious publication to notice that I published my last blog in September 2019. Sure, not writing (a blog) doesn’t mean I haven’t coded. But I haven’t coded that much that something was worth to mention.

But anyways. Let’s jump to the topic of this blog.

For reasons, I had the idea to keep track of the “latest published app versions” of a few apps in the Play Store and the App Store. …

I guess we all know how to add a dependency with Gradle, right? I mean, it’s basically a one-liner:

dependencies {

Nothing new for us, right?

But what happens with that single line of code if there is a new version of the dependency available? Maybe the authors implemented a new feature, or better, fixed a bug!

Well, if you are like me or most people I know the following happen: Nothing. Or at least nothing will happen as long as you don’t need that new feature or a bug breaks something for you.

There is nothing wrong…

Have you ever wondered what the exact use case of Base64 is? I mean, I use it to “crypt” some text and paste it to somewhere else (e.g Slack). Just for fun. Not thinking about it further.
On the other hand, I know that images could be encoded in Base64 and displayed in a browser. For instance you could copy the content of this GitHub Gist into your browser address bar and it will display the image.

And well, this is basically the main idea behind Base64. …

Stefan M.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store