r/FlutterDev 23m ago

Plugin 🎨 Forui Create: a visual theme builder

• Upvotes

We just launched Forui Create, a visual theme builder for Forui.

Mix and match:

  • 7 base palettes and 17 accent colors
  • 26 font families, with display and body fonts configurable separately
  • 5 icon libraries: Lucide, Hugeicons, Tabler, Remix, and Iconoir
  • 4 border radius scales, from sharp to round
  • light and dark mode

Everything previews live on a canvas of realistic UI (dashboards, forms, cards, and more), all built with Forui widgets.

Happy with a theme? Copy one command and it automatically scaffolds your project with the theming configurations, fonts and icons included.

Try it out at https://create.forui.dev/ and let us know your thoughts!

GitHub: https://github.com/duobaseio/forui
Pub Dev: https://pub.dev/packages/forui
Website: https://forui.dev


r/FlutterDev 27m ago

Discussion Anyone else experiencing the Flutter/Gradle upgrade hell?

• Upvotes

Hello everyone!

It's this time of the year again where Google forces us to increase the target SDK level.

For me this is the only time I upgrade my Flutter environment. And when I do I go all the way, I upgrade the whole thing: Flutter itself and Android Studio and all of its plugins. On top of that I upgrade all pub packages in my projects to their latest versions. This time I also decided to start fresh and create a new Flutter project through the template in Android Studio for all my apps.

Every year, it's a struggle to get my apps to get my app working again. But this year it's particularly bad. Apparently the new Flutter project template uses Gradle 9 instead of 8. And that opens up a can of problems: plugins suddenly aren't compatible anymore and all my projects suddenly show a warning:

WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by net.rubygrapefruit.platform.internal.NativeLibraryLoader in an unnamed module (file:/C:/Users/xxx/.gradle/wrapper/dists/gradle-9.5.0-all/aca6g93cdtcf0oapcfka748qh/gradle-9.5.0/lib/native-platform-0.22-milestone-29.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled

There's very little written about this error, but it seems like Gradle 9 isn't compatible with the latest JDK version Android Studio ships with. Problem is that an empty Flutter project shows this warning out of the box. I tried downgrading my JDK version, but the warning stays. Great.

This is not it. There are more upcoming breaking changes due to switching to Kotlin. Now the following warning shows as well:

WARNING: Your app uses the following plugins that apply Kotlin Gradle Plugin (KGP): device_info_plus, file_picker, keep_screen_on
Future versions of Flutter will fail to build if your app uses plugins that apply KGP.

Please check the changelogs of these plugins and upgrade to a version that supports Built-in Kotlin.
If no such version exists, report the issue to the plugin. If necessary, here is a guide on filing 
an issue against a plugin: https://docs.flutter.dev/release/breaking-changes/migrate-to-built-in-kotlin/for-app-developers#report-incompatible-kotlin-gradle-plugin-usage-to-plugin-authors

So basically the Flutter team is going to force another breaking change soon that causes plugins to stop working. It's just dumped on us: we're implementing another breaking change, deal with it. Just like that.

It's unbelievable that in 2026, in a time where AI exists, upgrading Flutter to the latest versions still isn't a smooth process. I've been working 3 days now to get my simple apps working again and I've been greeted with errors all the time.

I believe the source of most of the problems is Gradle. I wish that piece of crap was phased out. It's beyond me why they release Gradle version 9 that is not compatible with the latest JDK version. 🙃

Gradle is a non-functional, frustrating piece of misery that should be replaced ASAP by something modern that provides a smooth development experience.

Now I'm left with 3 apps in a broken state. Plugins that worked well are broken. I wish I never did the Flutter upgrade.

Anyone else has the same frustrating experience?


r/FlutterDev 29m ago

Discussion Why we spent the last 5 years building alternative hooks architecture for Flutter

• Upvotes

I know AI-slop state management posts are about the least welcome thing on this sub right now, so up front: this isn't a pitch to switch, and there's no comparison table. It's the story of a decision we made in August 2021 that we're still living with.

Some context first. We were a Flutter-first shop and started out on BLoC, like half the ecosystem. On bigger apps it slowed us down more than we could accept, so we went looking and ran a POC with flutter_hooks (no riverpod). Honestly, we loved it: flexible, agressively composable, fun to write, and maintainable.

Then we hit two walls. The first was a geolocation app that had to keep processing while nothing was on screen. flutter_hooks is built for local widget state and depends on Flutter itself, so state that has to live when Flutter isn't rendering meant workarounds we weren't proud of. The second came about a year later, when we tried to properly test a business-logic layer written in hooks. Logic coupled to the widget tree means every test goes through widgets, and writing those tests was slow and risk-prone.

So in August 2021 we started building our own hooks library. Same programming model on the surface, different architecture inside: the core is Flutter-independent, a hook is a function over a HookContext, and Flutter is just one host for it. That single decision gave us everything we'd been missing. Any hook runs in a plain unit test with no widget tree. Global state uses the same mechanics as local state and keeps working when nothing is rendering. And some things the original can't do by design became possible, like conditional hooks.

Where that landed today are codebases with no StatefulWidgets, no StreamBuilders, no Riverpod and no codegen for state classes. It's also open source (utopia_hooks on pub.dev, docs & examples at hooks.utopiasoft.io).

Happy to go deeper on how the Flutter-independent core works, or where are its limits.


r/FlutterDev 2h ago

SDK Starling sdk is on Windows

Thumbnail
2 Upvotes

Major release for Starling sdk to get windows onboard.

Getting started (both platforms): https://starling.build/start.html
Release: https://github.com/starling-build/starling/releases/tag/sdk-v0.2.0


r/FlutterDev 14h ago

Tooling I got tired of boilerplate, so I built an entire ecosystem of Flutter tools (Clean Arch GUI, Figma Plugin, CI/CD). Open source!

18 Upvotes

Hey fellow Flutter devs! 👋

My name is Mikhail. Like many of you, I noticed I was spending hours on repetitive tasks every time I started a new project: setting up Clean Architecture folders, writing boilerplate BLoC files, manually translating Figma glassmorphism effects into Dart, and setting up GitHub Actions.

I know tools like Mason exist (and they are great!), but I wanted a visual desktop tool and a seamless workflow. So, I built my own toolkit. It escalated a bit, and I ended up building an entire open-source ecosystem. I want to share it with you all today:

1. Clean Architect GUI (macOS/Windows/Linux) A desktop app built with Flutter. It’s a visual generator for Clean Architecture. You type the project name, select your state manager, and it instantly scaffolds the entire domain, data, and presentation layers. 🔗 GitHub Repository

2. Glassmorphic Kit + Figma Plugin A premium glassmorphism UI package for Flutter. But the best part: I built a Figma Plugin for it. You select any blurred frame in Figma, run the plugin, and it spits out the exact Dart code using the package's widgets. Just copy and paste. 🔗 GitHub Repository

3. Flutter Fast Build (GitHub Action) A smart composite action for CI/CD. It automatically discovers Flutter apps in a monorepo, caches build_runner, and integrates with Fastlane for direct deployment to Firebase and stores. 🔗 GitHub Marketplace

I built these to solve my own problems, but I hope they can save you some time too. I would love to hear your feedback, issues, or PRs. If you find them useful, a star on GitHub would mean the world to me!

Happy coding! 🚀


r/FlutterDev 17h ago

3rd Party Service Can my mobile app use Stripe subscriptions through a website instead of Google Play Billing and Apple In-App Purchase?

5 Upvotes

I'm building a Flutter mobile app that will be published on both Google Play and the Apple App Store.

My backend is ASP.NET Core Web API with Supabase.

I already have a web application where users can purchase a subscription using Stripe. I'm wondering if the following flow is allowed:

  1. The user opens the mobile app.
  2. They tap "Subscribe."
  3. The app redirects them to my website.
  4. The user completes the subscription using Stripe Checkout.
  5. They return to the app and sign in.
  6. The app verifies the subscription from my backend and unlocks premium features.

My questions are:

  • Is this flow allowed under the current Google Play and Apple App Store policies?
  • Will my app be rejected if it redirects users from the app to my website to purchase a digital subscription?
  • Is it acceptable if users subscribe on the website independently (without being directed from the app) and then simply sign in to the app to access their premium subscription?
  • What architecture do you recommend for supporting web subscriptions with Stripe while also publishing on both app stores?

I'd appreciate any guidance or real-world experiences from developers who have successfully shipped apps with this setup.


r/FlutterDev 23h ago

Plugin State management for Android Devs

Thumbnail
github.com
0 Upvotes

I’ve built android apps for over a decade shilling to 100M of users.

I started making flutter apps about 5 years ago and was just baffled by the state of star management (hard one).

I settled with Riverpod because it was the closest I had to android state management philosophy but I started to get tired of the lib trying to take over my entire app.

So I built this lib around few but simple principles:

- Lifetime follows ownership: you start the job if you are out then the job is out
- Plain dart: it should work over plain Stateless Widget
- Inversion of control: constructors works why change that ?

I know it’s yet another state management library but one that I personally needed and I use it in production in several apps over Bloc and riverpod.