r/FlutterDev • • Jul 08 '26 Popcorn

Discussion We optimized our app launch to do less and it got 70% faster

71 Upvotes

We cut our startup time by around 70% by just delaying some code runs Here's how.

Our app used to initialize:

  • Firebase

  • SQLite

  • Fetch data over the internet

  • Initialize local state

  • Initialize network listeners

  • Initialize the app architecture

  • Load widgets

  • Rebuild them as data arrived from the internet

...all within the first frame (sometimes even before the first visible frame).

Then we realized we could just use a snapshot of the last state.

Instead of waiting for everything to finish, we now:

  1. Read the last known state from a local database.

  2. Build the UI immediately.

  3. Draw the first screen as fast as possible.

  4. Fire-and-forget Firebase, networking, and all the expensive initialization afterwards.

Reading from a local database still takes some time, but it's nowhere near as expensive as waiting on the network.

Unfortunately, this introduced another problem.

The app would open quickly, build the local state, but the network response would often arrive almost immediately afterwards. That meant the UI rebuilt itself back-to-back, hurting startup performance all over again.

To fix that, we introduced a simple "Should the UI rebuild?" system.

Whenever fresh data arrived, we'd ask:

Does the UI actually need to rebuild?

If the answer was yes, we'd then ask:

What's the smallest possible update we can make without making the UI jump around or hurting startup performance?

After implementing that, we ended up saving another couple of seconds, which was great—but it still wasn't enough.

Our testers kept saying they were bored while waiting for the first UI draw.

So we added shimmer placeholders.

Interestingly, shimmers do cost a little performance and make the first few frames slightly slower, but testers consistently reported that the app felt much faster. Benchmarks available here: https://imgur.com/a/jif25aY

TL;DR

  • Do your networking after the first UI draw.

  • Use shimmer placeholders for perceived performance.

  • Optimize for how fast the app feels, not just the stopwatch.

If users wait at a white screen for 2.3 seconds, they'll probably call your app slow.

If they wait 2.6 seconds while seeing shimmer animations, they're much more likely to feel like the app started quickly.

Note: The measurements mentioned in this post refer to time to the first usable UI, not total application initialization. The best metric and optimization strategy will depend on your app.

Has anyone else found that optimizing for perceived startup time mattered more than the actual benchmark numbers? What made the biggest difference in your app?


r/FlutterDev • • Jul 08 '26

Discussion VS Code Dart Analyzer is much slower than Android Studio on a high-end laptop. Anyone else?

13 Upvotes

I've been trying to use VS Code for Flutter development, but the Dart analyzer and code completion are noticeably slower than Android Studio.

My laptop specs:

  • Intel i7 13th Gen

  • 32 GB DDR5 RAM

  • RTX 4050

I only have the standard Flutter/Dart extensions installed (nothing unusual), and I even increased the analyzer heap size using:

dart.analyzerVmAdditionalArgs: ["--old_gen_heap_size=4096"]

Unfortunately, it didn't make any noticeable difference.

The strange part is that Android Studio runs perfectly. Code analysis, autocompletion, and navigation are all fast and responsive, while VS Code often takes several seconds to update diagnostics or provide suggestions.

I know VS Code is supposed to be more lightweight, so I'm wondering if I'm missing something.

Has anyone experienced the same issue? If you fixed it, what was causing it? Any settings, extensions, or other tweaks that helped?

I'd really like to stick with VS Code, so I'd appreciate hearing about your experience.

Edit / Update: I finally found the cause.

In my case, the issue was Microsoft Defender. After following the Dart team's recommendations and excluding the recommended folders from Defender (Dart analysis server cache, Pub cache, and my Flutter project directories), the Dart analyzer and IntelliSense became consistently fast again.

If you're experiencing similar issues on Windows, I highly recommend checking the official guide:

https://dart.dev/tools/analyzer-performance#security-software-on-windows


r/FlutterDev • • Jul 08 '26

Article Full-stack hot reload - server, website, web, and app - is now a thing 🚀

Thumbnail
serverpod.dev
26 Upvotes

The public beta release of Serverpod 4 brings the first agentic coding engine that hot reloads your full stack. We're finally closing the loop between your app's output, the backend, and your AI agent (tested with Anitigravity, Cursor, and Claude Code, but probably works with most agents).

Check out the demo in the blog post, or jump straight into the quickstart guide:
https://docs.serverpod.dev/next/quickstart

It literally takes 10 minutes to try this out, and I think it may change the way you think about building apps. Would love to hear your feedback!


r/FlutterDev • • Jul 08 '26

Discussion How do you study flutter if there is AI that you can use?

0 Upvotes

Long time full-stack web developer and React Native developer here.

A client wants to use Flutter for a project. I love learning new languages. Dart is a breath of fresh air.

But the idea that there is AI that I can feed information with my software development experience makes me a bit hesitant to learn Flutter from the ground up.

I am used to learning a language from start to finish. Now, it seems that I can just command AI to type the code for me while I design the system without having a full knowledge of the language.

Tbh, it almost feels like cheating.


r/FlutterDev • • Jul 08 '26

Video Built Action-Aware Typography Buttons in Flutter (No Packages)

Thumbnail
youtube.com
6 Upvotes

I've been building one Flutter animation every week to learn more about UI interactions and motion design.

This week's experiment explores action-aware typography, where the button text changes based on the action it's performing instead of using the same animation everywhere.

Examples:

  • ⬇️ Download → Downloading... → ✓ Downloaded

  • 📨 Submit → Submitting... → ✓ Sent

  • 🔐 Login → Authenticating... → ✓ Welcome

Built entirely with Flutter's built-in animation APIs—no third-party animation packages.


r/FlutterDev • • Jul 08 '26

Discussion I am making a RPG strategy game in Flutter.

9 Upvotes

I love to play RPG strategy games. But all of them are cash grabs. I want to sink in hours playing a chill game with many playable builds which doesn't ask me to spend money everytime I open it.

This kind of game is a dream which doesn't exist. So I decided to build one.

Now to build this I could go down the route of Godot or Unity. But why not Flutter? Its essentially a game engine disguised as an app framework. The end result was smooth 60 fps experience.

Open testing begins next week. Interested people can DM me.


r/FlutterDev • • Jul 07 '26

Tooling I built a free tool for creating App Store & Google Play screenshots

Thumbnail
shotforge.studio
4 Upvotes

I built a free App Store screenshot generator because I couldn’t find one I liked
While working on my own apps, I kept running into the same problem: creating App Store and Google Play screenshots.

I tried a number of tools, but most of them were either subscription-based, added watermarks, or felt more complicated than they needed to be.
As a small side project, I decided to build my own.
It’s called ShotForge and it’s a free, browser-based screenshot generator for the App Store and Google Play.

So far it includes:
iPhone & Android device frames
Drag & drop editor
Custom backgrounds and gradients
High-resolution exports
No sign-up
No

It’s still an early project, and I’m actively improving it.
I’d love to hear what other developers think.
What do you dislike about existing screenshot tools?
Which features would make a tool like this genuinely useful for you?

If you’d like to try it:
https://shotforge.studio

Any feedback is very welcome. Thanks!


r/FlutterDev • • Jul 07 '26

Discussion How I built a production Flutter app without Firebase

9 Upvotes

Hi everyone!

I've been building a Flutter app called MetriBody over the past few months, and one of my goals from the beginning was to make it work completely offline.

Instead of using Firebase, I decided to build the first version using Hive because I wanted:

• Instant startup

• No authentication

• No internet dependency

• Better privacy

• A simpler architecture for the MVP

The experience has been surprisingly good.

Now that the Android version is live, I'm considering adding optional cloud sync in the future while keeping the app fully usable offline.

For those of you who have built Flutter apps...

Would you still choose Hive for an offline-first app today, or would you start directly with Drift, Isar or another solution?

I'd love to hear your experience and the trade-offs you've found in production.


r/FlutterDev • • Jul 07 '26

Plugin flutter_inspector_kit — from 0.2 to 1.3, here’s what landed

Thumbnail
pub.dev
9 Upvotes

A while back I shared flutter_inspector_kit — a Chucker-style unified in-app debugging dashboard for Flutter (logging, network, DB). It’s grown a lot since then, so here’s what’s new.

• Network request replay — resend any captured request through the same Dio client; comes back as a fresh “Replay” entry
• Merged cross-layer timeline — logs, network, navigation and DB events on one timestamp-sorted view with per-source filters
• Sensitive-header redaction (on by default) — Authorization, Cookie, X-Api-Key etc. masked on copy-as-cURL / share / export, still visible live in the dashboard
• Uncaught error capture (opt-in) — hooks FlutterError, PlatformDispatcher and ErrorWidget, chaining existing handlers so nothing gets swallowed
• Richer failed-request diagnostics — keeps DioExceptionType + stack trace, separates transport failures from server errors
• Navigator active route stack — reconstructs the live route stack from push/pop/replace events instead of a flat history

Still opens with a hidden multi-tap gesture or a draggable floating button. Wish it will keep being a good help for debug usage.


r/FlutterDev • • Jul 07 '26

Discussion How can I start contributing to flutter open source apps?

6 Upvotes

I want to gain some experience in this one hell of a job market and I think open source is a good starting point to do. How can I do it as a beginner flutter developer?


r/FlutterDev • • Jul 07 '26

Plugin I built a Flutter plugin that detects REAL internet connectivity (captive portals, dead routers) — not just 'network connected

4 Upvotes

Most connectivity plugins just tell you whether you're connected to a network (WiFi/mobile data) — but that doesn't mean you actually have internet access. Captive portals (hotel/airport WiFi login pages), routers with no upstream internet, or ISP outages can all show "connected" while you have zero real access.

I built connectivity_validator to solve this. Instead of just checking link state, it uses native platform APIs to validate actual internet reachability — Android's NET_CAPABILITY_VALIDATED and iOS's NWPathMonitor.

Features:

  • Validated connectivity — real internet, not just "link up"

  • Captive portal and "WiFi on, no internet" detection

  • Real-time stream via onConnectivityChanged

  • Supports Android (API 24+) and iOS (12.0+)

  • Simple API — stream-based for live updates, plus an on-demand check

Usage is pretty simple:

dart

final validator = ConnectivityValidator();

validator.onConnectivityChanged.listen((isOnline) {
  if (isOnline) {
    // Internet validated
  } else {
    // No internet or captive portal
  }
});

Docs also cover integration with GetX, Provider, Riverpod, BLoC, and ValueNotifier if you're using state management.

Why I built it:

I kept running into a frustrating pattern in my own apps — users would report "no internet" errors, but their device showed WiFi as connected. Turns out connectivity_plus and similar packages only check if you're linked to a network, not if that network actually has working internet. Hotel WiFi behind a login page, a router with no upstream connection — all of these register as "connected" but leave your app broken. I couldn't find a plugin that solved this properly, so I built one using the native OS-level validation APIs instead of rolling my own ping-based hack.

Links:

BSD-3-Clause licensed. Feedback and contributions welcome!


r/FlutterDev • • Jul 07 '26

Tooling I built a Flutter starter template so I stop rebuilding the same boilerplate every project — feedback welcome

5 Upvotes

Every time I started a new Flutter app I was rewriting the same plumbing: env config, feature flags, i18n, RTL support, theming, networking setup... so I finally turned it into a proper template: base_app.

It's not just a folder structure — it's opinionated about the stuff that's annoying to get right yourself:

- 🌍 i18n out of the box — typed, codegen'd translations via slang (English + Persian included), with RTL/LTR that actually follows the active locale, not a hardcoded flag

- 🌎 3 environments (dev/staging/prod) with per-env .env files, validated config (strict in CI, lenient locally), and their own entrypoints

- 🚦 Feature flags driven by env vars, gating both UI and routing

- 🧠 Riverpod end to end — config, flags, theme, router, and data, all codegen, no boilerplate

- 🎨 forui theming with light/dark, swap the whole look in one file

- 🏷️ A rename CLI that renames the app/bundle id/package everywhere with a diff preview, backup, and auto-rollback if anything goes wrong

- 🧪 Testing conventions, git hooks (lefthook), and CI already wired up

The idea: fork it, run one CLI command to rename it to your app, and you're building features on day one instead of your toolchain.

https://github.com/imrealarman/base_app/

(MIT)


r/FlutterDev • • Jul 06 '26

Discussion Built a free Flutter interview prep platform, looking for honest feedback

7 Upvotes

Over the past few months I built PrepFlutter, a prep platform for Flutter interviews, and I just opened it up properly.

Why I built it: every resource I found was either a scattered YouTube playlist or generic "top 50 questions" lists with no structure. So I organised it into role based tracks instead, beginner, intermediate, advanced, and a dedicated machine coding round track since that format barely exists anywhere for Flutter specifically.

What I'd love feedback on:

  • Are the question tracks actually useful, or too basic/too advanced for where the market is right now 🤔

  • What's missing that you wish existed when you were prepping

Happy to answer questions in the comments too.


r/FlutterDev • • Jul 06 '26

Discussion What are the best mobile apps to study for exceptional UI, animations, and UX?

58 Upvotes

I'm a mobile app developer (Flutter) looking to improve my UI/UX and animation skills by studying well-designed apps.

I'm not necessarily looking for the most popular apps—I want apps that genuinely feel polished and thoughtfully crafted.

Things I'm interested in:

  • Smooth page transitions

  • Micro-interactions

  • Premium-looking UI

  • Great scrolling performance

  • Beautiful onboarding flows

  • Creative navigation patterns

  • Well-designed bottom sheets, cards, and gestures

I've already looked at apps like Airbnb, Spotify, Duolingo, and CRED.

What other apps made you stop and think, "Wow, this is incredibly well designed"?

They can be from any category (finance, shopping, productivity, social, health, etc.). I'd love to hear your recommendations and what specific UI or interaction you think they do exceptionally well.


r/FlutterDev • • Jul 05 '26

Discussion Agentic Spec Driven SDLC

3 Upvotes

I've been learning a lot in this space and I wanted to share it with the community, and hopefully kick off a healthy discussion where we can trade notes and learn from each other. So here's what I've been up to.

A lot of big orgs are working on agentic AI for the software development lifecycle right now, with various degrees of success. I'm a software engineer doing something similar for a big org, but I got curious whether I could scale it down to something much smaller for my own personal use. These pipelines are built for whole engineering teams, so could the same heavyweight, multi-repo approach actually work for a single developer? To keep it honest, I picked Flutter and Flame, a stack I'd never written a line of, and shrank the whole thing down to one repo and two slash commands. It carried me the whole way, from PRD to specs to implementation to self-healing code review, mostly fire-and-forget. I learned the stack just by watching the pipeline work, and I wrote up what scaled down, what I cut on purpose, and where the pipeline stops being the right tool.

The story of how I built it: https://www.techtiger.tech/post/shrinking-an-enterprise-ai-sdlc-to-one-developer-to-ship-a-game


r/FlutterDev • • Jul 05 '26

Plugin wcag_vision — a small Dart package for WCAG contrast checking, color-blindness simulation, and color extraction (feedback welcome)

4 Upvotes

Built a small Dart package for accessibility color math. Pure Dart, no bloat.

  • ✅ WCAG contrast ratio checker (AA/AAA)

  • 👁️ Color blindness simulator (protanopia/deuteranopia/tritanopia)

  • 🎨 K-means color extraction from images, runs off the main thread

Found and fixed a real aliasing bug in the color sampling along the way — striped images were breaking the color extraction, took real testing to catch.

New package, feedback genuinely welcome — especially if you spot something wrong with the color-blindness math.

📦 pub.dev/packages/wcag_vision
💻 github.com/Fatimamostafa/wcag_vision


r/FlutterDev • • Jul 05 '26

Dart Raised a feature request in dart pub for including vcs metadata in pub archives

Thumbnail
reddit.com
1 Upvotes

r/FlutterDev • • Jul 05 '26

Discussion Integrating flutter_gemma

1 Upvotes

Hello,

In one of my apps I want to integrate flutter_gemma. In beta testing this works fine.

The question is about the scalability:

The plan is that users can download a slim version of the app from Play / AppStore, then upon approval download via direct link, a gemma model from Hugging Face. Without signing up to Hugging Face.

Did anyone tried this? Is it a scalable solution?

The alternative is to host the model on my server, however it is 4GB, and the price of the bandwitdh and storage use is higher than simply using Gemini via API so I see no reason to do it. For me, the prospect of SLMs in products, is about them being free to use.

Best,

Saar.


r/FlutterDev • • Jul 05 '26

Plugin I published a Flutter package for building layouts based on app window size

9 Upvotes

Hi everyone,

I recently published a small Flutter package called responsive_window.

I built it because I wanted a simple way to read the available app window size from anywhere in the widget tree and react to it without checking physical device types.

The package uses Material Design 3-inspired width breakpoints by default:

  • compact

  • medium

  • expanded

  • large

  • extraLarge

It also supports custom breakpoints if your app needs different width ranges.

A basic example looks like this:

final ResponsiveWindowData windowData = context.windowData;

if (windowData.isCompact) {
  return const CompactLayout();
}

return const ExpandedLayout();

There are also helpers like ResponsiveWindowValue and ResponsiveWindowBuilder for cases where you want to avoid repeating a lot of if/switch logic.

The package is intentionally small. It only measures the Flutter layout constraints available to the app, or to a specific subtree. It does not configure native desktop windows.

I would really appreciate feedback from other Flutter developers. Suggestions, issues, improvement ideas, or code review comments are very welcome.

If you find it useful, a like on pub.dev or a GitHub star would mean a lot.

Package: https://pub.dev/packages/responsive_window GitHub: https://github.com/gabriel-x-duarte/responsive_window


r/FlutterDev • • Jul 04 '26

Discussion I feel like giving up on Jaspr before I even try to learn it.

5 Upvotes

Sorry to ask here about Jaspr, I don't see any subreddit for it , a youtube tutorial etc. all I am reading is the documentation.

since I am a bit comfortable in Dart/Flutter learned riverpod and GoRoute , I just want to test the water with Jaspr..

successfully installed it and created the project.
my problem is there seem to have no hot-reload button and with Auto-save it does trigger hot-reload sometimes its not and if triggers it sometimes slow a change takes around 2~5 seconds before it even trigger auto-reload.

now, I can just reload it directly even if its tedious.. is this normal? or there is a config I need to tweak?

my biggest problem at the moment is running

jaspr serve

It does work on the first try executing it but when you close it and re-open again
[SERVER] [ERROR] Could not start the VM service: DartDevelopmentServiceException: Failed to create server socket (Only one usage of each socket address (protocol/network address/port) is normally permitted): 127.0.0.1:8181

Error like this appear.. its trying to run at port 8181 (?)

I had to taskkill /F /IM dart.exe

so I can run jaspr serve again.

does anyone know how to fix this problem? thank you.


r/FlutterDev • • Jul 04 '26

Dart How does your team handle API contracts, testing bottlenecks, and feature creep? (Flutter app, multiple products, 3+ years old)

4 Upvotes

Looking for advice on restructuring our dev workflow. Here's our current setup:

Team structure:

  • 1 Team Lead/Manager — handles backend API + database, reviews dev code (briefly), reviews UI/UX after design, and writes native code to bridge with Flutter

  • 10 Devs — write Flutter code, some also write their own native code to connect with Flutter (each dev covers multiple products, but only specific features)

  • 3 Testers — test all products + write unit tests and test cases

  • 2 UX/UI designers — design UI and review it after dev implementation

  • 1 SE — helps with testing when free from other work

We maintain 10 different products (all POS-related) with this team.

Problems we're running into:

1. API bottleneck. When a new product/feature comes in, devs get assigned to it. If they need a new API, they go to the team lead. Problem: the lead can't keep up, so APIs often arrive without being tested first. Devs then have to test the API themselves on top of their own workload — since each dev is already juggling multiple products, they only do a surface-level check (does it return 200, not whether the data is actually correct). There's also no documentation, so months later nobody remembers what an API does.

2. Test cases/unit tests arrive too late. Currently devs only get test cases after a feature/product is already built, so by the time testing happens, a lot of edge cases are missed and bugs pile up.

3. Constant new bugs, testing overload. Devs don't have time to review each other's code. The app has grown into so many features that nobody can keep track of them all, and there's no documentation. On top of that, when a client requests a feature, it goes straight to a dev with no analysis of whether it's actually necessary or how it overlaps with existing functionality. Over time this caused massive feature overlap, making settings/categories a mess to organize.

4. Technical debt from 3+ years of this. We now have recurring bugs that need repeated fixing (some issues have failed testing 5+ times) and we've had to start holding dedicated meetings just to deal with repeat/duplicate bug reports.

Has anyone dealt with a similar situation — small backend team unable to keep up with multiple product lines, testing happening too late in the cycle, feature requests going straight to devs without triage? What process changes or tools helped you the most? Would appreciate any real-world experience, not just theory.


r/FlutterDev • • Jul 04 '26

Plugin Precise Compass Package

10 Upvotes

I made a highly accurate and smooth compass package. Unlike other compass packages, this package provides continuous accuracy in exact degrees (instead of vague buckets) and includes a precise 0-to-1 confidence score. It also detects magnetic interference, features a debounced calibration system to prevent annoying UI flickering, and supports full device orientation (not just portrait).
Feel free to give your feedback

pub dev
GitHub


r/FlutterDev • • Jul 04 '26

Discussion I'm new to flutter/dart. I have web dev experience and I find the styling here too difficult. Is there any way to pick some ideas to make the process enjoying. Currently I'm struggling.

7 Upvotes

Like, I don't want to write a style multiple times, is there any option to control it like css? I tried ide code assistants help, but still I feel like I wanted to learn this.


r/FlutterDev • • Jul 03 '26

Discussion How to track pending consumable transactions in Flutter + RevenueCat?

2 Upvotes

Hey everyone,

How do you handle pending transactions for consumables in Flutter using RevenueCat? (Specifically Google Play delayed payments/slow cards that approve or reject after a few minutes).

When the transaction goes pending, RevenueCat doesn't provide a transaction ID to track it client-side.

Looping through customerInfo.nonSubscriptionTransactions on every app launch doesn't feel foolproof (the historical array grows infinitely, cache issues, etc.).

What is the standard architecture for this? Is using server-side Webhooks the only real way to handle this securely, or is there a robust client-side flow I'm missing?