# iiro.dev > Dart and Flutter tutorials, articles, tips and tricks. Sometimes other stuff too. Hey, you! Whoever you might be, you probably like markdown files. So here's the entire site as markdown files. ## Articles - [Celebrating my one-year layoff anniversary](https://iiro.dev/one-year-layoff-anniversary.md): How a bug-infested murder apartment gave me the freedom to recover from burnout. - [Quickie: AdaptiveImageProvider](https://iiro.dev/adaptive-images.md): How to display images from multiple different sources easily and cleanly in Flutter. - [How people calling markNeedsBuild "like a good luck charm" gave us setState](https://iiro.dev/set-state.md): The embarrassing story of what I thought setState was, and what it totally wasn't. - [Parsing and editing HTML in Dart - the right way (TM)](https://iiro.dev/parsing-html-in-dart.md): Parsing HTML in Dart, the right, easy, and foolproof way. No messy regular expressions required. - [Controlling time in Dart unit tests, the better way](https://iiro.dev/controlling-time-with-package-clock.md): How to control DateTime.now() in Dart unit tests - the better way. - [When in doubt, just use Provider](https://iiro.dev/just-use-provider.md): Some pointers about what Flutter state management library to choose in the age of gazillion state management libraries. - [Restricting system textScaleFactor, when you have to](https://iiro.dev/restricting-system-text-scale-factor.md): Learn how to restrict Flutter's system textScaleFactor when product or design constraints require it. - [Running arbitrary strings as Dart code](https://iiro.dev/how-to-eval-in-dart.md): Dart does not have eval(), but there are limited ways to run arbitrary code strings when you absolutely need to. - [From mobile to web in less than 4 beers](https://iiro.dev/reflectly-mobile-to-web-with-flutter.md): A short story about Reflectly joining the Flutter for Web early access preview and planning to bring a Flutter app to the web. - [Splitting widgets to methods is an antipattern](https://iiro.dev/splitting-widgets-to-methods-performance-antipattern.md): Learn why splitting Flutter build methods into smaller widgets is usually better than splitting them into helper methods. - [Why does using Image.network crash widget tests?](https://iiro.dev/image-network-widget-tests.md): Learn why Image.network can break Flutter widget tests and how to avoid the crash with a simple testing setup. - [Resolving package version conflicts in Dart](https://iiro.dev/resolving-dart-package-version-conflicts.md): Learn how Dart pub resolves package version conflicts and how to work with dependency constraints when packages disagree. - [Writing widget tests for navigation events](https://iiro.dev/writing-widget-tests-for-navigation-events.md): Learn how to test push and pop navigation events in Flutter with WidgetTester APIs and mockito. - [Putting build methods on a diet](https://iiro.dev/putting-build-methods-on-a-diet.md): Learn practical ways to keep Flutter build methods readable by separating layout, business logic, and widget structure. - [Beginner's guide to staggered animations](https://iiro.dev/orchestrating-multiple-animations-into-visual-enter-animation.md): Learn how Tween, Interval curves, and AnimationController work together when orchestrating staggered Flutter animations. - [From design to Flutter #2 - Artist details page](https://iiro.dev/from-design-to-flutter-artist-details-page.md): Learn how to use Flutter BackdropFilters, Placeholder widgets, and layered layout techniques to build an artist details page. - [Separating build environments in Flutter apps](https://iiro.dev/separating-build-environments.md): Learn how to separate Flutter build environments so development, testing, and production can use different app configurations. - [JSON and serialization in Flutter](https://iiro.dev/json-and-serialization.md): An archived guide to JSON serialization in Flutter, preserved for historical context after becoming part of the official Flutter docs. - [Implementing master-detail layouts in Flutter](https://iiro.dev/implementing-adaptive-master-detail-layouts.md): Learn how to adapt a Flutter app for larger screens by implementing a master-detail layout for tablets. - [Validating forms in Flutter](https://iiro.dev/validating-forms-in-flutter.md): Learn how Flutter form validation works, with a quick comparison to a similar Android implementation. - [Bringing the PageTransformer to Flutter](https://iiro.dev/bringing-the-pagetransformer-from-android-to-flutter.md): Build PageView parallax effects in Flutter and reuse ideas from existing Android page transition examples. - [Considering Flutter](https://iiro.dev/considering-flutter.md): A short story about getting the green light to use Flutter on customer projects back when Flutter was still in alpha. - [From design to Flutter #1 - Movie Details Page](https://iiro.dev/from-design-to-flutter-movie-details-page.md): Learn how to build a Flutter movie details UI with an arc background, rounded corners, layered widgets, and organized layout code. - [Clipping widgets with bezier curves in Flutter](https://iiro.dev/clipping-widgets-with-bezier-curves-in-flutter.md): Learn how to implement custom clippers in Flutter and use Bezier curves to cut widgets into custom shapes.