Flutter & Dart
Flutter & Dart engineering
How Maher Jaafar, software engineer in Västerås, Sweden, builds Flutter apps for iOS, Android and embedded screens: architecture, performance and memory.
I have been building with Flutter since its beta days in 2018: consumer apps on iOS and Android, client products as a consultant, and Flutter running on embedded touch screens. Today Flutter and Dart are the tools I know most deeply, and the ones I've spoken about at FlutterCon Europe and DevFest Stockholm.
What I use Flutter for
- Mobile apps for iOS and Android from one codebase, with native performance and platform-specific polish where it matters.
- Embedded interfaces on Linux-based devices and touch screens, where startup time, memory and reliability matter more than on a phone.
- Internal tools and dashboards for desktop and web, reusing the same widgets and business logic.
How I build Flutter apps
Architecture first, framework second. I separate UI, state, domain logic and data so the codebase stays easy to change. Whether a team uses BLoC, Riverpod or something else matters less than using it consistently.
Logic lives outside widgets. Business rules sit in plain Dart classes that can be tested without a device. Widgets describe the interface.
Performance is measured, not guessed. I profile on real target devices with Flutter DevTools: frame timing, rebuilds and memory. My FlutterCon Europe talk is entirely about the memory side of this: garbage collection, leaks and isolates.
Polish is part of the job. Loading and error states, accessible touch targets, overlays and animations that feel intentional. My DevFest Stockholm talk covers one piece of that: building floating UI with Flutter's overlay system.
Releases are automated. Static analysis, tests and builds run on every change, and releases go out in stages.
Flutter topics I go deep on
- Memory management, garbage collection and DevTools heap analysis
- Rendering performance and unnecessary rebuilds
- Overlays, custom UI components and design systems
- Isolates and background work
- Platform channels and integration with native and device APIs
- Flutter on embedded Linux and Raspberry Pi
- Testing strategy: unit, widget and integration tests
Community
I'm active in the Flutter community: I co-founded and organise Flutter Tunisia, organise Flutter Västerås, and speak at Flutter and developer conferences in Europe.