• Restricting system textScaleFactor - when you have to

    How to restrict the system textScaleFactor and keep both your users and designers happy. Also a drinking game: every time it says "textScaleFactor", take one shot.

  • How to "eval()" in Dart - Running arbitrary strings as Dart code

    Javascript has eval() for running a string as code. Although you most likely should never use it, sometimes you just might need to. Dart does not have eval(), but what do you do when you absolutely need it?

  • Reflectly — From mobile to web in less than 4 beers, with Flutter for Web

    We at Reflectly were part of the Flutter for Web early access preview. Although it's very early, it looks super promising. This is a short story about our plans to expand to web and how we're super excited to learn HTML: How To Maintain Less code with Flutter for Web.

  • Splitting widgets to methods is a performance antipattern

    Almost 6 months ago, I advised you to split long build methods into multiple smaller methods. And it turns out I was wrong. You should be splitting your widgets into smaller widgets instead - and there's a good reason why.

  • Testing tidbit #2 - Why does using Image.network crash widget tests?

    Widget tests are fun. At least as long as you don't pump any Image.network widgets. But what if I told you there's a simple way to solve those crashes and continue having that widget testing fun? And no, I'm not as cool as Morpheus is, but I did take some Taekwon-Do lessons back in the day.

  • Resolving Dart package version conflicts, faster than ever

    Ever had issues with conflicting dependency versions? If not, at some point you're pretty much guaranteed to. You could solve these issues manually. But I bet you have more important things to do. Pub's version constraint solver is much faster than you - so let it do the dirty work instead.

  • Testing tidbit - Writing widget tests for navigation events

    Find out how to test push and pop events by using the WidgetTester APIs and mockito. Learn how to tap things. Be bummed out because awaiting Futures from the framework doesn't work in tests. Also, learn how to say "navigate to details page" in Finnish.

  • Putting build methods on a diet - tips and tricks for cleaner Flutter UI code

    Why does Flutter layout code look so ugly? Deeply nesting brackets, long build methods and business logic and UI mixed up together... UGH! There must be something deeply wrong with Flutter's design. Or maybe it's all our fault instead?

  • Orchestrating multiple animations and creating a visual enter animation in Flutter

    Have you ever wondered what's a Tween? Or what on earth is an interval curve? How about playing multiple animations at different times or organizing animation code so that everything is not a big mess? Well, you can stop wondering now.

  • From design to Flutter #2 - Artist details page

    Learn how to blur some stuff behind any widget with BackdropFilters, along with some useful widgets, such as the Placeholder widget. But most importantly, learn how you'll never be as good in playing the bass guitar as some 17-year-old boy back in the 1960s.

  • Separating build environments in Flutter apps

    It's all fun and games until you can't just test everything in production and call it a day. Why? If it's a production app, you might break something. Better learn how to do environment splits before stuff gets real and your Friday evening production release is ruined.

  • JSON and serialization in Flutter

    Don't read this one. Or at least don't use it as an up to date source for working with JSON in Flutter. This article became part of the official documentation for Flutter, and so this original one is outdated. It's only preserved here for historical ego reasons.

  • Implementing adaptive master-detail layouts in Flutter

    Imagine how many users you lose if you only support mobile screen sizes! Well, in reality, it's probably not that much. But if you do have an existing Flutter app with some tablet users, it certainly doesn't hurt to adapt to larger screens than just your old smartphone from that time when using enums in Android development was considered a bad practice.

  • Validating forms in Flutter

    Discover how easy and fun form validation in Flutter actually is. Also see what would the Android equivalent be like - not because it's really needed or anything, but only to have some low effort filler content in the article. Just like this summary is.

  • Bringing the PageTransformer from Android to Flutter

    PageView parallax effects are fun little eye candy that can be used for onboarding screens. Here's a sample on how to do those things in Flutter. The best part is that there's a lot of existing Android page transition examples and tutorials that can be applied with this page transformer.

  • Considering Flutter

    This is a short story about how I got the green light to use Flutter on customer projects really early. Back then, Flutter was still in alpha and only few people even knew what it was. Not to mention actually using it in production. Needless to say, there was quite a bit of skepticism in the air.

  • From design to Flutter #1 - Movie Details Page

    Applying the knowledge from the previous post, now we learn how to create an entire movie details UI which has an interesting arc background effect. We also learn how to create rounded corners, stack widgets on top of each other and organize our code neatly.

  • Clipping widgets with bezier curves in Flutter

    An in-depth look on how to implement custom clippers in Flutter and cut widgets with them. Also an explanation on bezier curves, which I knew nothing about before writing the article. This was the very first article on flutter.rocks. Fun fact: I actually didn't sleep after publishing it because I was afraid of what the reception was going to be.