This is the story about how I’ve structured the Flutter application that it can really keep up with customer demands on change.

Photo by Ross Findon on Unsplash

Many developers react allergically when after they implemented something and everything is working how it should, the client is changing mind and suggest the CHANGE.

I think we all know that feeling, for sure I do. I was in that position so many times in a short period of time that the only thing that was protecting my mental health was a couple of good practice I was doing. …

Photo by Kara Eads on Unsplash (a little bit changed)

So this is my recipe for handling Charles Proxy in my project.

  • Dio
  • Charles Proxy
  • — dart-define

So first of all small description of Ingredients.

Dio is a great Http client for Dart which I think right now is an industry-standard.

Charles Proxy is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet.

If you don’t know — dart-define there is a great article with step by step instruction on how to properly configure it to work with…

Photo by Ryoji Iwata on Unsplash

I have an Android 🤖 dev background. So when I started to write in Flutter there were, of course, things that I could do in Kotlin but there were not possible in Dart. I’ve started to write my own extension that could bring a little bit of that back, but also others that help me in day to day coding.

This will be a couple of them. Let me know what do you think and maybe if you have your own and would like to share them in comments that would be great 😃


So in Kotlin you write let/apply/also/run…

Photo by Joyce McCown on Unsplash

In this article, I would like to focus on the topic of how to test code with coroutines. Let’s start with some example of ViewModel.

When I first looked at Dart with Flutter some years ago I must say I was very skeptic about it. There were so many things that I loved in new languages like Kotlin that Dart didn’t have. The nesting Widgets to the point that code looked like pyramids from Egipt was just… but right now I think it is on a better way than ever to become one of my favorite. Let me explain why.

original photo by Nathan Dumlao


This two dot operator “..” can save you creating a builder or just write more readable code. It allows you to make a sequence of…

Photo by Andrew Neel on Unsplash

In this article, I will describe how I handled navigation in the Flutter app with Redux. You could of course ask why I’ve done this and the answer would be mainly because of easier debugging and logging to analytics than in normal approach. However, this also enables more complicated navigation cases like “navigate to this position only if…”, and it would be separated from other logic layers.

What you should know to get the most from this article?
For sure know basics about Flutter and be familiar with Redux (or MVI architecture).

So let’s start!

Photo by rawpixel on Unsplash

In this article, I will cover how we connected to our Android project, shared (between iOS and Android) library written in C++. If you don’t know anything about Android NDK (native development kit) or C++, you can still learn from this article the overall method. That could help your team write logic once and share it.
So let’s begin from the library file structure. In the image below we can see that we have three subfolders in our library.

Photo by Virgil Cayasa on Unsplash

A couple of assumptions for this article:

  1. To fully understand this article reader should have at least basic knowledge about Dagger 2 library.
  2. To simplify things, later on, I will refer to Dagger 2 library just as Dagger.
  3. I used here as example MVP architecture but any other could be used with either of those libraries.


The best place to start in my opinion is a module, as in that component we provide definitions of what we add to the dependency graph and how we should create and keep them.

The module in Dagger uses mainly annotations to declare its…

Marcin Oziemski

Senior Android and Flutter Developer. Working at Netguru.

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