TL;DR: I built a tool that lets you inspect app-state in real-time and allows you to do even more in the future. Visit for instructions on how to use it.

On debugging

Much more than just a layout builder

This is a widget builder for Flutter. At first, it might look like just another layout builder, but this is going to be so much more.

Check out the landing page I made for this:

Core features

These are the features I feel are the core of the whole project.

Keep in mind, most of these features are not implemented yet.

Code — Visual seamless transition

There is not going to be any copy paste. You can work with the drag and drop interface while simultaneously modifying the code.

With code to try out at home

Have you ever thought about how cool it would be if you could just make this quick change in your app without opening your laptop? Or you simply thought about the idea of writing Flutter apps on your phone.

I did some experimenting and I might have something for you!

Writing Flutter Apps on the Phone

If you want to try it out, head over to this Github repository which has a detailed setup guide.

This article will take a look at the hows and whys.

How does it work?

It’s probably simpler than you thought.

The compilation is still being done by a PC.

What is happening is that…

Flutter desktop for real-world applications and to accelerate mobile development. A project made by Simon Lightfoot and Norbert Kozsir.

At its core, Flutter is a standalone, binary executable; making it a game-changer not only on mobile, but on desktop as well.

Writing once and deploying natively on Android, iOS, Windows, Mac and Linux and additionally sharing all the business logic to the web (using AngularDart) is a big deal.

Let’s explore this idea!

Native Desktop client to accelerate mobile development

But before taking a look at actual native desktop apps, let’s see what running Flutter on desktop can do for people developing for mobile.

Startup time, original:

The first thing that happens before anything productive can be done is starting the android emulator and running Gradle.

In the following…

The Figma project for this app. Scroll down for more gifs.

First off.

It has been a long time since I last posted here on medium. Interestingly my follower count kept growing — so thanks for that! :)

When I started posting on Medium back in February. I didn’t really know what I was doing (I still don’t).

My first post “Flutter: How I built a simple app in under an hour from scratch. And how you can do it too.” got featured on AndroidProDev and got pretty big.

I wrote it because I saw a YouTube video about Flutter and tried it out. I was so amazed, that I thought “Why not…

A story about how heroes and villains work.

Villains combined with a hero.

Villains allow you to add page transition like the one above with just a few lines of code.

The package is available here. You can find how to use villains in the projects README. This post is more focused on explaining heroes and villains and the thought process behind all of it.

One of the most awesome parts of flutter is having such a nice and clean API for everything. I just love the way you can use Heroes. Two simple lines of code, and it just works. …

Ever wondered how Flutter takes those widgets and actually converts them to pixels on the screen?

Photo by Shane Aldendorff on Unsplash

Ever wondered how Flutter takes those widgets and actually converts them to pixels on the screen? No?

You should!

Understanding how an underlying technology works makes the difference between a good developer and a great one.

You can create custom layouts and special effects more easily when you know what works and what doesn’t; and knowing this will save you a few long nights at the keyboard.

The goal of this post is to introduce you to the world beyond the surface of flutter. We will take a look at different aspects of flutter and understand how it actually works.

Let’s get started

Changing the theme at runtime and persisting those changes across restarts? No problem!

TLDR: I made a package which takes care of all of this, if you are interested on how it’s done keep reading.

How to do it.

Usually your entry point to the app looks like this:

If you want to change the theme of your app at compile time you can modify ThemeData. There is an attribute called Brightness which changes a bunch of colors from light to dark if set to Brightness.dark .

We want it to dynamically change that variable during runtime. We therefore introduce state to the top level widget.

Now, we have to access this state. Either by passing down a callback, writing a custom InheritedWidget or using the BuildContext to walk up the tree.

Passing down a callback is…

Taking the bookshelf app from demo to a real app.

The Idea

“Collecting books as you read them, virtually”

It isn’t rare that people don’t own the physical book but instead read them on an e-reader, listen to them as an audio books or simply lend them a from friend. The books have been read but the shelf stays empty. There is no sense of accomplishment and more importantly no collection of books to show your grandchildren.

There are two aspects to the app: collecting books and discovering new books.

“Binders and boxes on shelves in a large archive” by Samuel Zeller on Unsplash

In this post I’m am going to discuss a good way to store/ cache/ and load data. Most of today’s apps rely on a server to display information. In combination with a cache, a database and error handling, this can become pretty messy. Luckily there is a design pattern which makes accessing data very convenient and easy.

Without a pattern:


Student, Android Developer, Machine-Learning enthusiast and in love with flutter.

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