100 Best Apps for Flutter Developers
Flutter development spans coding, design, backend services, testing, release management, and observability. This first group covers foundational tools many Flutter teams evaluate.
Flutter SDK
Flutter SDK supplies the framework, command-line tools, widgets, and build system for cross-platform apps. It reduces separate platform codebases by enabling developers to target multiple platforms from one project.
Dart SDK
Dart SDK provides the language runtime, compiler, package tooling, and libraries used by Flutter projects. It gives developers a consistent language toolchain for writing, analyzing, and compiling Flutter application code.
Visual Studio Code
Visual Studio Code is a lightweight editor supporting Flutter through Dart, Flutter, debugging, and extension tooling. It helps developers edit, run, and debug projects without requiring a heavier integrated development environment.
Android Studio
Android Studio provides Android emulators, Flutter plugins, native tooling, profilers, and project debugging features. It helps Flutter developers test Android builds while accessing underlying Android configuration and diagnostic tools.
IntelliJ IDEA
IntelliJ IDEA supports Flutter and Dart development through plugins for editing, testing, debugging, and navigation. It assists teams needing advanced code navigation and refactoring across larger Flutter codebases.
Xcode
Xcode builds, signs, simulates, and distributes the iOS and macOS portions of Flutter applications. It addresses Apple-platform release requirements that cannot be completed solely through Flutter command-line tools.
DartPad
DartPad is a browser-based editor for experimenting with Dart and selected Flutter code examples. It lets developers quickly test language concepts without creating or configuring a local project.
Flutter DevTools
Flutter DevTools offers widget inspection, performance analysis, memory views, logging, and network debugging capabilities. It helps identify rendering, layout, memory, and runtime issues that are difficult to inspect visually.
Firebase
Firebase provides managed backend services including authentication, databases, storage, messaging, and application analytics. It reduces backend infrastructure work for teams needing common mobile application services quickly.
Firebase Crashlytics
Firebase Crashlytics collects crash reports and groups failures to help developers investigate application stability problems. It gives teams visibility into production crashes that users may not report with useful technical detail.
Firebase Test Lab
Firebase Test Lab runs Android and iOS application tests across hosted physical and virtual devices. It helps teams detect device-specific failures without maintaining a large internal device testing fleet.
Supabase
Supabase provides hosted Postgres databases, authentication, storage, realtime features, and server-side functions. It helps developers build backend features around relational data without operating database infrastructure themselves.
Appwrite
Appwrite is a backend platform offering authentication, databases, storage, functions, and messaging-oriented application services. It gives Flutter teams a self-hostable option for common backend capabilities and user management.
RevenueCat
RevenueCat manages in-app purchase entitlements, subscription status, and store purchase integrations across mobile platforms. It simplifies subscription logic by reducing direct handling of differing App Store and Google Play workflows.
Codemagic
Codemagic is a continuous integration and delivery service designed to build, test, sign, and publish apps. It automates repetitive release pipelines that can otherwise require manual signing and platform-specific build setup.
Bitrise
Bitrise provides mobile-focused continuous integration workflows for building, testing, and distributing application releases. It helps teams standardize mobile builds across contributors and reduce errors from local machine configuration.
GitHub
GitHub hosts Git repositories and provides pull requests, issue tracking, code review, and automation workflows. It organizes source changes and review discussions when multiple contributors work on the same Flutter project.
GitLab
GitLab combines Git repository hosting with issue tracking, merge requests, continuous integration, and security tooling. It helps teams manage code and delivery workflows within a single integrated development platform.
Postman
Postman lets developers create, send, document, test, and share requests for HTTP-based application programming interfaces. It makes backend endpoint behavior easier to verify before connecting Flutter screens to live services.
Insomnia
Insomnia is an API client for designing, sending, organizing, and testing REST, GraphQL, and gRPC requests. It helps developers reproduce API responses and diagnose integration errors outside the mobile application.
Figma
Figma is a collaborative design tool for creating interfaces, prototypes, design systems, and developer handoffs. It reduces ambiguity between product design and implementation by centralizing interface specifications and assets.
Sentry
Sentry monitors application errors and performance, providing event context, stack traces, releases, and issue grouping. It helps teams prioritize recurring production errors with diagnostic context from affected user sessions.
Shorebird
Shorebird provides code push capabilities for Flutter applications, allowing supported updates outside standard store releases. It helps teams deliver eligible Dart code fixes faster when waiting for store review is impractical.
Fastlane
Fastlane automates mobile build, signing, screenshot, metadata, and app-store deployment tasks through scripted lanes. It reduces repetitive release work and lowers the risk of inconsistent manual publishing procedures.
Android Emulator
Android Emulator simulates Android devices on a computer for running, testing, and debugging Flutter applications. It enables rapid Android testing without requiring every contributor to own multiple physical devices.
iOS Simulator
iOS Simulator runs iPhone and iPad app builds on macOS for local testing. It helps developers inspect iOS layouts and interactions without repeatedly using physical devices.
FlutterFlow
FlutterFlow is a visual development platform for building Flutter interfaces and application logic. It helps teams prototype screens faster when hand-coding every layout would slow validation.
Widgetbook
Widgetbook provides an isolated environment for cataloging, reviewing, and testing Flutter widgets. It helps teams catch widget regressions by reviewing component states outside full application flows.
Maestro
Maestro automates end-to-end mobile interface tests through declarative YAML test flows. It helps developers verify repeated user journeys without maintaining brittle platform-specific automation code.
Patrol
Patrol extends Flutter testing with native automation for permissions, notifications, and system dialogs. It helps testers cover native interactions that standard Flutter widget tests cannot directly control.
BrowserStack
BrowserStack provides cloud-based access to real devices and browsers for application testing. It helps teams test device-specific behavior without purchasing and maintaining extensive hardware collections.
LambdaTest
LambdaTest offers cloud infrastructure for testing mobile applications across devices and operating systems. It helps developers investigate compatibility issues when local devices do not represent target users.
OneSignal
OneSignal provides tools for sending push notifications and in-app messages to application users. It helps teams re-engage inactive users without building notification delivery infrastructure from scratch.
Amplitude
Amplitude analyzes product events to show how users navigate and engage with applications. It helps founders identify confusing journeys by connecting feature usage with user behavior patterns.
Mixpanel
Mixpanel tracks user events and supports analysis of funnels, retention, and product usage. It helps product teams locate drop-off points instead of relying on anecdotal user feedback.
Google Analytics
Google Analytics collects application usage data and reports audience, engagement, and conversion activity. It helps developers understand acquisition and engagement trends without manually assembling event reports.
Adjust
Adjust measures mobile marketing attribution, campaign performance, and in-app user activity. It helps teams connect installs to marketing sources when campaign results are otherwise unclear.
AppsFlyer
AppsFlyer provides mobile attribution and measurement tools for advertising campaigns and app installs. It helps marketers evaluate acquisition channels without depending solely on advertising platform reports.
Stripe
Stripe provides payment APIs and tools for accepting purchases, subscriptions, and customer payments. It helps app businesses process payments without building sensitive card-handling systems themselves.
Google AdMob
Google AdMob helps mobile publishers display ads and manage advertising monetization in applications. It helps developers add ad-supported revenue options without negotiating directly with individual advertisers.
Google Play Console
Google Play Console manages Android app publishing, release tracks, performance reports, and store listings. It helps Android teams distribute updates and review production signals from one publishing workspace.
App Store Connect
App Store Connect manages Apple app submissions, TestFlight builds, store listings, and sales reports. It helps iOS teams coordinate releases without separately tracking builds, metadata, and review status.
Google Maps Platform
Google Maps Platform provides mapping, location, geocoding, and routing services through developer APIs. It helps developers add location features without creating map data or route calculation systems.
Algolia
Algolia provides hosted search APIs for delivering fast, configurable search experiences in applications. It helps teams implement relevant search without operating their own indexing and query infrastructure.
Drift
Drift is a Dart library for reactive SQLite persistence and type-safe database queries. It helps developers manage local relational data without writing repetitive database mapping code.
Hive
Hive is a lightweight Dart database for storing local key-value data in Flutter applications. It helps apps persist simple offline settings and cached data without a complex relational database.
Isar
Isar is a local database for storing and querying structured data in Flutter apps. It helps developers support offline data access without depending on a network connection for every query.
SQLite
SQLite is an embedded relational database engine commonly used for local application data storage. It helps developers organize structured offline records without requiring a separate database server.
Bloc
Bloc is a Flutter state-management library built around events, states, and predictable business logic. It helps teams separate interface code from application logic as features become more complex.
Riverpod
Riverpod is a Dart state-management framework for exposing, composing, and testing application state. It helps developers share dependable state across widgets without tightly coupling business logic to context.
Provider
Provider is a Flutter state-management package that exposes shared objects through the widget tree. It reduces repetitive parameter passing when multiple widgets need access to the same application state.
GetX
GetX provides state management, dependency injection, and navigation utilities for Flutter applications. It helps developers consolidate common app architecture tasks instead of wiring separate libraries together.
MobX
MobX brings reactive state management to Flutter through observable values, actions, and computed properties. It addresses manual UI update logic by rebuilding dependent interfaces when observed state changes.
Redux
Redux manages application state through a centralized store, actions, reducers, and predictable updates. It helps teams trace complex state changes by enforcing a consistent unidirectional data-flow pattern.
Freezed
Freezed generates immutable Dart models, union types, equality methods, and copyWith helpers. It reduces boilerplate when developers need reliable immutable data structures and typed state variants.
json_serializable
json_serializable generates Dart code for converting typed model objects to and from JSON. It prevents repetitive parsing code and lowers errors when integrating JSON-based APIs.
Dio
Dio is a Dart HTTP client supporting interceptors, request cancellation, uploads, downloads, and configuration. It gives API-heavy apps reusable networking controls beyond basic request-and-response handling.
http
http is a Dart package for sending HTTP requests and working with web responses. It solves the need for a lightweight, familiar client when calling REST endpoints.
Chopper
Chopper is a Dart HTTP client generator for defining typed API services and converters. It reduces handwritten endpoint code for developers maintaining structured service-layer API integrations.
Retrofit
Retrofit generates type-safe Dart REST clients from annotated abstract classes and endpoint declarations. It helps keep API interfaces consistent while reducing repetitive request implementation work.
go_router
go_router is a Flutter routing package supporting declarative routes, deep links, and redirects. It simplifies navigation logic for apps with nested screens, browser URLs, or authentication guards.
auto_route
auto_route generates strongly typed Flutter routing code from route configuration annotations. It reduces navigation boilerplate and catches route argument mistakes earlier during development.
Beamer
Beamer is a Flutter routing package built around URL-based navigation and nested route locations. It helps developers manage complex web-style navigation without manually synchronizing browser URLs.
flutter_secure_storage
flutter_secure_storage stores sensitive key-value data using platform-specific secure storage mechanisms. It protects credentials and tokens better than storing sensitive values in ordinary preferences.
shared_preferences
shared_preferences persists simple primitive key-value settings across app launches on supported platforms. It handles lightweight preferences such as themes and onboarding flags without database setup.
sqflite
sqflite provides Flutter access to SQLite databases with transactions, queries, and migrations. It gives offline-first apps structured local persistence when simple key-value storage is insufficient.
ObjectBox
ObjectBox is an object-oriented database for storing and querying local app data. It helps developers model local data without writing extensive SQL query and mapping code.
Realm
Realm provides an object database and synchronization options for mobile application data. It reduces data persistence complexity when applications need object-based local storage and synchronization.
AWS Amplify
AWS Amplify provides Flutter libraries for connecting apps to selected AWS cloud services. It helps teams integrate authentication, storage, and backend resources through Flutter-focused tooling.
Firebase Authentication
Firebase Authentication provides SDKs for implementing user sign-in methods and identity management. It speeds up account creation flows by handling common authentication providers and session management.
Firebase Cloud Messaging
Firebase Cloud Messaging delivers push notifications and data messages to supported client applications. It enables timely user communication without building and operating a custom messaging delivery system.
Cloud Firestore
Cloud Firestore is a cloud-hosted document database with real-time listeners and offline support. It supports synchronized app data without requiring developers to build real-time database infrastructure.
Firebase Remote Config
Firebase Remote Config lets teams change app parameters remotely using configurable value conditions. It helps adjust feature behavior without requiring every configuration change to await an app release.
Firebase Performance Monitoring
Firebase Performance Monitoring collects performance data for app startup, screens, and network requests. It helps identify slow user experiences by surfacing runtime performance signals from released apps.
Firebase App Distribution
Firebase App Distribution distributes pre-release mobile builds to testers and gathers installation feedback. It streamlines tester access to development builds before submitting applications to public stores.
Firebase Storage
Firebase Storage stores and serves user-generated files through scalable cloud storage integrated with FlutterFire. It helps teams avoid building custom upload infrastructure for images, videos, and other app assets.
Cloud Functions for Firebase
Cloud Functions for Firebase runs backend code triggered by Firebase events, HTTPS requests, or scheduled jobs. It removes the need to operate servers for tasks such as notifications, data processing, and integrations.
FlutterFire CLI
FlutterFire CLI configures Firebase projects and generates platform-specific configuration files for Flutter applications. It reduces manual configuration errors when connecting one Flutter codebase to multiple Firebase platforms.
Mason
Mason generates files from reusable templates, called bricks, for consistent Dart and Flutter project scaffolding. It reduces repetitive setup when teams create features, models, tests, or standardized project structures.
Melos
Melos manages Dart and Flutter monorepos by coordinating packages, scripts, versions, and workspace commands. It simplifies maintaining shared packages when multiple apps or libraries live in one repository.
Very Good CLI
Very Good CLI scaffolds Flutter projects and features using opinionated templates and development conventions. It gives developers a structured starting point instead of repeatedly configuring project foundations manually.
FlutterGen
FlutterGen generates type-safe Dart references for assets, fonts, colors, and other project resources. It prevents fragile string-based asset paths and catches missing resources earlier during development.
build_runner
build_runner executes Dart code generators for tasks such as serialization, immutable models, and asset generation. It automates generated-source maintenance so developers do not manually write repetitive supporting code.
flutter_lints
flutter_lints provides recommended static-analysis rules for identifying common issues in Flutter and Dart code. It establishes consistent code-quality checks without requiring teams to assemble a lint configuration from scratch.
DCM
DCM analyzes Dart and Flutter code with additional rules, metrics, and architecture-oriented checks. It helps teams spot complex, inconsistent, or maintainability-prone code before those patterns spread.
SonarQube
SonarQube performs continuous code inspection to report bugs, vulnerabilities, code smells, and quality metrics. It centralizes code-quality feedback when teams need visibility beyond local editor diagnostics.
Codecov
Codecov collects test coverage reports and displays coverage changes across commits and pull requests. It makes untested changes visible, helping teams protect important code paths during review.
Renovate
Renovate automatically creates dependency update pull requests using configurable schedules, grouping, and version rules. It reduces the backlog of outdated packages while giving teams control over update timing.
Dependabot
Dependabot monitors project dependencies and opens pull requests for available version and security updates. It helps developers address stale or vulnerable dependencies without manually checking every package release.
CircleCI
CircleCI automates builds, tests, and deployment workflows through configurable continuous-integration pipelines. It replaces manual release checks with repeatable pipeline steps triggered by code changes.
Snyk
Snyk scans dependencies and source code to identify known vulnerabilities and security issues. It helps teams find security risks earlier instead of discovering vulnerable components after release.
FVM
FVM manages multiple Flutter SDK versions and pins projects to their required version. It prevents version drift when developers or projects need different Flutter releases locally.
Dart Frog
Dart Frog is a Dart backend framework for building HTTP APIs and server-side applications. It lets Flutter developers use familiar Dart skills when creating lightweight backend services.
Serverpod
Serverpod is a Dart server framework that generates client code and supports backend application development. It reduces client-server boilerplate for teams building Flutter apps with custom Dart backends.
flutter_local_notifications
flutter_local_notifications schedules and displays local notifications across supported mobile and desktop platforms. It simplifies reminder and alert features that must work without relying on remote push delivery.
permission_handler
permission_handler provides APIs for checking, requesting, and opening settings for device permissions. It standardizes permission flows across platforms, reducing platform-specific code around camera, location, and storage access.
image_picker
image_picker lets Flutter apps select images and videos from device galleries or cameras. It avoids writing native platform integrations for common media-selection workflows.
camera
camera provides Flutter access to device cameras for previews, captures, and video recording. It helps developers build camera-based features without implementing separate native camera interfaces.
url_launcher
url_launcher opens URLs using appropriate platform handlers, including browsers, email clients, and phone apps. It removes platform-specific work for launching external links, calls, messages, and maps.
connectivity_plus
connectivity_plus reports available network connection types across Android, iOS, web, and desktop platforms. It helps apps adapt user messaging and requests when network connectivity changes unexpectedly.
These foundational tools cover the core workflow from writing Flutter code to diagnosing and delivering mobile releases.