Supporting iOS 14 with Admob

Supporting iOS 14 with Admob

Yesterday I spent two long hours tracking down the solution to a __TCC_CRASHING_DUE_TO_PRIVACY_VIOLATION error and I hope this post might save that time for someone else. In my project JReader, I use the admob_flutter package to display advertisements to my users. It...
Hiring for JReader

Hiring for JReader

Heading into 2021, I want to make my app, JReader, bring in some cash to bear its own weight and maybe you want to help out? Frankly put, JReader began as a half-hearted project to see if I could launch and market an app that would potentially make some money. The...
How I report bugs

How I report bugs

My current project is releasing soon (yay!) and everyone is posting bugs. I wish there were fewer bugs reported of course 😂 but it is great to see so many things found before our customers get their hands the product. To effectively fix these bugs it is important our...
How to split a PR

How to split a PR

It might be easier to split a cake but it’s not impossible! I encourage doing as small PRs as possible. Preferably under 200 lines of code. But how is this possible? If you have a big feature or so? It may contain loads of code. That’s completely fine. We don’t need...
Running flutter on AWS Device farm

Running flutter on AWS Device farm

I’m convinced that any time we want to build a large application we need automated testing. If we can’t run our tests automatically, we can’t scale development. The testing time will increase for each feature we add and eventually our testing cycle...
Loading overlay in Flutter

Loading overlay in Flutter

Maybe the easiest way to handle user input during async operations is to simply block the entire UI. Sure, there are friendlier ways but if we don’t block the UI we may need to handle cancels and late-response errors in a much more complicated manner. Simply...
Example of refactoring with proxy pattern

Example of refactoring with proxy pattern

Today I came across a good refactoring example, extracting a cross cutting concern using proxy pattern. First let me explain what I’m trying to achieve here and then dig into the problem and how I solve it. The example code In our app, we have a class to wrap...
Reloading future with flutter FutureBuilder

Reloading future with flutter FutureBuilder

The Flutter FutureBuilder is a great example of Flutters composability with widgets. It allows us to wrap a Future, an async operation, and easily render the three different states, loading, error or result. However, this turned out to be less straightforward than I...