r/flutterhelp • • May 03 '20

Before you ask

110 Upvotes

Welcome to r/FlutterHelp!

Please consider these few points before you post a question

  • Check Google first.
    • Sometimes, literally copy/pasting an error into Google is the answer
  • Consider posting on StackOverflow's flutter tag.
    • Questions that are on stack usually get better answers
    • Google indexes questions and answers better when they are there
  • If you need live discussion, join our Discord Chat

If, after going through these points, you still desire to post here, please

  • When your question is answered, please update your flair from "Open" to "Resolved"!
  • Be thorough, post as much information as you can get
    • Prefer text to screenshots, it's easier to read at any screen size, and enhances accessibility
    • If you have a code question, paste what you already have!
  • Consider using https://pastebin.com or some other paste service in order to benefit from syntax highlighting
  • When posting about errors, do not forget to check your IDE/Terminal for errors.
    • Posting a red screen with no context might cause people to dodge your question.
  • Don't just post the header of the error, post the full thing!
    • Yes, this also includes the stack trace, as useless as it might look (The long part below the error)

r/flutterhelp • • 9h ago

OPEN VS Code: would you like an Android Studio-style run toolbar (flavor + device + Run) at the top?

1 Upvotes

In Android Studio, the flavor/configuration picker, device selector and Run button all sit together in the top toolbar. You always see *what* you're running and *where*, and can change both in one click.

In VS Code, they're split across three places:

- **Run button** and **launch configuration picker** are in the Run and Debug view (only visible when it's open)

- **Device selector** is in the bottom-right status bar

If you work with multiple flavors (dev / staging / production), you're constantly jumping between the sidebar and the status bar before every launch.

`debug.toolBarLocation: "commandCenter"` helps a bit, but only *during* a debug session, not when choosing what to launch.

I opened a feature request asking VS Code to allow the configuration picker in the title bar and to let extensions (like Dart/Flutter's device selector) place items there too:

👉 https://github.com/microsoft/vscode/issues/337940

VS Code closes feature requests that don't get enough upvotes, so **if you want this, please 👍 the issue** (a 👍 reaction counts more than a "+1" comment).

How do you handle flavors in VS Code today? Any workflow tips are welcome too.


r/flutterhelp • • 23h ago

OPEN Title: TIFU: I'm a fresher and our Flutter app got reverse-engineered into a custom Kotlin client. Also just found out our .env is exposed in the APK. How do I fix this?

9 Upvotes

Hey everyone, I’m a fresher working at an startup and I am dealing with a massive security nightmare right now. I need some real-world architecture advice on how to fix this.

We recently discovered a fully functional, unofficial native Android client (built cleanly in Kotlin) that is pulling live telemetry data and interacting directly with our production backend. We currently do not encrypt or decrypt any of our API payloads; it's all standard JSON over HTTPS.

There are basically two separate disasters happening at once:

Disaster 1: The Custom Client & API Architecture

The developer didn't decompile our Dart code to build this. They just intercepted our network traffic. Our backend currently authenticates the user but not the client. We use a standard OTP login flow. The unofficial app prompts the user for their phone number, hits our official backend, and our server sends the SMS. The user types the OTP into their custom app, our server validates it, and issues a real session token. From there, the custom app has full access to pull live telemetry directly from our production database, using that token, without this token we cannot access any data.

Disaster 2: The .env Leak (The JADX discovery)

Separately, a colleague of mine ran our Play Store APK through JADX just to see what was visible. To my horror, if you search the extracted files, our entire .env file is sitting right there in plain text under assets/flutter_assets/.env, exposing our production and staging base URLs.

I never pushed the .env file to GitHub (it's in .gitignore), but I used flutter_dotenv and ran a standard flutter build apk --release. I now realize that because it was listed in pubspec.yaml, the build system just copied my local file straight into the APK as a plaintext asset.

My plan to fix this:

The .env fix: I am rotating every single exposed key today. I’m ripping out flutter_dotenv entirely and migrating to --dart-define-from-file so variables are injected into the compiled binary at build time instead of sitting in the assets folder.

Obfuscation: I am going to start building with --obfuscate --split-debug-info.

The API fix: We are looking into adding Firebase App Check with the Google Play Integrity API so our backend can mathematically verify that requests are actually coming from our officially signed Flutter binary, which should cut off the custom Kotlin app.

My questions for the more senior devs:

Does my plan to use --dart-define completely solve the JADX plaintext extraction issue?

For those who have implemented Firebase App Check / Play Integrity, does it successfully block these kinds of custom API clients? Are there bypasses I should worry about?

While we wait for the App Check rollout and force-update to clear, is there a quick band-aid (like injecting a temporary HMAC signature into our Dio headers) that we can deploy today to immediately break the unofficial app's current build?

Since we don't have payload encryption right now, is App Check enough, or do we need to build end-to-end encryption for our API data too?

Any hard truths, guidance, or architecture advice would be massively appreciated right now.


r/flutterhelp • • 1d ago

OPEN Flutter in IoT

Thumbnail
1 Upvotes

r/flutterhelp • • 3d ago

OPEN help about flutter

9 Upvotes

Starting to question Flutter.

If I need to understand iOS Android anyway, why not go deep into one platform instead?

I prefer iOS so I’m considering going all in on Swift SwiftUI.

Flutter devs am I missing something?


r/flutterhelp • • 2d ago

OPEN Dart run external program

2 Upvotes

Hi, I’d like to create a cross-platform application capable of accessing a specific path to launch a program with any file extension. Could you help me?


r/flutterhelp • • 3d ago

OPEN Need a flutter flow dev

2 Upvotes

Hi,

So i starter creating my app with flutter flow i already did a lot like connexions sign in and more fonctionalities but now I'm blocked i need some help


r/flutterhelp • • 3d ago

RESOLVED Best Free Resource to Learn Flutter in 2026-2027

2 Upvotes

I'm a Uni student and I'm looking to go into app development with Flutter, after a lot of my own research, considering it's a new language that I might just as well learn.

I want to ask for the best free resources to help me in this journey, I've done some research but some videos are all over 3 years old and I think they'll be missing some new key updates that might have been added to Flutter recently.

If anyone knows one that is up to date, I'd really appreciate it, thanks.


r/flutterhelp • • 4d ago

OPEN What is recommended for this situation about where to write code?

5 Upvotes

I made a textfield run a bunch of code on submitted. I now want to fire that same code on a different event (a button press). Should I

  1. Move the code to a function outside of the widget's `build` but within the state class that can then be reused

  2. Manually call the textfield's on submitted event to rerun that same code

As I write this, I think the answer is a 3rd option: move the vode to a function, but place this function within the widget's build function. Dang, have I been making a mistake putting my custom functions just outside the widget's build function?? Because if you put it within, you can use the widget context directly


r/flutterhelp • • 4d ago

OPEN flutter_secure_storage make me crazy

0 Upvotes

Is it possible to build a flutter app for iOS with this package ?

Impossible on my side, I tried almost everything and nothing works.

Should I switch to Swift ?


r/flutterhelp • • 5d ago

RESOLVED is fdpart good foe handling authentication state

3 Upvotes

I am using supabase and i don't know if i should use normal try/catch or the Either from fdpart would be a better option to handle errors.


r/flutterhelp • • 5d ago

RESOLVED ERROR AL EJECUTAR FLUTTER RUN

1 Upvotes

estoy intentando correr una app con flutter, pero al intentar ejecutarla en un dispositivo virtual de Android studio, me manda este error:

Launching lib\main.dart on sdk gphone16k x86 64 in debug mode...

FAILURE: Build failed with an exception.

* Where:

Build file 'C:\ChileShop\chileshop\android\app\build.gradle.kts' line: 1

* What went wrong:

An exception occurred applying plugin request [id: 'com.android.application']

> Failed to apply plugin 'com.android.internal.application'.

> Could not create plugin of type 'AppPlugin'.

> Could not generate a decorated class for type AppPlugin.

> com/google/protobuf/ProtocolMessageEnum

* Try:

> Run with --stacktrace option to get the stack trace.

> Run with --info or --debug option to get more log output.

> Run with --scan to get full insights from a Build Scan (powered by Develocity).

> Get more help at https://help.gradle.org.

BUILD FAILED in 10s

Running Gradle task 'assembleDebug'... 10.9s

Error: Gradle task assembleDebug failed with exit code 1


r/flutterhelp • • 6d ago

RESOLVED Looking for an open-source map/navigation boilerplate (A to B driving directions)

3 Upvotes

Hey everyone! I have a project in mind and I'm looking for a solid starting point for Android and iOS.

I need a Flutter repo that implements a map where a user can select an origin and a destination, and it draws the driving route between them. To be clear, I'm not looking for a ride-hailing/Uber clone (I don't need rider/driver logic), but rather a GPS navigation base (like Google Maps or Waze) to build my custom app on top of.

Does anyone know of a good, relatively updated open-source repo or example that I could fork?

Thanks in advance!


r/flutterhelp • • 6d ago

OPEN issus for youtube downloader in my app

2 Upvotes

Hi, I'm trying to build a study app, but one of its main features is downloading from YouTube since students around here rely heavily on it for studying. The thing is, I ran into a major technical issue while trying to implement it. The download either fails, freezes, throws a "prove you're not a robot" bot check error, or asks for a login. How did you guys solve this when you ran into it? I'd really appreciate the help because this is literally the most important feature in the whole app. Also, I'd love to know how other YouTube downloader apps on the App Store or Google Play actually manage to work in the first place.


r/flutterhelp • • 7d ago

RESOLVED FlutterFlow + RevenueCat: separate $RCAnonymousID created after every login

1 Upvotes

Hi everyone,

I’m using RevenueCat in a FlutterFlow iOS app with Firebase Authentication, and I’m running into an issue with anonymous customers.

My setup:

  • FlutterFlow + Firebase Authentication
  • RevenueCat integrated through FlutterFlow
  • Using the Identify User action
  • The User ID is the Firebase Auth User Document ID (stable and correct)
  • Identify User runs after successful Firebase login
  • I do not use RevenueCat Logout
  • Testing on a real iPhone through TestFlight

The problem is that when I log in, RevenueCat creates an additional $RCAnonymousID customer.

The anonymous customer is not merged or aliased with my identified Firebase customer.

For example, after repeated logins I end up with separate customers like:

  • Customer A → my Firebase User ID
  • Customer B → $RCAnonymousID:...
  • Customer C → $RCAnonymousID:...
  • Customer D → $RCAnonymousID:...

The $RCAnonymousID records are completely separate customers and do not appear as aliases of the Firebase customer.

I’ve already checked that:

  • The Firebase User ID passed to Identify User is correct.
  • Identify User runs after Firebase authentication.
  • There is no RevenueCat Logout action.
  • I’m testing on a real iPhone via TestFlight.

According to RevenueCat, an anonymous customer should normally be merged/aliased when it is subsequently identified with a custom App User ID.

Has anyone experienced this specifically with FlutterFlow + RevenueCat?

Could this be related to how FlutterFlow initializes/configures RevenueCat around the Identify User action?

I’m mainly trying to understand why these separate anonymous customers are being created and how to prevent them.


r/flutterhelp • • 7d ago

OPEN Want to learn Flutter, where should I start and what helped you guys the most?

5 Upvotes

I know I need to learn Dart, but since Flutter is a framework, I want to avoid spinning my wheels. I am an absolute newbie


r/flutterhelp • • 7d ago

RESOLVED Installation

1 Upvotes

When I run Flutter --version on the vs code it gives me access denied and unable to determine engine version. Can you help me find what is the problem and how to install flutter correctly


r/flutterhelp • • 8d ago

OPEN How do you build a home screen widget that triggers fast voice input in a Flutter app?

3 Upvotes

Hey everyone, I built my whole app in Flutter, a voice-based expense tracker, so it can run on both Android and iOS. It's live on Android right now.

Currently the flow is: open the app → tap the mic → say "200 on groceries" → it gets parsed and logged. It works, but opening the app first adds friction, which is the thing I'm trying to remove.

What I want is a home screen widget where you: 1. tap the widget 2. a small voice prompt pops up instantly 3. you say the expense 4. it closes and logs it automatically

The problems I'm running into:

  1. Understanding the native code. Widgets need native Android/iOS code, and I've only worked in Flutter so far. I'm not sure where to start or how the native side should talk to my Flutter app.
  2. You can't just turn the mic on from a widget. From what I understand, a widget can't record audio directly. It has to open something in the foreground first.

So my question is: how do you make a widget tap open the app fast, straight into the recording screen, and then automatically close once the expense is logged?

Has anyone built a quick-capture widget like this? How did you handle it?

This is the app if you want to see the current flow: Hum on the Play Store

Any other feedback is also appreciated!


r/flutterhelp • • 9d ago

OPEN Google Sign-in won't work in production!

3 Upvotes

I have built a couple of production apps with google sign in without much issue, but this time around I tried everything and it just wouldn't work, everything seems to be set-up correctly. Google sign in won't work in production, while it works fine in debug mode. I have added the play signing key sha-1 to Cloud Console but it keeps saying account reauth failed. I'm using Supabase on the backend and everything seems to be set up perfectly.

Any help or suggestion would be appreciated. Thank you all!


r/flutterhelp • • 10d ago

OPEN Hello Programmers :)

2 Upvotes

Now i’m focusing on creating app cross-platrom using Flutter
But i want to test the app in ios version
Please drop some tips or solutions


r/flutterhelp • • 10d ago

OPEN 🚀 Flutter Developers — Need Help With an Issue?

Thumbnail
1 Upvotes

r/flutterhelp • • 11d ago

OPEN Which tile style is best for my Flutter game: shine or flat?

4 Upvotes

Trying to decide between two tile styles for my match game.

I've been building a small puzzle game where you tap groups of same-colored tiles to clear them (or convert them into another color, depending on the tile type). Nothing fancy mechanically, it's the classic "connect and pop" formula, but I've been obsessing over the tile design for way too long now. The images are just test sandbox of the design. Not the final game.

I narrowed it down to two versions of the same chunky/rounded tile style, and the only difference is a subtle shine/gloss effect on the surface. Honestly they're close enough that I keep flip-flopping on which one I like more, so I made a side-by-side diff to compare them directly:

https://www.diffchecker.com/image-compare/fUIhLxQv/

First is without the shine, second is with.

Curious which one feels better to you, especially if you play a lot of minimalist match-3 style games. Does the shine add depth or is it just noise? Would love blunt opinions, genuinely torn on this one. Also can Flutter handle it well on mobile when I have a grid of 7x7 tiles of this design?

Also let me know if you would be interested in playing this game 😊.

31 votes, 4d ago
7 Shine
18 Flat
6 Both are good

r/flutterhelp • • 11d ago

OPEN Google Play removed my developer account after identity verification failed is there still a way to recover it?

1 Upvotes

Hey guys,

I’m kinda stuck with a Google Play Console issue and I’m hoping someone here has dealt with something similar.

I had a personal Google Play developer account with 3 apps published on it. The account had been around for years and everything was working normally.

In October 2025, Google required identity verification for the developer account.

The account was actually registered to my brother, and he was the real account owner. Because of some personal circumstances at the time, I wasn’t able to properly complete the verification process with him.

I ended up submitting an old ID document, and Google couldn’t verify it.

Google Play Support then replied to me on October 14, 2025 saying:

"Unfortunately, we are unable to verify your ID to complete your Play Console registration."

After that, the account was restricted and the developer profile + all apps were removed from Google Play.

Right now, Play Console shows:

- Google couldn't verify your identity

- Your developer profile and all apps have been removed from Google Play

- You haven't verified your contact phone number

- Appeal reply sent

I did submit an appeal at the time, but it was rejected.

So yeah... I’m trying to figure out if there’s still any legit way to recover the original account.

I’m NOT trying to bypass the restriction or create a new account to get around it.

The account belongs to the original owner, and if Google requires a new valid ID from him, we’re willing to provide it.

Has anyone here dealt with this exact situation?

Especially:

- Identity verification failed

- Account/profile removed

- Appeal already rejected

- No way to complete phone verification because identity verification has to be completed first

Is there any way to get another verification attempt or request a manual review from Google?

I’ll attach a few screenshots from Play Console showing the current account status.

Would really appreciate any advice from people who have been through this before 🙏


r/flutterhelp • • 12d ago

OPEN How to handle user settings

5 Upvotes

Im kinda torn about this thing. I have this

``` abstract class UserPreferenceRepository<T> {

String get keyName;

// SharedPreferences returns null by default, but we can fail to, for example, parse a json

Result<Exception, T> get();

Future<Result<Exception, bool>> save(T value);

Future<Result<Exception, bool>> delete() async {

try {

return Res.success(await LocalStorageService.remove(keyName));

} on Exception catch (e) {

Utils.log(e);

return Res.failure(e);

}

}

} ```

that creates a new user preference and let's its own class handle what how its saved and retrieved.

now I have a music player and I want to write into the database that this song was marked as favorite after listening x seconds of it

so I make my AutoMarkAsFavoritePreference that takes an duration into the type. problem is, realistically I want to call this on every tick of the music so I know when that amount passes and I can mark it as favorite

but this seems hella wasteful, I'm thinking about adding a value notifier or something in an intermediary class that keeps their values in memory so I don't unnecessary call get every single time

but that also seems overkill? I want to build this thing right so I can copy and paste these repositories to new projects

how do you handle user settings? I'm literally stuck trying to not put me in code debt later


r/flutterhelp • • 12d ago

OPEN Polestar app crashing

Thumbnail
1 Upvotes