Ethiel (FlutterGigs)
@enthusiastDev
Followers
2K
Following
7K
Media
370
Statuses
3K
Flutter/Dart GDE || Software Engineer @AutoNation || Scrum Master || Fullstack Developer || @FlutterTg Organizer @GoogleDevExpert
Québec, Canada
Joined November 2012
Hi! Thrilled to share that I'm officially a #GDE for #Flutter 🎉 🥳 💙. I'm Proud to be the first #GDE in Togo 🇹🇬 (certainly not the last). Glad to join the Experts community and looking forward to contribute and take Flutter to the moon 🚀. @GoogleDevExpert @timsneath @nlycskn
70
56
438
One thing that can quietly break UX in Flutter apps using BLoC is how we deal with rapid repeated events. Search is a good example: the user types quickly, you fire multiple SearchSubmitted events, and suddenly you have several HTTP calls in flight. Responses may arrive out of
1
5
58
State Management Tip One design constraint I’ve found increasingly valuable in Flutter apps is simple: treat your state as something that should be serializable. If your BLoC/Cubit/ViewModel state is pure data, you keep a lot of doors open: - persisting state between sessions
4
5
48
One reason Flutter widget tests become fragile over time isn’t the framework, t’s what the tests choose to rely on. When tests assert widget structure (Rows, Columns, exact layouts), they end up coupled to implementation details. A small UI refactor can break the suite, even
1
7
22
One subtle mistake I still see in many Flutter codebases is repositories that “play it safe” by swallowing errors and returning defaults. An empty list instead of a failure. A null object instead of an exception. A boolean set to false and the app moves on. It keeps the UI
2
10
46
Dependency injection often starts clean… and then slowly turns into something else. A GetIt.I<T>() here, another lookup there, and before you notice, the DI container is being used everywhere as a global service locator. The issue isn’t the tool. It’s the loss of explicitness.
3
8
41
Flutter Tip: Never Store BuildContext Beyond the Frame One subtle rule that saves a lot of pain in Flutter apps: never store BuildContext beyond the current frame. It’s tempting to keep a reference around, pass it into a service, cache it in a controller, store it for later
2
5
45
Flutter Tip: Never Store BuildContext Beyond the Frame One subtle rule that saves a lot of pain in Flutter apps: never store BuildContext beyond the current frame. It’s tempting to keep a reference around, pass it into a service, cache it in a controller, store it for later
2
5
45
Use Result<Failure, Success> to model async operations. A pattern I find increasingly useful in Flutter apps is treating async operations as explicit outcomes, not “things that might work.” Most async flows in an app follow the same shape: you try something, and it either
8
7
48
In a well-structured Flutter app, widgets shouldn’t be the place where business rules are defined. Their role is simple: render what the state or orchestrator intends. The rules themselves can absolutely be exposed to the UI, but they should originate from the state manager, not
0
3
39
Great news #Dart #Flutter Folks! Serverpod 3 is live! A new era for Dart on the backend has begun. This opens an horizon of endless possibilities for Fullstack Dart apps! Let's go 🚀!
Serverpod 3 is live! 🚀 This marks a new era for Dart on the backend. Serverpod 3 brings over 80 new features, including a new web server and a completely reworked authentication module. 📺 Watch the keynote: 👉 https://t.co/28WpqG0QVi 📝 Read the blog post:
1
1
6
Dependency injection in Flutter apps. I’ve noticed something across a lot of Flutter projects, and even in code I wrote years ago. Widgets quietly take on responsibilities they were never meant to handle: creating repositories, instantiating clients, wiring services on the fly…
2
3
44
Something I keep noticing in many #Flutter codebases: raw exceptions travel all the way from the data layer up to the UI. It feels harmless at first, but as the app grows, this pattern quietly creates tight coupling, inconsistent handling, and brittle tests. A more resilient
2
4
55
A lot of Flutter projects still rely on the old layered structure: models/, widgets/, controllers/… It looks clean, but it doesn’t scale. As the codebase grows, a single feature gets scattered across multiple folders, refactors slow down, and onboarding becomes harder than
9
7
79
In many Flutter apps, widgets still access repositories or services directly. It works at first, but as the codebase grows, this pattern quietly breaks your architecture. When the UI layer triggers data fetching on its own, it starts knowing too much: • which repository to call
1
7
52
In many Flutter codebases, inheritance is still used to share UI behavior across screens. It works… until it doesn’t. Base pages, shared mixins, and inherited UI patterns often introduce more problems than they solve: • tight coupling across screens • rigid hierarchies you
4
10
77
Crafting responsive UI in Flutter often feels easy… until your widget ends up inside a modal, a split view, or a container with unexpected constraints. That’s where many layouts start behaving unpredictably, especially if you rely only on MediaQuery. A cleaner, smarter pattern
2
5
56
Just earned my Mid-Level Vue.js Developer Certification, officially endorsed by Vue and Evan You. Another milestone unlocked. This certification validates my skills on Vue 3 and confirms the depth of experience I’ve built across real-world projects. Beyond Flutter, I also excel
1
1
5
🔥 Stop Over-Rebuilding: Use MediaQuery.sizeOf Flutter offers a simple performance win that many developers still overlook: MediaQuery.sizeOf(context). Most widgets use MediaQuery.of(context).size, but that call subscribes to every MediaQueryData change: brightness, padding,
3
4
48
You asked, we answered. Dot Shorthands are here! Get a walkthrough of the biggest updates in Flutter 3.38 and Dart 3.10 → https://t.co/ad4y35mdiS
4
15
161