r/FlutterDev 7h ago

Article Why we built our own Flutter runtime

Thumbnail
nowa.dev
44 Upvotes

This is a short technical story. I've been working on Nowa for over 5 years now. The dream was creating a game engine like editor for Flutter, since Flutter itself also renders like a game engine.

To make that work, the user's Flutter app has to run inside the editor, live and updating as they build. But Flutter won't run code it hasn't compiled, there's no way to plug in new code and evaluate it on the fly. FlutterFlow invented their own format instead of using raw code, Dreamflow leans on hot reload inside a debug build.

We ended up building our own runtime instead: code loads into a mutable in-memory tree that can be edited, rendered or saved back to code.

Happy to go deeper on how that works or where are its limits.


r/FlutterDev 15h ago

Video Building a Flutter Android TV app that stays responsive with huge IPTV playlists

7 Upvotes

I’m building Airo TV, an open-source Flutter Android TV player. It follows a bring-your-own-content model: it does not provide channels, playlists, subscriptions, or media—users add sources they’re authorized to access.

The engineering problem I’d love feedback on is making TV navigation feel stable when a user imports a very large playlist.

Our current approach:

  • Parse M3U and XMLTV data away from the UI thread through worker/native boundaries.
  • Keep channel lists and programme-guide views windowed/virtualized rather than building every row at once.
  • Make search local and deterministic across imported channels and available guide data—no cloud search requirement.
  • Treat playback failures as diagnosable states with bounded retry behaviour, rather than an unexplained black screen.
  • Design for D-pad-first interaction, readable TV layouts, and local favorites/smart playlist organization.

For developers who want a public playlist to reproduce import and large-list behaviour, we have tested with the third-party IPTV-org index:

https://iptv-org.github.io/iptv/index.m3u

It is not bundled with, operated by, or controlled by Airo TV. Stream availability can change, and please use only content you are permitted to access.

The open source is here:
https://github.com/DevelopersCoffee/airo

The current Airo TV release and Community Voice roadmap are here:
https://developerscoffee.github.io/airo/tv/

I’d especially value input from people who have shipped Flutter TV, large-list, or media experiences:

  1. What has caused the worst focus-loss or rebuild problems in your TV UI?
  2. How do you keep memory and scrolling predictable with very large datasets?
  3. What playback diagnostics have actually helped users distinguish source, network, decoder, and device failures?

If this project is useful, a GitHub star would genuinely help motivate continued open-source work. You can also follow the project and its builders here:

Thanks for taking a look and sharing honest feedback.


r/FlutterDev 14h ago

Plugin New Minimap Package 🤯

Thumbnail
pub.dev
5 Upvotes

Hey everyone! 👋

I just published my first Flutter package: flutter_minimap. It's a lightweight minimap for InteractiveViewer that makes navigating large canvases much easier.

I'd genuinely love to hear your thoughts, feedback, or ideas for improvement. Thanks for checking it out!


r/FlutterDev 7h ago

Tooling Built and Android IDE comparable to VS Code using flutter

Thumbnail
darkian-studio.github.io
1 Upvotes

Just shipped the first public beta of Darkian Studio, an IDE for Android: editor + terminal + LSP + debugging + git + extensions over a real runtime (Termux on device, or any Linux/macOS host). Free during beta, APK via GitHub Releases.

Install:

pkg install curl; curl -fsSL https://raw.githubusercontent.com/darkian-studio/app/main/install.sh | bash

Docs & download: https://darkian-studio.github.io

GitHub: https://github.com/darkian-studio/app


r/FlutterDev 7h ago

Podcast #HumpdayQandA :: Talking Kaisel with Samuel Abada, in 30 minutes at 5pm BST / 6pm CEST / 9am PDT today!

1 Upvotes

Answering your #Flutter and #Dart questions with Simon, Randal, and Samuel https://www.youtube.com/watch?v=2UkwSWHUW1Y


r/FlutterDev 11h ago

Discussion Anyone who still learning flutter

2 Upvotes

I'm new in flutter. Still learning, trying to build my first app. But it really hard to build the habit of learning everyday specially when I'm self learning.

So looking for someone who's learning like me. And wanna be friends with you guys. Because in a Book called Atomic Habits there's a chapter where it talks about significance of surrounded with people that has same habits as you.

So let's be friends and motivate each other. (I know this post might seem cliche but sorry it's important for me)


r/FlutterDev 6h ago

Example My users could pay for a subscription and get nothing, and every dashboard showed green

0 Upvotes

**Flutter app, RevenueCat, Supabase backend.**

Sandbox purchase went through. RevenueCat showed the entitlement active. The
app showed the pro badge. And the server still refused to let me start a
session.

Turned out I only called Purchases.logIn(userId) inside my sign in handlers.
Never on app launch. So any returning user with a restored session was
anonymous in RevenueCat. Their purchase got attached to a $RCAnonymousID:...
customer, my webhook couldn't match that to a user row, and never granted
anything.

**Worst part:** the webhook returned 200 the whole time. Zero rows updated, no
error thrown, everything green in every dashboard.

**Fixes**:

\- Call logIn on every app start when a session exists, not just on sign in.
\- Reject non UUID app_user_id in the webhook and log it loudly.
\- Return 5xx when the update matches zero rows.
\- Test with a returning user, not a fresh install. That's the only path I'd
never tested.

\#iOSDev #RevenueCat #InAppPurchase #StoreKit

\#FlutterApp


r/FlutterDev 13h ago

Plugin Made an MCP server for pub.dev, would love some feedback

0 Upvotes

I built an MCP server for pub.dev because my AI coding agents kept hallucinating package names, using API signatures that changed versions ago, or recommending packages that are basically abandoned. What finally pushed me over the edge: Claude Code grepping my local pub cache on disk instead of just looking things up, burning tokens crawling through cached source.

So I built dart-pubdev-explorer (pub.dev package: dart_pubdev_mcp), an MCP server that gives agents direct, structured access to pub.dev instead of digging through your filesystem or guessing from training data.

It can:

  • search & compare packages (score, platform support, maintenance)
  • browse a package's real public API and pull exact source (by symbol or line range)
  • check security advisories against the version you actually have resolved
  • diff changelogs/APIs between versions before you upgrade
  • read Dart SDK / Flutter framework source too (dart:core, package:flutter, …)

Quick note on how this differs from the official Dart MCP server (dart mcp-server): that one has a general pub_dev_search tool as part of a much bigger toolset (running apps, analysis, DTD, etc). This one only does package research, but goes deeper: symbol-level API browsing, exact source reads, version diffing, side-by-side comparisons, with an on-disk cache built for that kind of repeated digging. They're complementary.

Install:

dart install dart_pubdev_mcp

I've been running it with both Claude Code and Antigravity.

pub.dev: https://pub.dev/packages/dart_pubdev_mcp

Happy to answer questions, and curious what people think, especially whether some of the tools are overkill and others are missing something obvious.


r/FlutterDev 1d ago

Tooling Finally decided to open-source one of my personal projects

Thumbnail
github.com
27 Upvotes

I've been sitting on a bunch of personal projects for a while and finally decided to start sharing them instead of leaving them on my drive. This one is called PIM. The original reason for building it was simple: I was tired of constantly sending files to myself through Telegram, cloud storage, or plugging in a cable just to move something between my own devices. So I built a local-first app for Windows and Android that lets devices discover each other on the same network and communicate directly without accounts or cloud services. One part I particularly enjoyed building was the networking layer. Instead of using existing networking packages, I wrote the discovery, transport, framing, and file transfer logic in pure Dart. The project has grown beyond file sharing and now also includes chat, shared workspaces, notes, Kanban boards, and local SQLite storage. It's completely open source now, so if anyone wants to look through the code, suggest improvements, or point out things that could be done better, I'd really appreciate the feedback.


r/FlutterDev 1d ago

Plugin I built a Flutter package for highly customizable QR codes

19 Upvotes

I've been working on a Flutter QR code package over the past few months because I wanted more flexibility than existing libraries provided.

Most QR packages let you change colors or add a logo, but I wanted to support things like:

  • Halftone QR codes that remain scannable
  • Multiple module shapes
  • Gradient fills
  • Per-eye customization
  • SVG and high-resolution PNG export
  • Animated QR codes
  • Framed QR codes with custom labels

One challenge I ran into was balancing visual customization with scan reliability. Instead of only checking how the QR codes looked, I built automated decode tests into the development process so every style is verified to remain scannable.

I also wrote the QR encoder from scratch rather than relying on another runtime package, and verified the generated output against ZXing to ensure compatibility.

I'd really appreciate feedback from other Flutter developers:

  • Are there any QR customization features you've wished existing packages supported?
  • Does the API feel intuitive, or is there anything you'd change?

r/FlutterDev 1d ago

Tooling How I reduced iOS simulator RAM usage by up to 4×

79 Upvotes

I’ve made a small command line tool called simslim.

It disables background services inside iOS simulators that usually are not needed during development, like Siri, Spotlight indexing, photo analysis, News, and iCloud sync.

On my M1 Pro with 16 GB of RAM, one simulator went from around 4 GB of memory and 258 processes to about 0.9 GB and 70 processes. I managed to run 19 simulators at once, compared to around 5 before things started falling apart.

Some simulator features stop working depending on what gets disabled, so it is not meant for every kind of testing. You can keep specific services running when needed.

Give it a try: https://github.com/MobAI-App/simslim


r/FlutterDev 1d ago

Tooling Open Source App Store Screenshot Generator

1 Upvotes

A while back I ran across someone promoting another paid screenshot generator in r/appbusiness they made that could grab images straight from your device and let you edit them in a GUI. I'd just built something similar that I always meant to open-source... so here it is. If you're like me the last thing you want to do after spending hours and hours on building an app is to muck around with app store requirements.

It's tuned pretty heavily toward my own flutter appdev workflow and screenshot preferences (like being able to automatically hide the flutter debug banner), but the core idea is simple: take one screenshot per screen, add a caption, and it renders every store-required Apple and Google size for you. No resizing the same shot eight times.

What it does

  • Capture straight from a device - pull a screen off a connected Android phone over adb. Capture New adds it as a new screen; Replace Current re-shoots a screen without losing its caption. (iPhone capture is next on my list.)
  • One source image → every required size - 6.9" iPhone, iPads, Android phones/tablets, and so on. The device frame takes each target's aspect ratio, so an iPad target stays iPad-shaped and a phone stays phone-shaped.
  • Live-preview GUI - tweak background, title/subtitle, fonts, colors, device size, and framing with sliders and watch it re-render as you type.
  • Hides the Android tells - the status bar and Flutter debug banner get painted over (Apple rejects screenshots that reveal another platform), auto-sampling the background so the fill is seamless.
  • Store compliance is enforced, not hoped for - exact pixel dimensions, no alpha channel, Google's 1:2–2:1 aspect, and <8 MB are all asserted before a file is written.
  • The device-size matrix is plain YAML, not hardcoded - when Apple/Google change specs, you edit a file instead of waiting for a recompile.
  • There's a CLI too, so you can wire it into CI.
  • Single YAML config per app (load/save), and it can also export the cleaned, un-framed "originals."

Stack: C# / .NET 9 + SkiaSharp for rendering, Avalonia for the cross-platform GUI. Runs on Windows, macOS, and Linux. No accounts, no SaaS, nothing phones home.

It's just a dev tool, and dev tools should be free, so it is. Prebuilt self-contained builds for all three OSes are on the releases page, or build from source.

Feedback and PRs welcome. Like I said, it's shaped around my needs, so your mileage may vary.

(macOS note, optional: the builds aren't code-signed, so on first launch you may need to right-click → Open, or run xattr -dr com.apple.quarantine ScreenGen.App*.)*


r/FlutterDev 15h ago

Plugin I built the the best in community plugin for Agentic Flutter Development

Thumbnail
pub.dev
0 Upvotes

You

├── "Add Google Sign-In to my Flutter app"


LLM (Claude Code / Codex / Cursor Agent)

├── Reads Flutter project
├── Plans implementation
├── Edits Dart files
├── Runs flutter pub get
├── Builds app


inkpal_bridge (MCP)

├── Launch app
├── Inspect widget tree
├── Navigate to Login screen
├── Tap "Continue with Google"
├── Wait for authentication
├── Capture screenshot
├── Read runtime exceptions
├── Read HTTP requests
├── Check current route


Agent reasoning

├── Login button disabled?
├── Null exception?
├── Wrong navigation?
├── Layout overflow?


If failed

├── Edit source code
├── Hot reload
├── Retry automatically


Repeat until verification passes


Git commit / PR

Its free - ask your ai model to set it up and see how it controls the running app in android/emulator live.


r/FlutterDev 1d ago

Discussion Looking for feedback on my Dart & Flutter packages

1 Upvotes

Looking for feedback on a few Dart/Flutter packages I made

Hey! I write Flutter/Dart, and over time I've put together a few open-source packages. Would love some honest feedback from people who actually use this stuff day to day — I'm too close to my own code at this point to see what's awkward or missing.

Three of them, if anyone's got a minute to poke around:

flod (https://pub.dev/packages/flod) — a Zod-style validation library for Dart. Chainable rules, cross-field validation, PII masking, a Dio middleware, form adapter for Flutter. This is the one I care most about getting right, so if the API feels off compared to what you're used to, or you spot an edge case that's not handled, I'd really like to know.

content_flipper (https://pub.dev/packages/content_flipper) — a 3D flip animation widget. Curious how it holds up on older/slower devices and if tapping through it fast breaks anything.

curl_text (https://pub.dev/packages/curl_text) — small widget for outlined text. Simple by design, so curious what's missing or what would make it more useful in real projects.

No pressure to be nice about it — if something's confusing or just badly named, say so. Bugs, API gripes, "why would you even do it this way" — all fair game. Happy to just chat in the comments too, doesn't have to be a formal issue.

Thanks for reading this far 🙏


r/FlutterDev 15h ago

Discussion Looking to build an App Store app that can actually attract users and generate income — what should I build?

0 Upvotes

Hey everyone,

I'm planning to build and publish an app on the App Store, but I'm stuck at the very first step: figuring out what app to actually build.

My main goal is to create something that can:

  • Attract real users (not just friends and family downloading it out of pity 😅)
  • Have a realistic path to generating income (ads, subscriptions, one-time purchase, freemium — open to any model)
  • Be something I can realistically build and maintain as a solo dev / small team

A bit about me:

  • I'm still learning to code (mostly beginner/intermediate level with Swift/basic app dev), so I'm looking for something achievable, not a huge project
  • I can realistically dedicate around 10-15 hours a week to this
  • I have zero marketing/growth experience — this would be my first time trying to actually promote something I built

I've seen a lot of "app idea" lists online, but most of them feel either way too saturated (another to-do list app, another habit tracker) or way too ambitious for one person to build and market alone.

So I'd love to hear from people who've actually shipped something:

  1. What kind of app idea worked well for you in terms of getting real users?
  2. Looking back, what's a niche or problem that's still underserved on the App Store right now?
  3. Any advice on validating an idea before spending weeks building it?

Appreciate any thoughts, even brutally honest ones. Thanks in advance! 🙏


r/FlutterDev 1d ago

Discussion First time submitting an app - how long did your review actually take?

4 Upvotes

Hi everyone,

I just submitted my first app to the App Store and I'm trying to get a realistic sense of review times from people who've gone through it recently, since I've seen a lot of different numbers online.

A few questions:

  1. For your first submission, how long did the review actually take from "Waiting for Review" to "Ready for Sale" (or rejection)?
  2. Did it stay in "In Review" for long, or did it move fast once it started?
  3. Any tips for first-time submitters to avoid common rejection reasons (e.g. account deletion, privacy details, demo account info)?

Would really appreciate hearing real timelines from the past few months, since I know Apple's review speed changes over time.

Thanks in advance!


r/FlutterDev 1d ago

Tooling Tool for Apple Developers: Got tired of App Store Preview video specs for the screenshots section in App Store Connect, so I built this

Thumbnail
1 Upvotes

r/FlutterDev 2d ago

Dart Best GitHub repositories for Flutter interview questions?

8 Upvotes

Does anyone know of a GitHub repository that contains Flutter, Dart, or mobile app development interview questions and answers?

I'm looking to improve my professional knowledge and prepare for technical interviews. Any recommendations would be greatly appreciated!


r/FlutterDev 2d ago

Discussion Release notes inside the apps?

9 Upvotes

hi, im curious if any of you actually puts release notes into your apps?

I have a problem with some feature adoption, since ppl don't really know about some things I deploy, most have auto app updates anyway and don't really read whats changed in appstore/goole play


r/FlutterDev 2d ago

Article GenUI Beyond Chat: Designing a Grammar Book with Flutter GenUI

0 Upvotes

Hi everyone,

This three-part series is my attempt to explore GenUI beyond Chat interfaces: an interactive grammar book built with Flutter GenUI, Firebase AI, A2UI, Firestore, and Widgetbook.

A deterministic curriculum defines what should be taught, a teaching prompt defines how it should be explained, and an application-owned widget catalog defines how that explanation can be expressed. The resulting A2UI is then stored as a reusable A2UI artifact in Firebase Firestore rather than regenerated for every learner.

Part 1 — Designing a Grammar Book with Flutter GenUI

The curriculum, teaching system prompt, purpose-specific catalog, and language-specific teaching bridges.

Part 2 — Caching and Replaying A2UI Lessons with Firebase

Covers batched surface generation, caching the accumulated A2UI in Firestore, and replaying it through the same transport without another Gemini request.

Part 3 — Replaying and Reviewing A2UI Cache with Widgetbook

Uses Widgetbook as both a catalog-planning reviewing and a live viewer for cached lessons.

Some screen recordings:

Widgetbook replaying A2UI cache with custom addon: https://youtu.be/zMChSL7VOiY

The feature demo: https://youtu.be/yqRCdN-5J6Y


r/FlutterDev 2d ago

Article ~150 mini-games in one Flutter Web bundle — and the service-worker bug that broke every game on deploy

0 Upvotes

Setup: one Flutter Web app, ~150 games, each a deferred import loaded on tap (await game.loadLibrary()). dart2js splits each into its own .part.js chunk (~1,100 of them); the shell is ~4.1MB and you only pay for the games you open. Every game wraps in one shared scaffold (settings/pause/result screen) and reads one billing service, so a game can't accidentally show ads to someone who paid to remove them. A compile-time flag picks which ~33 of 150 games are live, all from the same codebase.

The bug: after a redeploy, every game failed with a missing chunk error. Chain: deferred-chunk numbering changes each build, so returning users had a stale main.dart.js from browser HTTP cache, which requested chunk numbers that no longer existed, and my SPA host returned index.html (200, text/html) for the missing chunk, so the browser tried to eval HTML as JS and died. My "network-first" service worker didn't help, because fetch() was served by the HTTP cache before the network.

Fix: the SW fetches code chunks with {cache: 'reload'} to bypass the HTTP cache, so the bootstrap and its parts always come from the same build.

Two lessons: hiding a game (UI filter) is not the same as excluding it from compilation, a broken game still breaks the whole bundle's build. And "deploy succeeded" is not the same as "it works", I now smoke-test with headless Chrome on a fresh profile that deep-links every game and fails on any console error.


r/FlutterDev 3d ago

Plugin Solving Flutter Web SEO and Search Engine Indexing (with Live Showcase & Source)

23 Upvotes

Hi everyone,

It’s no secret that Flutter Web has a massive blind spot: SEO. Because Flutter renders to a canvas (or complex DOM elements) dynamically, search engine crawler bots often hit a blank wall, resulting in terrible or no indexation.

After all, the whole reason we choose Flutter in the first place is to escape the traditional HTML/CSS/JS triad and build unified, declarative UIs. We shouldn't have to go back to writing dual web apps or complex template mirrors just to satisfy Googlebot.

To solve this without forcing developers to rewrite their apps in Next.js or Jaspr and abandon Flutter's core philosophy, I built flutter_easy_seo.

How it works:

  • Generates SEO-friendly HTML directly from your existing widget tree.
  • Declarative wrapping: Simply wrap target widgets to flag them for static extraction.
  • Serve SEO HTML to bots: Search engine bots get the SEO-friendly HTML while a regular user sees the full Flutter App.
  • Ease of Use: Designed to keep usage as simple as possible.

What it supports out of the box:

  • Interactive Mode: Built-in UI overlay for manual generation and visual debugging.
  • Automated Mode: Headless execution tailored for CI/CD pipelines and scheduled server tasks.
  • Localization: Native handling of language codes for multi-lingual indexing.
  • Dynamic Paths: Easily handles parametric routing (e.g., product overview and detail pages).
  • Flexible Routing: Fully compatible with major routing engines (GoRouter, Beamer, etc.).
  • Asynchronous State: Safely awaits async data loading and hydration (e.g., Riverpod providers) before extraction.

Links & Code

Looking for Feedback

I’d love to get your feedback to help push this package further! I’m especially looking for edge cases, use cases, or requirements I might have missed in my own production setups.

If you have any thoughts, feature requests, or architectural feedback, please open an issue or discussion directly on the GitHub repo (linked via pub.dev).

Check out the implementation, and let me know what you think!


r/FlutterDev 3d ago

3rd Party Service I got so irritated by the banking/UPI apps breaking when developers settings are on! So built something

Thumbnail
github.com
31 Upvotes

I was so much irritated when i had to use upi or any banking apps and the "developer mode is on" popup shows. I had to go to the settings, then disable the developer options. and then come to the banking app and enter my mpin again and then proceed with my transactions.

I use iqoo z7s, so sometimes i can open the developer options activity after doing the transactions from the recent apps but sometimes i used to remove it from recent apps and the result: I had to go to the settings.... tap that damn build number 7 times. Enter my password, then go to the dev settings and reconfigure my dev settings. That was so Frustrating!!!

So, I sat some days ago and researched if i could do it with a button click and make it easy for myself. So, i don't have to go through that irritating process again and again.

and I found something. I could turn the dev options on with a device permssion called WRITE_SECURE_SETTINGS but that's a caveat. You can't just ask the permission to a user in the app. This is a systems level permission, so you have to give this permission with a adb command.

And once this permission was given, i was able to turn the dev options on/off with just 1 click. So, i made a widget for that, you just have to press it and turns the developer option on/off....

- No Banking app problem. you can just switch off dev option from the home screen and use the app and after you have finished your work. you can turn that back again. No 7 time tapping process of build number. Just a Click and job done!!

and for people who aren't a fan of widgets. I made a quick settings tile too which you can integrate directly from the app and all of this is completely open source with MIT license.

You can customize this app as per your needs and if you just want to use this without customizations. You can find this app here:
https://github.com/shubhang-d/Loophole
You can see the installation procedure in the github readme

After all these years in android development, I have used many open source apps. ig this is my small contribution towards the community.

PS: I have also submitted a MR for publishing this app on F-droid. Let's see what happens✌️


r/FlutterDev 3d ago

Discussion [Showcase] PicoView: A Flutter package that mirrors widgets to an external LCD touch panel

Thumbnail
youtu.be
12 Upvotes

Hey devs,

I've been building PicoView, and I'd love some feedback from this sub before I take it further.

GitHub Repository: https://github.com/yplam/nano-dash/tree/master/packages/pico_view

Demo Video: https://youtu.be/bcBqR4svKpk

The idea: wrap any part of your widget tree in a PicoView(child: ...), and that subtree gets mirrored to an external LCD + capacitive-touch panel. The same widgets render on-screen and on the panel, and physical touches on the panel come back as real pointer events in the tree.

```dart

final controller = PicoViewController()..init();

controller.open(const PicoViewConfig()); // round 360×360 panel

PicoView(

controller: controller,

child: const MyDashboard(),

);

```

The demo video shows the classic counter, then a calendar where long-pressing an event spins up a Pomodoro timer. The panel also has a built-in vibration motor, so alerts (like a finished timer) give physical haptic feedback.

Do you think this is useful? What would you build with it?


r/FlutterDev 3d ago

SDK openrouter_sdk | Dart package

Thumbnail
pub.dev
0 Upvotes

openrouter_sdk is a new Dart package providing a type-safe client for the OpenRouter.ai REST API. Strongly-typed interface, with full support for streaming responses and multi-modal content (text, image, audio, video, file).

This package replaces openrouter_api, which is now discontinued and marked as replaced on pub.dev. Users of the old package should migrate to openrouter_sdk, which follows the design of OpenRouter's official SDK more closely.

Currently implemented:

• Chat completions (including streaming)

• Models, Providers, Endpoints

•API key management (create / update / delete / list)

• Credits and analytics

• Generations

The rest will be added shortly.

The chat completions endpoint should be OpenAi compatible so u can use it with other providers as well.

Contributions are welcome. Per the package's policy, all code must be hand-written — LLM-generated pull requests are not accepted.

Note: this post was partly generated by an LLM, but all package code was hand-written.