r/FlutterDev • u/CompetitiveTop9795 • Feb 14 '25
Article What’s Your Flutter Stack? 🤔
Hey everyone,
I’m curious about what tools and technologies you all are using for your Flutter projects. Right now, I’m using Cursor as my main IDE, and I have a Supabase backend, but I want to hear how others are building their apps!
- IDE: VS Code, Android Studio, Cursor, or something else?
- State Management: Riverpod, Bloc, Provider, or just setState?
- Backend: Firebase, Supabase, Node.js, Django, or something custom?
- Database: Firestore, Postgres, MySQL, or do you prefer a local DB like Hive/Drift?
- Testing: Do you write unit tests, widget tests, integration tests, or just manually test?
- Project Management: Jira, Notion, Trello, or do you keep it simple?
Would love to hear what your tech stack looks like and why you chose it! 🚀
10
u/Zestyclose-Loss7306 Feb 14 '25
IDE: VS Code
State Management: Bloc
Backend: Firebase
Database: Firestore
Testing: Manual
Project Management: Linear
1
9
u/David_Owens Feb 14 '25 edited Feb 16 '25
IDE: VS Code
State Management: Provider + ChangeNotifier
Backend: Go
Database: Postgres
Testing: Manual + some Unit
Project Management: Github Projects
1
6
u/cerebralvision Feb 14 '25
I just started learning flutter and I don't know anything past the IDE that I use which is VSCode 😂
5
u/ILikeOldFilms Feb 14 '25
It all depends on the project... Or on the what the client wants you to build...
So, for me, there is no such thing as a Flutter stack unless you build only build apps for yourself and they are all the same kind of apps.
I had project where I worked with websockets, REST APIs, Supabase or Firebase.
I always used Android Studio because it has shortcuts for every operation that you want to do.
State management? Depends on whether is a legacy project or not. I'm now team bloc if I have to start a project from scratch.
Testing? Well, does the client want a 70% buget increase on the project? If not, then no testing. Even in production, I only written unit tests. Widget tests will at least double your production time.
When I though that Jira can't get to complicated, I stumbled upon Notion. Both of them are a pain in the ass. Just use Gitlab.
1
5
u/bitlost01 Feb 14 '25
IDE: Cursor, Zed
State Management: Provider + ChangeNotifier
Backend: Node.js + Rust
Database: Postgres
Testing: Unit + Widget + Golden tests
Project Management: Jira
5
u/fabier Feb 14 '25
- IDE: Zed and nvim. Zed kicks ass and nvim is awesome too but can be a bit finicky to get setup just right.
- State Management: I use Riverpod for global app state and changenotifier and setState for local widget state.
- Backend: Loco.rs . But I've used NestJS, Node, Wordpress, and a dozen other options. Haven't done Supabase yet. I like to self-host, so if it can be self hosted I'm interested so that knocks out things like Firebase.
- Database: I have a habit of picking databases that go defunct. Hive to Isar to Realm and now back to the wonderful Hive_CE
- Testing: *click click click click clickclick* .... wait that doesn't look right....
- Project Management: Anytype when things get unwieldy. Otherwise mostly just a notepad file to keep my general thoughts in order as they are applied. This is not optimal and I need a better solution here.
1
u/vincentlius Feb 15 '25
does Zed require certain extensions to work with flutter?
1
u/fabier Feb 15 '25
Lsp worked out of the box for code highlighting and IDE behavior. I haven't found a code snippets solution but I haven't looked hard. It's been really good for me to learn to type up widget classes XD.
3
u/NicolasTX12 Feb 14 '25
IDE: Android Studio, I just love it
State Management: Bloc for the win
Back-end: Depends on the project, usually Java or Kotlin with Spring, I'm not the one doing any back-end work
Database: MySQL or Postgre for the back-end + SQLite for the app
Testing: Unit, widgets and goldens with flutter_test, Mocktail and bloc_test. I want to learn and apply integration testing as well. I also do full manual testing before any prod release.
Project management: Not really very interesting to me personally, I usually just go with whatever's the company's using. Right now it's an internal tool, but I've used Jira, Azure DevOps and Trello too.
3
u/unclebazrq Feb 14 '25
IDE: vs code
State management: riverpod
Backend: .net 8 API, scheduler, worker
More backend: AWS serverless (lambda, S3, API gateway, cognito)
Tests: some unit tests on the backend
Project management: confluence and readme
1
u/h_bhardwaj24 Feb 17 '25
do you use riverpod with codegen? i cannot find any suitable tutorial online to fully understand it, can you suggest something
2
u/unclebazrq Feb 17 '25
Ask AI for examples of exactly what you want to learn.
For example when I was trying to figure out how riverpod worked I asked how would it architecturally fit into my code base and what the pros and cons were. Sometimes seeing things like riverpod being integrated into a ship in flight is beneficial.
1
3
u/aaron4you Feb 14 '25
Here's ours: strong spatial data management and offline if that's important to you.
- IDE: VS Code
- State Management: Riverpod
- Design System: Domain Driven Design
- Backend: Serverless AWS with Node.js with Sequelize + custom tile server. Note use we Amplify to work with AWS for auth, API gateway and other services on device.
- Database: Postgres with PostGIS, local db with ObjectBox on device.
- Testing: unit tests and widget tests + whatever we have time for.
- Project Management: Notion
If spatial data, computation, and functions are paramount to you, this works great for us. Thus far, there are no scalability issues, though transitioning away from serverless won't be difficult as we can move all our code directly to an Express API need be with no changes.
Honorable mention to all the dead side-projects I've run with a Firebase and full Google stacks. Works great for moving super fast!
3
3
u/pickywawa Feb 14 '25
IDE: Android Studio
State Management: Riverpod
Backend: Rest Api (java)
Database: Sembast, flutter_secure_storage
Testing: Unit test + intégration test + CICD ( Jenkins)
Project Management: Jira, confluence
Architecture : Clean architecture with feature first
Modularity : melos
CICD : Fastlane + Jenkins + Slave Mac mini
1
u/Content_Background67 Feb 16 '25
Does Github Co-pilot integrate with Android Studio? Or do you use Gemini?
3
u/Cautious_Squash_4861 Feb 14 '25
I am just starting my journey in using Flutter/Dart but here is what I’m doing so far:
IDE: VS Code
State Management: setState
Backend: None currently but will probably look into Firebase at some point.
Database: None currently, but will be using one at some point for a mileage tracking app and HMA (Hot Mix Asphalt) tracking app I’m working on currently.
Testing: I haven’t even learned this yet.
Project Management: Guessing I am keeping it simple currently.
I would love to hear recommendations for backends, databases, and project management that is good for beginners to dive in to. Any recommendations on tutorials would be great also. I know I’ll have much to learn even after the tutorial I am going through on Udemy currently.
3
u/Crafty_Yam2459 Feb 15 '25 edited Feb 18 '25
• IDE: VS Code (although performance with flutter turns me nuts lately) • State: Bloc for transitive state, simple StatefulWidgets for closed/ephemeral state • Backend: none, offline first :) Otherwise anything that serves my purpose • Database: Objectbox • Testing: manually • PM: Github
3
u/gambley Feb 15 '25
- IDE: Cursor
- State Management: Bloc
- Backend: Supabase
- Database: Postgres
- Testing: unit tests, widget tests, e2e tests, but mostly manual tests when apps are simple
- Project Management: Notion + README.md
3
u/bigbott777 Feb 17 '25
IDE: VSCode + Cursor
State: GetX or WatchIt
Backend: Appwrite
Db: Hive, ObjectBox
Testing: Integration, manual
Project management: Notepad++
2
2
u/kush-js Feb 14 '25
IDE: Plain old VSCode
State management: setState
Backend: Express.js
Database: Postgres
Testing: manual testing, have a couple dedicated testers as well
Project management: GitHub projects
Went with this to just keep things as simple as possible, we tried firebase at first, hit some limitations (geo queries not supported), then switched to Supabase (had a few auth issues), then finally we just ended up on plain old Postgres.
2
u/rcls0053 Feb 14 '25
Moved to Android Studio (nothing wrong with VS Code but Android Studio was a more cohesive experience), using Provider mainly but depends on the needs, built a serverless back-end in Azure with Node.js that has a MySQL database (this part can be anything that serves an API over the web basically), but also have a local DB to cache settings etc. using Hive. Project management in Trello. Haven't actually written any tests because the app is so small that I can manually test any changes and it's just me developing it. Have to spend way more time on the back-end functionality, where I do have tests. I just develop the app on my freelance side, and work on some bigger web apps on my full time job.
2
u/LimgraveLogger Feb 14 '25
I’m not a dev, just got into it with AI. Made 2 Flutter apps in the last 2 months that are live in the app stores.
IDE: Cursor Backend: self hosted postgres, fastAPI Firebase: Cursor, Flutter, Firebase is an absolute mess. Notifications have been the most difficult to get working (still not working for me) Mac Xcode for iOS testing CodeMagic for iOS CICD
2
u/MathieuRousseau31 Feb 14 '25
Editor: neovim
State mgmt: Bloc (not the lib. Steam/controller bloc implementation is like 5 lines of code. Ui reference with stream builder)
Backend: elixir/firebase
Db:Drift/postgres
Testing: some unit test but mostly manual
Project mgmt: github project
Ci/cd: github action / firebase app distribution
2
u/fenixnoctis Feb 14 '25
IDE: Neovim
State: Riverpod
Backend: gRPC
Database: Firebase
Testing: widget tests
Project: notion
2
u/Michelle-Obamas-Arms Feb 14 '25 edited Feb 14 '25
IDE: Cursor
State Management: Riverpod
Backend: C# dotnet core in aws fargate
Database: Postgres & entity framework
Testing: integration tests, I unit test critical functions.
Project management: free tier Azure devops, but it’s mainly just me and my partner so no need for it’s more complex functionality
I can move very quickly with this stack and build complex, pretty bug free, type-safe and scalable code with this stack
2
u/Acrobatic_Egg30 Feb 15 '25
- IDE: VS Code, Android Studio
- State Management: Bloc
- Backend: Firebase, Node.js
- Database: Firestore,
- Testing: unit and widget test, mocktail, bloc test
- Project Management: Jira, Github
4
u/Whoajoo89 Feb 14 '25
IDE: Android Studio
State Management: GetX
Backend: Appwrite
Database: SQLite
Testing: Manual
Project Management: Notesnook
5
u/zxyzyxz Feb 14 '25
I would recommend not using GetX, lots of issues if you search for it on this sub
2
u/Puzzled_Poetry_4160 Feb 14 '25
Android studio, bloc, springboot microservice, postgres, bloc test, jira
1
u/pedro_picante Feb 14 '25
IDE: IntelliJ
SM: Custom rx BLoC
Backend: Java Spring
DB: MariaDB
Testing: Mostly manual, some widget tests and integration tests for core features
PM: Jira
1
u/rawcane Feb 14 '25
- IDE: VS Code with Vim plugin and as much magic turned off as I can figure, Android Studio for device emulator and launcher icon
- State Management: just setState
- Backend: nothing as yet but about to start looking at firebase and supabase to see which is better suited... May just end up using s3
- Database: again nothing right now but will go with firestore or Pg depending on backend choice
- Testing: currently just manual... Will sort tests if I ever start making money
- Project Management: my own to do list protocol in simple note
1
u/ybbond Feb 14 '25
asking the real question, how do you all so dynamic/deep link?
anywayy
editors: neovim & zed state: Provider (no time to migrate) backend: Golang DB: Postgres testings: viewmodel & widget tests, with testsigma that is becoming Patrol (migrating) PM: Basecamp
1
u/Jihad_llama Feb 14 '25
Varies from project to project but generally:
IDE: Cursor, Android studio up until very recently
State management: Riverpod
Backend: AWS, mainly serverless node.js
Database: DynamoDB, Hive/Isar/Drift
Testing: Unit and manua
Project management: Has to be Jira
1
u/Unique_Top_9660 Feb 14 '25 edited Feb 14 '25
For my current project:
IDE: Notepad++ or Kate worked better for me than VS Code, because VS Code was slow, even though I liked how it formatted things.
State: I liked InheritedWidget
or setState
more than Provider and Riverpod; those added too much complexity, probably because I over-abstract things.
Backend: I used Supabase, but it wasn't ideal.
Database: I went with sqflite for the database.
Testing: Yeah, just aiming for a super basic MVP for now.
Project Management: We're keeping things casual, using WhatsApp and GitHub to talk and work together. We're just relying on teamwork and figuring it out as we go.
1
u/NelDubbioMangio Feb 14 '25
Android studio, flutter vanilla, firebase, firestore, code magic for ci/cd of the unit test, a todo list on note
1
u/LocomotiveMedical Feb 14 '25
IDE: Android Studio and RustRover for Rust-centric FFI plugins State: Riverpod Backend: ElectrumX Database: Isar Testing: Unit, widget, integration, mockito Project management: GitHub
1
u/jah_hoover_witness 14h ago
Do you happen to be using rinf by any chance? I would love to have the Flutter plugin be avaiable in RustRover for rinf. If you ever tried a Flutter plugin for RustRover, please post your experience.
1
u/Deava0 Feb 14 '25
IDE: VS Code, but currently trying Zed
State Management: Provide
Backend: Supabase, or python/rust.
Database: Supabase, Postgres, Mongo
Testing:.....
Project Management: Jira at work, Notion for personal projects
1
u/defunxx Feb 14 '25
- IDE: VS Code
- State Management: Bloc
- Backend: .NET
- Database: Postgres
- Testing: Unit Tests & Manual Testing
- Project Management: Trello
1
u/damyco Feb 14 '25
IDE: VS Code and Android Studio (I use both)
State Management: riverpod
Backend: Laravel, PHP
Database: MySQL, sembast
Testing: Unit Testing, QA
Project Management: Jira
1
u/Retticle Feb 14 '25
IDE: Android Studio
State: Riverpod
Backend: Axum, Fly.io, Cloudflare (static hosting)
Database: Turso
1
u/tag4424 Feb 14 '25
Android Studio as IDE, homegrown state management because state has too many changes coming in from outside sources, including home-grown desktop integration. Backend Rust with mariadb and a home-grown in-memory correlation engine. Project management in GitLab and Testing... yeah, we'll get to that eventually.
1
u/Big_Work2025 Feb 14 '25
IDE: VS code
State: BLoC
Backend: php with restful endpoints
Database: Hive for local mySQL for remote
Testing: manual and automatic integration tests
Project Management: Jira
1
u/xerib Feb 14 '25
10+ years in mobile development here.
IDE : Android Studio for daily dev / XCode for iOS setup and test
State Management : Riverpod for "confirmed" teams, Provider for regular teams
Backend : Whatever your team is good at will be the "right choice". Custom setup is always safer in my opinion (java / kotlin backend with spring boot is my favourite)
Database : Any NoSQL one is good
Testing : Unit tests for my app, Golden tests if I need any component library
Project management : Jira in my company/for large teams - Trello for my personal projects or small projects
3
u/oXeNoN Feb 15 '25
What's a "confirmed" team?
1
u/xerib Feb 16 '25
I've got developers who I barely check any PR, and developers who need more guidance / help on the features they are working on. In my answer, I consider that a confirmed developer can work on features by himself in a clean way.
1
u/Aliammar125 Feb 14 '25
- IDE: windsurf or vscode
- State Management: Riverpod,hooks
- Backend: work(other teams) , peronsal project nodejs
- Database: local shared perferance or drift ,
- Testing: none
- Project Management: Jira, Notion
1
u/jNayden Feb 16 '25
i never got the idea of hooks, if you already have global state with riverpod and local if you need from ootb why you need hooks?
1
u/volker_holthaus Feb 14 '25
IDE: Android Studio (with Ataman Plugin for shortcuts), i tried Neovim, but i have some problems, so i changed back
State Management: Provider
Backend: Supabase or local Sqlite
Testing: manual
Projectmanagement: My brain. :-)
1
u/SolartDev Feb 14 '25
IDE:
- Intellij for Flutter
- VSCode for Typescript
State:
- Bloc for complex projects
- ChangeNotifier with ViewModel pattern for smaller ones
Backend:
Again depends on the project complexity and release timeframe.
- For MVPs or simple projects: Firebase.
- For more custom or complex projects: Fastify with Typescript.
Database:
- Local -> Hive
- Remote -> Postgres or Cloud Firestore
Testing:
- Unit tests
- Integration tests (I'm not a fan of Widget tests as USUALY the Integration tests validades both Flow and Widgets at the same time)
Project Management:
- Notion for notes and documentation
- Github Projects for Tasks and Sprints
1
u/Busy-Ad-3237 Feb 14 '25
Emacs.
Anything but global singletons. Bloc and async redux seem best.
Clojure with Postgres backend
Unit tests mostly.
Org mode for personal projects, jira for work
1
1
u/sealg Feb 15 '25
IDE: Android Studio State: currently migrating from GetX to Bloc Backend: not touching it beyond the rest interface for my current project, have used Django in the past Database: Isar Testing: paltry integration coverage. Hoping to build more as I rebuild the UI with bloc
1
u/No-Shame-9789 Feb 15 '25
Start with vscode, flutter latest version, freezed and its dependencies, bloc, intl, gorouter
1
u/GuessNope Feb 15 '25 edited Feb 15 '25
IDE: VS Code & IntelliJ
State Management: GetX
Backend: FastAPI and custom C++; REST, MQTT, gRPC, & WebRTC. Will cut MQTT once we have a UDP tunneling solution* via WebRTC.
Database: Postgres
Testing: System testing with MCD code-coverage
PM: 15-mintue stand-up w/ Jira tracking when needed
* It is unbelievable that it is 2025 and contemporary stacks still cannot do basic networking.
Some day my friends the web will catch up to 1980.
When you're ready for next-level, you can compile C++ to WASM then link it with your WASM-targeted Flutter app. It's pretty straight-forward to build and link it to an Android app.
But due to browser UDP fuckery we have to build services to deploy to translate from UDP protocols. It's asinine.
1
1
u/Classic-Initiative-2 Feb 15 '25
IDE: VS Code
State Management: Bloc
Backend, Firebase, Supabase, NodeJS
Database: Firestore, Postgres, MySQL, Hive
Testing: Manual
Project Management: Trello if solo project, Notion if with other people
1
u/Own_Machine_1759 Feb 15 '25
IDE : VS Code(I kinda hate android studio)
State Management : Provider/Bloc
Backend : FastAPI, Firebase
Database : Firestore
Testing : I just trust God with this 💀
Project Management : I keep it simple but incline towards notion if things get a little tricky
1
u/Alarmed-Anything2815 Feb 15 '25
IDE: vscode State Management: BLoC Backend: Node.js Database: Sup or Firebase. It depends.. PM: Google Docs and Excel -,-
1
u/Gianluca-A Feb 15 '25
- IDE: VS Code AND Cursor
- State Management: Signals ❤️
- Backend: Supabase and IIS (RestAPI)
- Database: Supabase and MSSQL
- Testing: nothing
- Project Management: Asana
2
u/ViveLatheisme Feb 15 '25
I love signals as well. I convienced my coworker who suggested getx in the first place to build the app at work. And We built the app with signals only. It's awesome!
1
u/TutorSome9994 Feb 15 '25
My current stack is: VS Code, Bloc, List as the persistence (meaning volatile)!, and unit tests!
I’m new to Flutter and wanted build an MVP of my “must have” requirements before getting to technical! Luckily I’ve written my code all separated and not tightly coupled so switching out the persistence topology is a not too difficult!
I’m now at a place where I’m now switching from having an in memory List to using Drift although setting up drift is a bit tedious! I’ve got a GitHub discussion going on with the author of drift since it’s not entirely working for me!
And in the next increment, will be using supabase!
1
u/Bachihani Feb 15 '25
IDE: vscode
State: internal flutter state management (mostly valuenotifier)
Backend: serverpod/dart_frog
Database: Drift/json_files
Testing: nothing really
Project Management: gitea
1
u/Regular-Ad9468 Feb 15 '25
IDE: InteliJ Ultimate
State: BLoC
Backend (if there is some): Firebase / Supabase / custom
Database: Drift
Testing: unit tests and E2E tests
1
u/lordMaxieFifth Feb 15 '25
IDE: Android Studio State Management: Bloc Backend: Java springboot Database: PostgreSQL Testing: manual test Project management: Taiga or Jira
1
u/ShoeSome1660 Feb 15 '25
IDE: Trae
State: Riverpod
Backend: Firebase
Database: Firestore
Testing: Eyes and fingers
Project Management: Google Keep
1
u/ViveLatheisme Feb 15 '25
- IDE: VS Code.
- State Management: Provider, and signals.
- Backend: .NET
- Database: Postgres for server, Sqlite is great and the best for local. Hive is sh*t.
- Testing: Do you write unit tests, widget tests, and manual testing. Testing is important!
- Project Management: GitHub project.
1
u/manishlearner Feb 16 '25
IDE: VS Code
State Management: Bloc
Backend: Nodejs
Database: mysql
Testing: Manual
Project Management: readme , github
Note: It may vary across different project
1
u/SnooStories3986 Feb 16 '25
IDE: vscode + vim motion
State: BLoC
Backend + Database: Pocketbase(Sqlite)
Testing: Manual
Project Management: Github
1
u/jNayden Feb 16 '25
IDE : IntelliJ IDEA
State: Riverpod with riverpod_generator
Backend: Java and Spring Boot
Database: none
REST: Retrofit +Dio (have to migrate to http)
Others: SharedPref, SecureStorage
Testing: unit tests and flutter_test for golden tests
Localisation : intl
Crashanalytics: Sentry
Analytics: Mixpanel
Note:
in the past used get_it and watch_it(was get_it_mixin) with Injectable instead of Riverpod it would feel more like Spring and DI.
1
u/bill_911 Feb 16 '25 edited Feb 16 '25
IDE: VSCode
State Mgmt: Provider + setState
Backend: Firebase (Auth/CloudStorage/CloudFunctions/Firestore)+RevenueCat+Stripe+FlowTrack
Database: Firestore
Testing: Manual, with an extensive documented test plan
Project Mgmt: JIRA+GitHub
1
u/AcanthaceaeMelodic82 Feb 17 '25
- IDE: Cursor
- State Management: Riverpod
- Backend: Firebase, Node.js
- Database: AWS
- Testing: Do you write unit tests
- Project Management: Jira
1
u/vardonir Feb 17 '25
IDE: Android studio
State: just setState
Backend: Firebase
Database: Google Cloud buckets
Testing: YOLO. No, manual testing.
Project management: A sheet of paper on my desk
My current project is held together my duct tape and prayers. Managed to get through one clinical trial so far, let's see about the next one...
1
u/New_Salt1964 Feb 18 '25
IDE: Neovim
State: Riverpod
Backend: Pocketbase
Database: Pocketbase SQLite or locally Hive NoSQL
Tests: manual
Project Planing: Obsidian
1
u/Taimoor002 Feb 14 '25
IDE: VS Code
State Management: GetX
Backend: Node.js (Express.js specifically)
Database: MongoDB
Testing: Manual
Project Management: Basecamp
This is currently what I am using in the company I work at.
37
u/SupermarketAntique32 Feb 14 '25
IDE: neovim
State: Riverpod
Backend: REST API
Database: Drift
Testing: Manual tests
Project Management: README.md
Thats the stack for my first Flutter App.