# Flutter

Published January 1, 2026 · Updated August 10, 2026

UI toolkit for building cross-platform apps from a single codebase

Category: Developer Tools · Free · Replaces Xojo ($499/year) · [Official website](https://flutter.dev)

## Install with Homebrew

`brew install --cask flutter`

## Quick take

Flutter 3.44 keeps Google's toolkit as the default cross-platform UI bet for teams that want one Dart codebase across mobile, desktop, and web. SPM-as-default, Agentic Hot Reload, HCPP, and Canonical-led desktop work are the August 2026 headlines. Mac desktop is better than it was, still not SwiftUI. Impeller flags on macOS and plugin migration to SwiftPM are the sharp edges. For startups shipping iOS and Android together, or enterprises standardizing internal tools across OSes, Flutter remains an A-tier choice.

Best for: Startups building iOS and Android MVPs from one team, Product teams that also need Windows/Linux/macOS from the same UI code, Mac developers escaping CocoaPods via Swift Package Manager defaults, AI-assisted mobile teams using Agentic Hot Reload and Flutter agent skills, Developers who prioritize consistent UI pixels over pure native widgets

## What is Flutter?

Flutter is Google's open-source UI toolkit for building natively compiled applications for mobile, web, and desktop from a single Dart codebase. One codebase produces an iOS app, an Android app, a web app, and a macOS/Windows/Linux desktop app. That pitch still holds in August 2026, with clearer caveats on desktop maturity and macOS rendering defaults.

Flutter works differently from React Native and other cross-platform frameworks. Instead of wrapping native UI components, Flutter renders every pixel itself using Impeller (with Skia legacy paths where still relevant). Your app can look identical on every platform because Flutter is not borrowing the platform's native buttons by default. The upside is pixel-perfect consistency. The downside is that platform idioms (iOS swipe-back, macOS menu conventions) need deliberate work.

Hot reload remains the developer-experience headline. Change code, save, and the running app updates while preserving state. Flutter 3.44 (announced 21 May 2026 at Google I/O; docs reflecting 3.44.7 by early August 2026) pushes that further with Agentic Hot Reload so coding agents can connect to a running app and hot-reload automatically, plus Dart/Flutter agent skills for common tasks.

Dart is still the language. Sound null safety, async/await, AOT native builds for production, JIT for development. The widget model (everything is a widget) has not changed; Material and Cupertino are being decoupled from the core framework so design systems can evolve independently.

On Mac specifically, 3.44 matters because Swift Package Manager is now the default for iOS and macOS (replacing CocoaPods/Ruby pain), Apple Silicon tooling no longer needs Rosetta for Flutter CLIs, and desktop multi-window APIs are advancing under Canonical's desktop stewardship. Impeller on macOS is still commonly enabled explicitly (`flutter run --enable-impeller` / FLTEnableImpeller) even as engine work moves toward making it the default. That is a frequent tripwire when people enable Flutter GPU flags and wonder why Metal paths differ from iOS defaults.

## Features

- **Hot Reload and Agentic Hot Reload.** Classic Hot Reload injects updated Dart into a running VM and rebuilds the widget tree while preserving state - usually under a second. Flutter 3.44 adds Agentic Hot Reload: MCP-connected coding agents can discover running Flutter/Dart apps and trigger hot reload automatically after they edit UI code. Pair that with Dart & Flutter Agent Skills for guided tasks like integration tests and localization.
- **Impeller Rendering Engine.** Impeller precompiles shaders to reduce runtime compilation jank and targets Metal/Vulkan backends. It is the default story on mobile; on macOS many workflows still pass `--enable-impeller` or set FLTEnableImpeller while the engine team finishes making Impeller the unquestioned default and retiring Skia. Flutter 3.44 also improves Impeller's Vulkan path and perspective/shadow correctness.
- **Swift Package Manager Default (iOS/macOS).** Starting with Flutter 3.44, Swift Package Manager replaces CocoaPods as the default dependency manager for iOS and macOS apps. The Flutter CLI migrates Xcode projects automatically so most app developers stop babysitting Ruby gem and CocoaPods installs. Plugin authors must ship Package.swift (including FlutterFramework where needed).
- **Hybrid Composition++ (HCPP) for Android.** Flutter 3.44 introduces Hybrid Composition++ as an opt-in Android platform-view mode. HCPP delegates layer compositing to the OS using Vulkan hardware buffers and SurfaceControl transactions so Flutter UI and native Android views stay in sync with less offscreen-buffer pain. Enable with `--enable-hcpp` or AndroidManifest flags; hardware/API requirements apply.
- **Single Codebase, Six Platforms.** Write once and deploy to iOS, Android, web (including Wasm paths), macOS, Windows, and Linux. Platform-adaptive widgets help match each target while you keep a custom design language where you want it. Desktop is improving under Canonical's lead maintainership, including experimental multi-window APIs, tooltips, and macOS popup windows.
- **Widget Library with Material/Cupertino Decoupling.** Flutter still ships rich Material and Cupertino widgets, but 3.44 begins decoupling those design libraries from the core framework so apps are not forced into a single bundled design system forever. Widget Previews (experimental) continue to improve for isolated UI work in IDEs.
- **Dart Language and GenUI Direction.** Dart powers Flutter with null safety, isolates, and AOT/JIT compilation modes. The 3.44 cycle highlights agentic UX direction (GenUI), Firebase AI Logic client patterns, and preview Genkit Dart for model-agnostic agentic backends - useful when Mac teams prototype AI features beside mobile targets.

## Install Flutter SDK on Mac

Installing Flutter on macOS is straightforward with Homebrew or the official install guide. Install Xcode for iOS/macOS targets and accept licenses. For Android, install Android Studio / SDK components as well.

1. **Install Homebrew (if needed).** If you don't have Homebrew, open Terminal and run the official install script from brew.sh, then follow the PATH instructions for Apple Silicon (/opt/homebrew).
2. **Install Flutter.** Run `brew install --cask flutter` for the stable channel, or follow https://docs.flutter.dev/get-started/install/macos for the zip/git workflows Google documents. Confirm `flutter --version` shows a 3.44.x stable build.
3. **Run Flutter Doctor.** Verify your installation with `flutter doctor`. Fix missing Xcode, CocoaPods remnants only if you still maintain legacy projects, Android licenses, and device connectivity. Apple Silicon hosts no longer need Rosetta for Flutter CLIs in the 3.44 line.
4. **Accept Licenses and Create a Project.** Run `flutter doctor --android-licenses` when targeting Android. For iOS/macOS, ensure Xcode is selected (`xcode-select --install` / `sudo xcode-select -s`). Create an app with `flutter create` and run on macOS with `flutter run -d macos`.

## Pros

- Single codebase deploys to iOS, Android, web, macOS, Windows, and Linux
- Hot Reload plus Agentic Hot Reload keep human and AI-assisted iteration fast
- Swift Package Manager default removes CocoaPods/Ruby friction on Mac
- Impeller path delivers smooth UI when correctly enabled per platform
- Strong Google investment with a clear 3.44 roadmap (HCPP, GenUI, desktop stewardship)
- Dart's sound null safety catches entire classes of errors at compile time

## Cons

- App bundles are larger than minimal native apps because the engine ships with the binary
- macOS desktop still feels second-class versus mobile; multi-window remains early
- Impeller-not-obvious-default on macOS confuses teams enabling Flutter GPU flags
- Platform channels/plugins still needed for many OS-specific features
- Web SEO and content sites are usually better served by traditional web stacks

## Flutter's path to a universal UI framework

How Flutter moved from mobile SDK to a 3.44-era platform spanning agents, desktop stewardship, and design-system decoupling.

## FAQ

### Is Flutter free to use?

Yes. Flutter is BSD-licensed open source with no SDK subscription. Budget separately for Apple/Google developer accounts and any cloud services you attach.

### What Flutter version should Mac developers use in August 2026?

Stay on the stable channel's 3.44.x line. Flutter 3.44.0 landed with Google I/O on 21 May 2026; documentation reflected 3.44.7 by early August 2026. Avoid outdated guides that still describe 3.2x or 3.3x as current.

### What language does Flutter use?

Dart. It offers sound null safety, async/await, isolates for background work, and compiles to native code for mobile/desktop or JS/Wasm for web.

### Does Flutter still use CocoaPods on macOS?

Not by default. Flutter 3.44 makes Swift Package Manager the default for iOS and macOS. CocoaPods remains relevant only for legacy plugins that have not added SwiftPM support.

### Is Impeller the default renderer on macOS?

Treat macOS carefully: official Impeller docs still describe enabling it with `--enable-impeller` / FLTEnableImpeller for macOS even as engine PRs move toward making it default. Mobile defaults are further along. Always verify with your exact 3.44.x patch level.

### Can Flutter build native-feeling Mac apps?

Yes for many productivity UIs, with menu, tray, and improving multi-window support. For Mac-only products that need deep document architecture, SwiftUI may still be simpler. Flutter wins when Mac is one of several targets.

### How does Agentic Hot Reload change day-to-day work?

Coding agents connected through the Dart/Flutter MCP server can edit UI code and trigger hot reload on your running app without manual reload keystrokes. It is aimed at AI-assisted teams, not a replacement for understanding the widget tree.

### How large are Flutter app binaries compared to native apps?

A minimal Flutter app is often roughly 15-20MB on iOS and smaller on Android after Play feature splits, versus a tiny native hello-world. Real apps are dominated by assets and business logic, and App Thinning / app bundles shrink what users download.

### What state management should I use?

Riverpod is a common modern default for compile-time safety. Bloc remains popular in enterprise codebases. Provider is still fine for smaller apps. Pick one approach and stay consistent.

## Sources

- [What's new in Flutter 3.44](https://flutter.dev/blog/whats-new-in-flutter-3-44)
- [Flutter 3.44.0 Release Notes](https://docs.flutter.dev/release/release-notes/release-notes-3.44.0)
- [What's new in the Flutter docs](https://docs.flutter.dev/release/whats-new)
- [Flutter Official Website](https://flutter.dev)
- [Install Flutter on macOS](https://docs.flutter.dev/get-started/install/macos)
- [Flutter announce: 3.44 stable](https://groups.google.com/g/flutter-announce/c/9KeO2B20yuU)
- [What's new in Flutter 3.35](https://flutter.dev/blog/whats-new-in-flutter-3-35)

## Related

- [Cursor](https://bundl.run/apps/cursor)
- [Claude Code](https://bundl.run/apps/claude-code)
- [ChatGPT](https://bundl.run/apps/chatgpt)
- [Claude](https://bundl.run/apps/claude)
- [Codex](https://bundl.run/apps/codex)
- [Windsurf](https://bundl.run/apps/windsurf)
- [Free alternative to Xojo](https://bundl.run/https:/)

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://bundl.run/#organization",
      "name": "Bundl.run",
      "url": "https://bundl.run",
      "logo": {
        "@type": "ImageObject",
        "url": "https://bundl.run/og-image.png",
        "width": 1200,
        "height": 630
      },
      "description": "The Ninite for Mac. Install all your essential Mac apps with one terminal command.",
      "sameAs": [
        "https://github.com/abhiofficial/bundl-mac-setup",
        "https://x.com/bundlrun",
        "https://www.producthunt.com/products/bundl-run"
      ],
      "foundingDate": "2024",
      "contactPoint": {
        "@type": "ContactPoint",
        "contactType": "customer support",
        "url": "https://bundl.run/faq"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://bundl.run/#website",
      "name": "Bundl.run",
      "url": "https://bundl.run",
      "description": "The Ninite for Mac. Install all your essential Mac apps with one terminal command.",
      "publisher": {
        "@id": "https://bundl.run/#organization"
      },
      "inLanguage": "en-US"
    },
    {
      "@type": "Person",
      "@id": "https://bundl.run/authors/alex-chen#person",
      "name": "Alex Chen",
      "jobTitle": "Senior Developer Tools Specialist",
      "url": "https://bundl.run/authors/alex-chen",
      "worksFor": {
        "@id": "https://bundl.run/#organization"
      },
      "description": "Alex Chen has been evaluating developer tools and productivity software for over 12 years, with deep expertise in code editors, terminal emulators, and development environments. As a former software engineer at several Bay Area startups, Alex brings hands-on experience with the real-world workflows these tools are meant to enhance. Alex tests each application extensively on both Intel and Apple Silicon Macs, documenting performance metrics, integration capabilities, and workflow efficiency. When not reviewing software, Alex contributes to open-source projects and writes technical tutorials for the developer community.",
      "knowsAbout": [
        "Code Editors & IDEs",
        "Terminal Emulators",
        "Version Control Tools",
        "DevOps & CI/CD",
        "API Development",
        "Performance Benchmarking"
      ],
      "image": "https://bundl.run/authors/alex-chen.svg"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://bundl.run/apps/flutter#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://bundl.run"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Apps",
          "item": "https://bundl.run/apps"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Flutter",
          "item": "https://bundl.run/apps/flutter"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://bundl.run/apps/flutter",
      "url": "https://bundl.run/apps/flutter",
      "name": "Flutter for Mac",
      "description": "UI toolkit for building cross-platform apps from a single codebase",
      "isPartOf": {
        "@id": "https://bundl.run/#website"
      },
      "publisher": {
        "@id": "https://bundl.run/#organization"
      },
      "inLanguage": "en-US",
      "datePublished": "2026-01-01T00:00:00Z",
      "dateModified": "2026-08-10T13:34:04.000Z",
      "author": {
        "@id": "https://bundl.run/authors/alex-chen#person"
      },
      "mainEntity": {
        "@id": "https://bundl.run/apps/flutter#software"
      },
      "breadcrumb": {
        "@id": "https://bundl.run/apps/flutter#breadcrumb"
      }
    },
    {
      "@type": "SoftwareApplication",
      "@id": "https://bundl.run/apps/flutter#software",
      "name": "Flutter",
      "description": "UI toolkit for building cross-platform apps from a single codebase",
      "applicationCategory": "DeveloperApplication",
      "operatingSystem": "macOS",
      "url": "https://bundl.run/apps/flutter",
      "image": {
        "@type": "ImageObject",
        "url": "https://img.logo.dev/flutter.dev",
        "caption": "Flutter app icon for Mac"
      },
      "sameAs": [
        "https://flutter.dev/",
        "https://formulae.brew.sh/cask/flutter"
      ],
      "review": {
        "@type": "Review",
        "author": {
          "@id": "https://bundl.run/authors/alex-chen#person"
        },
        "reviewBody": "Flutter 3.44 keeps Google's toolkit as the default cross-platform UI bet for teams that want one Dart codebase across mobile, desktop, and web. SPM-as-default, Agentic Hot Reload, HCPP, and Canonical-led desktop work are the August 2026 headlines. Mac desktop is better than it was, still not SwiftUI. Impeller flags on macOS and plugin migration to SwiftPM are the sharp edges. For startups shipping iOS and Android together, or enterprises standardizing internal tools across OSes, Flutter remains an A-tier choice."
      },
      "about": {
        "@type": "Thing",
        "name": "Flutter",
        "description": "UI toolkit for building cross-platform apps from a single codebase"
      },
      "isPartOf": {
        "@id": "https://bundl.run/#website"
      }
    },
    {
      "@type": "Article",
      "@id": "https://bundl.run/apps/flutter#article",
      "headline": "Flutter for Mac — Full Review & Installation Guide 2026",
      "description": "Flutter 3.44 keeps Google's toolkit as the default cross-platform UI bet for teams that want one Dart codebase across mobile, desktop, and web. SPM-as-default, Agentic Hot Reload, HCPP, and Canonical-led desktop work are the August 2026 headlines. Mac desktop is better than it was, still not SwiftUI. Impeller flags on macOS and plugin migration to SwiftPM are the sharp edges. For startups shipping iOS and Android together, or enterprises standardizing internal tools across OSes, Flutter remains an A-tier choice.",
      "image": "https://img.logo.dev/flutter.dev",
      "author": {
        "@id": "https://bundl.run/authors/alex-chen#person"
      },
      "publisher": {
        "@id": "https://bundl.run/#organization"
      },
      "datePublished": "2026-01-01T00:00:00Z",
      "dateModified": "2026-08-10T13:34:04.000Z",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://bundl.run/apps/flutter"
      },
      "articleSection": "DeveloperApplication",
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "h1",
          ".key-facts"
        ]
      },
      "about": {
        "@type": "SoftwareApplication",
        "name": "Flutter",
        "url": "https://bundl.run/apps/flutter"
      },
      "mentions": [
        {
          "@type": "SoftwareApplication",
          "name": "Xojo"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://bundl.run/apps/flutter#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Is Flutter free to use?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Flutter is BSD-licensed open source with no SDK subscription. Budget separately for Apple/Google developer accounts and any cloud services you attach."
          }
        },
        {
          "@type": "Question",
          "name": "What Flutter version should Mac developers use in August 2026?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Stay on the stable channel's 3.44.x line. Flutter 3.44.0 landed with Google I/O on 21 May 2026; documentation reflected 3.44.7 by early August 2026. Avoid outdated guides that still describe 3.2x or 3.3x as current."
          }
        },
        {
          "@type": "Question",
          "name": "What language does Flutter use?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dart. It offers sound null safety, async/await, isolates for background work, and compiles to native code for mobile/desktop or JS/Wasm for web."
          }
        },
        {
          "@type": "Question",
          "name": "Does Flutter still use CocoaPods on macOS?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Not by default. Flutter 3.44 makes Swift Package Manager the default for iOS and macOS. CocoaPods remains relevant only for legacy plugins that have not added SwiftPM support."
          }
        },
        {
          "@type": "Question",
          "name": "Is Impeller the default renderer on macOS?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Treat macOS carefully: official Impeller docs still describe enabling it with `--enable-impeller` / FLTEnableImpeller for macOS even as engine PRs move toward making it default. Mobile defaults are further along. Always verify with your exact 3.44.x patch level."
          }
        },
        {
          "@type": "Question",
          "name": "Can Flutter build native-feeling Mac apps?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes for many productivity UIs, with menu, tray, and improving multi-window support. For Mac-only products that need deep document architecture, SwiftUI may still be simpler. Flutter wins when Mac is one of several targets."
          }
        },
        {
          "@type": "Question",
          "name": "How does Agentic Hot Reload change day-to-day work?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Coding agents connected through the Dart/Flutter MCP server can edit UI code and trigger hot reload on your running app without manual reload keystrokes. It is aimed at AI-assisted teams, not a replacement for understanding the widget tree."
          }
        },
        {
          "@type": "Question",
          "name": "How large are Flutter app binaries compared to native apps?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "A minimal Flutter app is often roughly 15-20MB on iOS and smaller on Android after Play feature splits, versus a tiny native hello-world. Real apps are dominated by assets and business logic, and App Thinning / app bundles shrink what users download."
          }
        },
        {
          "@type": "Question",
          "name": "What state management should I use?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Riverpod is a common modern default for compile-time safety. Bloc remains popular in enterprise codebases. Provider is still fine for smaller apps. Pick one approach and stay consistent."
          }
        }
      ],
      "isPartOf": {
        "@id": "https://bundl.run/apps/flutter"
      }
    }
  ]
}
```