Blog
Notes on Flutter, Dart, iOS and mobile CI, from the work.
macOS CI on a budget
Using the Mac you already work on as a CI machine for iOS builds, with GitHub Actions and a virtualised macOS.
Delayed code execution in Flutter
Why calling notifyListeners from initState breaks the build, and when to use a microtask, a Future or a post-frame callback instead.
Installing a self-hosted GitHub Actions runner on a Synology NAS
Running a self-hosted GitHub Actions runner in Docker on a Synology NAS, step by step, with the security trade-off stated up front.
Mobile app user testing on a budget: a practical guide
User testing without a research budget: recruiting testers, writing a test plan they can follow alone, and short follow-up interviews.
Dart extensions, generating
copyWithmethodsHow Dart 2.7’s extension methods made it possible to generate
copyWithmethods in a build step: the idea behind copy_with_extension.A native iOS developer’s perspective on React Native vs Flutter (part 3)
React Native and Flutter compared on language, development speed and more, from one developer’s experience with both.
A native iOS developer’s perspective on React Native vs Flutter (part 2)
Building a small production app in Flutter: first impressions of the framework, Dart and its tooling.
A native iOS developer’s perspective on React Native vs Flutter (part 1)
Why a native iOS developer went looking at cross-platform frameworks, and what building a React Native app was like.