Platform Integration

7 mins

7 mins

Sahaj Rana

Published on Jun 27, 2025

How to Build a Desktop App with Flutter

Introduction

Introduction

Introduction

Introduction

Flutter isn’t just for mobile and web, its desktop support allows you to build native apps for Windows, macOS, and Linux using the same Flutter codebase. With stable builds and growing community support, Flutter now enables cross-platform development across all major environments from a single project.

Whether you're starting a new desktop app or extending an existing mobile project, Flutter makes it seamless to compile, run, and release native desktop apps. It also supports plugin integration, allowing you to use or build custom platform-specific functionality for each desktop OS.

If you're ready to bring your app to laptops and desktops, Flutter has the tools to get you there, natively and beautifully.

Flutter isn’t just for mobile and web, its desktop support allows you to build native apps for Windows, macOS, and Linux using the same Flutter codebase. With stable builds and growing community support, Flutter now enables cross-platform development across all major environments from a single project.

Whether you're starting a new desktop app or extending an existing mobile project, Flutter makes it seamless to compile, run, and release native desktop apps. It also supports plugin integration, allowing you to use or build custom platform-specific functionality for each desktop OS.

If you're ready to bring your app to laptops and desktops, Flutter has the tools to get you there, natively and beautifully.

Flutter isn’t just for mobile and web, its desktop support allows you to build native apps for Windows, macOS, and Linux using the same Flutter codebase. With stable builds and growing community support, Flutter now enables cross-platform development across all major environments from a single project.

Whether you're starting a new desktop app or extending an existing mobile project, Flutter makes it seamless to compile, run, and release native desktop apps. It also supports plugin integration, allowing you to use or build custom platform-specific functionality for each desktop OS.

If you're ready to bring your app to laptops and desktops, Flutter has the tools to get you there, natively and beautifully.

Flutter isn’t just for mobile and web, its desktop support allows you to build native apps for Windows, macOS, and Linux using the same Flutter codebase. With stable builds and growing community support, Flutter now enables cross-platform development across all major environments from a single project.

Whether you're starting a new desktop app or extending an existing mobile project, Flutter makes it seamless to compile, run, and release native desktop apps. It also supports plugin integration, allowing you to use or build custom platform-specific functionality for each desktop OS.

If you're ready to bring your app to laptops and desktops, Flutter has the tools to get you there, natively and beautifully.

Create a New Project

Create a New Project

Create a New Project

Create a New Project

Getting started with Flutter for desktop is straightforward. You can create a new project just like any Flutter app and enable desktop support for Windows, macOS, or Linux. Here’s how to set it up:

Step 1: Set Up Desktop DevTools

Before running or building for desktop, install the appropriate development tools for your platform:

Run flutter doctor to verify your setup. If it flags missing tools for platforms you don’t plan to target, feel free to ignore the warnings.

Step 2: Disable Unused Platforms (Optional)

To disable support for platforms you’re not targeting, use the flutter config command. For example, to disable iOS:

flutter config --no-enable-ios

Other available flags include:

--no-enable-windows-desktop  
--no-enable-linux-desktop  
--no-enable-macos-desktop  
--no-enable-web  
--no-enable-android

Step 3: Restart Your IDE

After enabling or disabling platform support, restart your IDE so it can recognize the available devices

Getting started with Flutter for desktop is straightforward. You can create a new project just like any Flutter app and enable desktop support for Windows, macOS, or Linux. Here’s how to set it up:

Step 1: Set Up Desktop DevTools

Before running or building for desktop, install the appropriate development tools for your platform:

Run flutter doctor to verify your setup. If it flags missing tools for platforms you don’t plan to target, feel free to ignore the warnings.

Step 2: Disable Unused Platforms (Optional)

To disable support for platforms you’re not targeting, use the flutter config command. For example, to disable iOS:

flutter config --no-enable-ios

Other available flags include:

--no-enable-windows-desktop  
--no-enable-linux-desktop  
--no-enable-macos-desktop  
--no-enable-web  
--no-enable-android

Step 3: Restart Your IDE

After enabling or disabling platform support, restart your IDE so it can recognize the available devices

Getting started with Flutter for desktop is straightforward. You can create a new project just like any Flutter app and enable desktop support for Windows, macOS, or Linux. Here’s how to set it up:

Step 1: Set Up Desktop DevTools

Before running or building for desktop, install the appropriate development tools for your platform:

Run flutter doctor to verify your setup. If it flags missing tools for platforms you don’t plan to target, feel free to ignore the warnings.

Step 2: Disable Unused Platforms (Optional)

To disable support for platforms you’re not targeting, use the flutter config command. For example, to disable iOS:

flutter config --no-enable-ios

Other available flags include:

--no-enable-windows-desktop  
--no-enable-linux-desktop  
--no-enable-macos-desktop  
--no-enable-web  
--no-enable-android

Step 3: Restart Your IDE

After enabling or disabling platform support, restart your IDE so it can recognize the available devices

Getting started with Flutter for desktop is straightforward. You can create a new project just like any Flutter app and enable desktop support for Windows, macOS, or Linux. Here’s how to set it up:

Step 1: Set Up Desktop DevTools

Before running or building for desktop, install the appropriate development tools for your platform:

Run flutter doctor to verify your setup. If it flags missing tools for platforms you don’t plan to target, feel free to ignore the warnings.

Step 2: Disable Unused Platforms (Optional)

To disable support for platforms you’re not targeting, use the flutter config command. For example, to disable iOS:

flutter config --no-enable-ios

Other available flags include:

--no-enable-windows-desktop  
--no-enable-linux-desktop  
--no-enable-macos-desktop  
--no-enable-web  
--no-enable-android

Step 3: Restart Your IDE

After enabling or disabling platform support, restart your IDE so it can recognize the available devices

Create and Run

Create and Run

Create and Run

Create and Run

Creating and running a desktop app in Flutter is just as easy as building for mobile or web. Once desktop support is enabled and your environment is properly configured, the process is seamless.

Create and Run Your Flutter Desktop App

🆕 Create a New Project

Use the Flutter CLI to create a new project:

flutter create my_desktop_app
cd my_desktop_app

This command generates a project structure that already includes desktop folders (windows/, macos/, or linux/If desktop support is enabled.

▶️ Run Your Desktop App

You can now run the app on your desktop platform:

flutter run -d windows    # For Windows  
flutter run -d macos      # For macOS  
flutter run -d linux      # For Linux

Alternatively, use your preferred IDE (like VS Code or Android Studio) and select the desktop device in the device selector dropdown before running.

Running your Flutter app on desktop works just like it does on mobile—hot reload, debugger, and everything else is ready to go. Up next, let’s look at how to build a release version for production.

Creating and running a desktop app in Flutter is just as easy as building for mobile or web. Once desktop support is enabled and your environment is properly configured, the process is seamless.

Create and Run Your Flutter Desktop App

🆕 Create a New Project

Use the Flutter CLI to create a new project:

flutter create my_desktop_app
cd my_desktop_app

This command generates a project structure that already includes desktop folders (windows/, macos/, or linux/If desktop support is enabled.

▶️ Run Your Desktop App

You can now run the app on your desktop platform:

flutter run -d windows    # For Windows  
flutter run -d macos      # For macOS  
flutter run -d linux      # For Linux

Alternatively, use your preferred IDE (like VS Code or Android Studio) and select the desktop device in the device selector dropdown before running.

Running your Flutter app on desktop works just like it does on mobile—hot reload, debugger, and everything else is ready to go. Up next, let’s look at how to build a release version for production.

Creating and running a desktop app in Flutter is just as easy as building for mobile or web. Once desktop support is enabled and your environment is properly configured, the process is seamless.

Create and Run Your Flutter Desktop App

🆕 Create a New Project

Use the Flutter CLI to create a new project:

flutter create my_desktop_app
cd my_desktop_app

This command generates a project structure that already includes desktop folders (windows/, macos/, or linux/If desktop support is enabled.

▶️ Run Your Desktop App

You can now run the app on your desktop platform:

flutter run -d windows    # For Windows  
flutter run -d macos      # For macOS  
flutter run -d linux      # For Linux

Alternatively, use your preferred IDE (like VS Code or Android Studio) and select the desktop device in the device selector dropdown before running.

Running your Flutter app on desktop works just like it does on mobile—hot reload, debugger, and everything else is ready to go. Up next, let’s look at how to build a release version for production.

Creating and running a desktop app in Flutter is just as easy as building for mobile or web. Once desktop support is enabled and your environment is properly configured, the process is seamless.

Create and Run Your Flutter Desktop App

🆕 Create a New Project

Use the Flutter CLI to create a new project:

flutter create my_desktop_app
cd my_desktop_app

This command generates a project structure that already includes desktop folders (windows/, macos/, or linux/If desktop support is enabled.

▶️ Run Your Desktop App

You can now run the app on your desktop platform:

flutter run -d windows    # For Windows  
flutter run -d macos      # For macOS  
flutter run -d linux      # For Linux

Alternatively, use your preferred IDE (like VS Code or Android Studio) and select the desktop device in the device selector dropdown before running.

Running your Flutter app on desktop works just like it does on mobile—hot reload, debugger, and everything else is ready to go. Up next, let’s look at how to build a release version for production.

Using an IDE

Using an IDE

Using an IDE

Using an IDE

Once you've configured your environment to support desktop platforms, your IDE becomes a powerful tool to create, run, and debug your Flutter desktop applications—no additional setup required.

Using an IDE to Build for Desktop

Restart Your IDE

If your IDE (such as Visual Studio Code or Android Studio) was already running before you enabled desktop support, restart it to detect the new desktop devices.

Create a New App in the IDE

When you create a new Flutter project using the IDE’s project wizard, it automatically includes support for:

  • iOS

  • Android

  • Web

  • Windows, macOS, and Linux (if enabled)

Run Your Desktop App from the IDE

  1. Open your newly created Flutter project.

  2. From the device dropdown (top toolbar), select a desktop platform such as Windows (desktop), macOS (desktop), or Linux (desktop).

  3. Click the Run button or use the shortcut to launch the app.

✅ That’s it—your Flutter app should now launch natively on your desktop environment!

Using the IDE streamlines desktop development with access to hot reload, debugging, and terminal output, just like mobile or web projects.

Once you've configured your environment to support desktop platforms, your IDE becomes a powerful tool to create, run, and debug your Flutter desktop applications—no additional setup required.

Using an IDE to Build for Desktop

Restart Your IDE

If your IDE (such as Visual Studio Code or Android Studio) was already running before you enabled desktop support, restart it to detect the new desktop devices.

Create a New App in the IDE

When you create a new Flutter project using the IDE’s project wizard, it automatically includes support for:

  • iOS

  • Android

  • Web

  • Windows, macOS, and Linux (if enabled)

Run Your Desktop App from the IDE

  1. Open your newly created Flutter project.

  2. From the device dropdown (top toolbar), select a desktop platform such as Windows (desktop), macOS (desktop), or Linux (desktop).

  3. Click the Run button or use the shortcut to launch the app.

✅ That’s it—your Flutter app should now launch natively on your desktop environment!

Using the IDE streamlines desktop development with access to hot reload, debugging, and terminal output, just like mobile or web projects.

Once you've configured your environment to support desktop platforms, your IDE becomes a powerful tool to create, run, and debug your Flutter desktop applications—no additional setup required.

Using an IDE to Build for Desktop

Restart Your IDE

If your IDE (such as Visual Studio Code or Android Studio) was already running before you enabled desktop support, restart it to detect the new desktop devices.

Create a New App in the IDE

When you create a new Flutter project using the IDE’s project wizard, it automatically includes support for:

  • iOS

  • Android

  • Web

  • Windows, macOS, and Linux (if enabled)

Run Your Desktop App from the IDE

  1. Open your newly created Flutter project.

  2. From the device dropdown (top toolbar), select a desktop platform such as Windows (desktop), macOS (desktop), or Linux (desktop).

  3. Click the Run button or use the shortcut to launch the app.

✅ That’s it—your Flutter app should now launch natively on your desktop environment!

Using the IDE streamlines desktop development with access to hot reload, debugging, and terminal output, just like mobile or web projects.

Once you've configured your environment to support desktop platforms, your IDE becomes a powerful tool to create, run, and debug your Flutter desktop applications—no additional setup required.

Using an IDE to Build for Desktop

Restart Your IDE

If your IDE (such as Visual Studio Code or Android Studio) was already running before you enabled desktop support, restart it to detect the new desktop devices.

Create a New App in the IDE

When you create a new Flutter project using the IDE’s project wizard, it automatically includes support for:

  • iOS

  • Android

  • Web

  • Windows, macOS, and Linux (if enabled)

Run Your Desktop App from the IDE

  1. Open your newly created Flutter project.

  2. From the device dropdown (top toolbar), select a desktop platform such as Windows (desktop), macOS (desktop), or Linux (desktop).

  3. Click the Run button or use the shortcut to launch the app.

✅ That’s it—your Flutter app should now launch natively on your desktop environment!

Using the IDE streamlines desktop development with access to hot reload, debugging, and terminal output, just like mobile or web projects.

From the Command Line

From the Command Line

From the Command Line

From the Command Line

Prefer the terminal over an IDE? Flutter makes it easy to create and run desktop applications entirely from the command line, perfect for scripting, CI/CD, or minimal setups.

Create a New Flutter App with Desktop Support

To generate a new Flutter project that supports mobile, web, and desktop platforms, run:

flutter create my_app
cd my_app

This creates the full project structure, including folders for desktop platforms like windows/, macos/, and linux/If they are enabled in your config.

Run the App on Desktop from Terminal

From the root of your project directory, use the following commands to run your app on a specific desktop platform:

flutter run -d windows  # For Windows
flutter run -d macos    # For macOS
flutter run -d linux    # For Linux

Make sure your system has the required desktop build tools installed and that flutter doctor shows desktop support is enabled.

Running from the terminal gives you the same benefits as an IDE: hot reload, error logs, and full control, right from your shell.

Prefer the terminal over an IDE? Flutter makes it easy to create and run desktop applications entirely from the command line, perfect for scripting, CI/CD, or minimal setups.

Create a New Flutter App with Desktop Support

To generate a new Flutter project that supports mobile, web, and desktop platforms, run:

flutter create my_app
cd my_app

This creates the full project structure, including folders for desktop platforms like windows/, macos/, and linux/If they are enabled in your config.

Run the App on Desktop from Terminal

From the root of your project directory, use the following commands to run your app on a specific desktop platform:

flutter run -d windows  # For Windows
flutter run -d macos    # For macOS
flutter run -d linux    # For Linux

Make sure your system has the required desktop build tools installed and that flutter doctor shows desktop support is enabled.

Running from the terminal gives you the same benefits as an IDE: hot reload, error logs, and full control, right from your shell.

Prefer the terminal over an IDE? Flutter makes it easy to create and run desktop applications entirely from the command line, perfect for scripting, CI/CD, or minimal setups.

Create a New Flutter App with Desktop Support

To generate a new Flutter project that supports mobile, web, and desktop platforms, run:

flutter create my_app
cd my_app

This creates the full project structure, including folders for desktop platforms like windows/, macos/, and linux/If they are enabled in your config.

Run the App on Desktop from Terminal

From the root of your project directory, use the following commands to run your app on a specific desktop platform:

flutter run -d windows  # For Windows
flutter run -d macos    # For macOS
flutter run -d linux    # For Linux

Make sure your system has the required desktop build tools installed and that flutter doctor shows desktop support is enabled.

Running from the terminal gives you the same benefits as an IDE: hot reload, error logs, and full control, right from your shell.

Prefer the terminal over an IDE? Flutter makes it easy to create and run desktop applications entirely from the command line, perfect for scripting, CI/CD, or minimal setups.

Create a New Flutter App with Desktop Support

To generate a new Flutter project that supports mobile, web, and desktop platforms, run:

flutter create my_app
cd my_app

This creates the full project structure, including folders for desktop platforms like windows/, macos/, and linux/If they are enabled in your config.

Run the App on Desktop from Terminal

From the root of your project directory, use the following commands to run your app on a specific desktop platform:

flutter run -d windows  # For Windows
flutter run -d macos    # For macOS
flutter run -d linux    # For Linux

Make sure your system has the required desktop build tools installed and that flutter doctor shows desktop support is enabled.

Running from the terminal gives you the same benefits as an IDE: hot reload, error logs, and full control, right from your shell.

Build a Release App

Build a Release App

Build a Release App

Build a Release App

Once your Flutter desktop app is ready for production, the next step is to build a release version. A release build is optimized for performance and free of debug tools or extra overhead.

Generate a Release Build

Use the following commands based on your target desktop platform:

flutter build windows   # For Windows
flutter build macos     # For macOS
flutter build linux     # For Linux

This command compiles your app into a native executable, suitable for deployment or distribution.

Where to Find the Release Output

After building, the output binary is placed in the corresponding platform directory under /build:

  • Windows: build/windows/runner/Release/

  • macOS: build/macos/Build/Products/Release/

  • Linux: build/linux/x64/release/bundle

📝 Make sure all platform-specific dependencies (e.g., Visual Studio on Windows) are properly installed to avoid build errors.

With your release build ready, you can now distribute your app to users just like any other native desktop application.

Once your Flutter desktop app is ready for production, the next step is to build a release version. A release build is optimized for performance and free of debug tools or extra overhead.

Generate a Release Build

Use the following commands based on your target desktop platform:

flutter build windows   # For Windows
flutter build macos     # For macOS
flutter build linux     # For Linux

This command compiles your app into a native executable, suitable for deployment or distribution.

Where to Find the Release Output

After building, the output binary is placed in the corresponding platform directory under /build:

  • Windows: build/windows/runner/Release/

  • macOS: build/macos/Build/Products/Release/

  • Linux: build/linux/x64/release/bundle

📝 Make sure all platform-specific dependencies (e.g., Visual Studio on Windows) are properly installed to avoid build errors.

With your release build ready, you can now distribute your app to users just like any other native desktop application.

Once your Flutter desktop app is ready for production, the next step is to build a release version. A release build is optimized for performance and free of debug tools or extra overhead.

Generate a Release Build

Use the following commands based on your target desktop platform:

flutter build windows   # For Windows
flutter build macos     # For macOS
flutter build linux     # For Linux

This command compiles your app into a native executable, suitable for deployment or distribution.

Where to Find the Release Output

After building, the output binary is placed in the corresponding platform directory under /build:

  • Windows: build/windows/runner/Release/

  • macOS: build/macos/Build/Products/Release/

  • Linux: build/linux/x64/release/bundle

📝 Make sure all platform-specific dependencies (e.g., Visual Studio on Windows) are properly installed to avoid build errors.

With your release build ready, you can now distribute your app to users just like any other native desktop application.

Once your Flutter desktop app is ready for production, the next step is to build a release version. A release build is optimized for performance and free of debug tools or extra overhead.

Generate a Release Build

Use the following commands based on your target desktop platform:

flutter build windows   # For Windows
flutter build macos     # For macOS
flutter build linux     # For Linux

This command compiles your app into a native executable, suitable for deployment or distribution.

Where to Find the Release Output

After building, the output binary is placed in the corresponding platform directory under /build:

  • Windows: build/windows/runner/Release/

  • macOS: build/macos/Build/Products/Release/

  • Linux: build/linux/x64/release/bundle

📝 Make sure all platform-specific dependencies (e.g., Visual Studio on Windows) are properly installed to avoid build errors.

With your release build ready, you can now distribute your app to users just like any other native desktop application.

Add desktop support to an existing Flutter app

Add desktop support to an existing Flutter app

Add desktop support to an existing Flutter app

Add desktop support to an existing Flutter app

Already have a Flutter project built for mobile or web? Good news—you can easily add desktop support without starting over. Flutter provides a simple command to generate the required files for Windows, macOS, and Linux.

Add Desktop Platforms

From the root directory of your existing Flutter project, run:

flutter create --platforms=windows,macos,linux

📌 Don’t miss the period (.) at the end—it tells Flutter to apply the changes to the current project folder.

Target Specific Platforms

If you only want to enable certain desktop platforms, adjust the --platforms list accordingly. For example:

This command will only add Windows support, leaving other desktop files untouched.

📁 What It Adds

Running this command creates the appropriate folders:

  • windows/

  • macos/

  • linux/

These include platform-specific build files, runners, and configuration needed to compile your app on desktop systems.

With these files in place, you can now run, build, and test your existing Flutter app on desktop—no major code rewrites required.

Already have a Flutter project built for mobile or web? Good news—you can easily add desktop support without starting over. Flutter provides a simple command to generate the required files for Windows, macOS, and Linux.

Add Desktop Platforms

From the root directory of your existing Flutter project, run:

flutter create --platforms=windows,macos,linux

📌 Don’t miss the period (.) at the end—it tells Flutter to apply the changes to the current project folder.

Target Specific Platforms

If you only want to enable certain desktop platforms, adjust the --platforms list accordingly. For example:

This command will only add Windows support, leaving other desktop files untouched.

📁 What It Adds

Running this command creates the appropriate folders:

  • windows/

  • macos/

  • linux/

These include platform-specific build files, runners, and configuration needed to compile your app on desktop systems.

With these files in place, you can now run, build, and test your existing Flutter app on desktop—no major code rewrites required.

Already have a Flutter project built for mobile or web? Good news—you can easily add desktop support without starting over. Flutter provides a simple command to generate the required files for Windows, macOS, and Linux.

Add Desktop Platforms

From the root directory of your existing Flutter project, run:

flutter create --platforms=windows,macos,linux

📌 Don’t miss the period (.) at the end—it tells Flutter to apply the changes to the current project folder.

Target Specific Platforms

If you only want to enable certain desktop platforms, adjust the --platforms list accordingly. For example:

This command will only add Windows support, leaving other desktop files untouched.

📁 What It Adds

Running this command creates the appropriate folders:

  • windows/

  • macos/

  • linux/

These include platform-specific build files, runners, and configuration needed to compile your app on desktop systems.

With these files in place, you can now run, build, and test your existing Flutter app on desktop—no major code rewrites required.

Already have a Flutter project built for mobile or web? Good news—you can easily add desktop support without starting over. Flutter provides a simple command to generate the required files for Windows, macOS, and Linux.

Add Desktop Platforms

From the root directory of your existing Flutter project, run:

flutter create --platforms=windows,macos,linux

📌 Don’t miss the period (.) at the end—it tells Flutter to apply the changes to the current project folder.

Target Specific Platforms

If you only want to enable certain desktop platforms, adjust the --platforms list accordingly. For example:

This command will only add Windows support, leaving other desktop files untouched.

📁 What It Adds

Running this command creates the appropriate folders:

  • windows/

  • macos/

  • linux/

These include platform-specific build files, runners, and configuration needed to compile your app on desktop systems.

With these files in place, you can now run, build, and test your existing Flutter app on desktop—no major code rewrites required.

Plugin Support

Plugin Support

Plugin Support

Plugin Support

Flutter desktop isn't just about building UI—it also fully supports using and developing plugins, just like on mobile or web. You can integrate existing plugins that support desktop, or create your native desktop plugins using Dart and platform-specific code.

Using Desktop-Compatible Plugins

If a plugin supports your desktop target (Windows, macOS, or Linux), simply add it to your pubspec.yaml as usual:

dependencies:
  url_launcher: ^6.0.0

Flutter automatically handles linking the appropriate native implementation (like url_launcher_windows or url_launcher_macos) based on your build platform. No extra setup is needed—desktop support is built in if the plugin is federated and properly maintained.

Writing Your Plugins

When building your plugin, federated plugin architecture is recommended. Federation splits plugin support by platform, allowing different teams or contributors to manage platform-specific codebases independently.

For example:

  • url_launcher_windows handles Windows

  • url_launcher_macos handles macOS

  • All are accessed via the main url_launcher package

This structure promotes code modularity, easier testing, and collaborative development.

You can also contribute new platform implementations to existing federated plugins—just be sure to coordinate with the package maintainers on pub.dev.

📚 Recommended Resources

For deeper dives into plugin development, check out:

Samples & Codelabs

Try out these community-driven examples to learn plugin use in real-world desktop apps:

  • Wonderous App: A highly visual, animated app—clone it and run on a desktop for inspiration.

  • Flokk: Contact manager that syncs Google, GitHub, and Twitter.

  • Photo Search App: Demonstrates use of plugins in a desktop environment.

📌 Also explore Flutter’s desktop codelab to build a desktop GitHub GraphQL app step by step.

Flutter desktop isn't just about building UI—it also fully supports using and developing plugins, just like on mobile or web. You can integrate existing plugins that support desktop, or create your native desktop plugins using Dart and platform-specific code.

Using Desktop-Compatible Plugins

If a plugin supports your desktop target (Windows, macOS, or Linux), simply add it to your pubspec.yaml as usual:

dependencies:
  url_launcher: ^6.0.0

Flutter automatically handles linking the appropriate native implementation (like url_launcher_windows or url_launcher_macos) based on your build platform. No extra setup is needed—desktop support is built in if the plugin is federated and properly maintained.

Writing Your Plugins

When building your plugin, federated plugin architecture is recommended. Federation splits plugin support by platform, allowing different teams or contributors to manage platform-specific codebases independently.

For example:

  • url_launcher_windows handles Windows

  • url_launcher_macos handles macOS

  • All are accessed via the main url_launcher package

This structure promotes code modularity, easier testing, and collaborative development.

You can also contribute new platform implementations to existing federated plugins—just be sure to coordinate with the package maintainers on pub.dev.

📚 Recommended Resources

For deeper dives into plugin development, check out:

Samples & Codelabs

Try out these community-driven examples to learn plugin use in real-world desktop apps:

  • Wonderous App: A highly visual, animated app—clone it and run on a desktop for inspiration.

  • Flokk: Contact manager that syncs Google, GitHub, and Twitter.

  • Photo Search App: Demonstrates use of plugins in a desktop environment.

📌 Also explore Flutter’s desktop codelab to build a desktop GitHub GraphQL app step by step.

Flutter desktop isn't just about building UI—it also fully supports using and developing plugins, just like on mobile or web. You can integrate existing plugins that support desktop, or create your native desktop plugins using Dart and platform-specific code.

Using Desktop-Compatible Plugins

If a plugin supports your desktop target (Windows, macOS, or Linux), simply add it to your pubspec.yaml as usual:

dependencies:
  url_launcher: ^6.0.0

Flutter automatically handles linking the appropriate native implementation (like url_launcher_windows or url_launcher_macos) based on your build platform. No extra setup is needed—desktop support is built in if the plugin is federated and properly maintained.

Writing Your Plugins

When building your plugin, federated plugin architecture is recommended. Federation splits plugin support by platform, allowing different teams or contributors to manage platform-specific codebases independently.

For example:

  • url_launcher_windows handles Windows

  • url_launcher_macos handles macOS

  • All are accessed via the main url_launcher package

This structure promotes code modularity, easier testing, and collaborative development.

You can also contribute new platform implementations to existing federated plugins—just be sure to coordinate with the package maintainers on pub.dev.

📚 Recommended Resources

For deeper dives into plugin development, check out:

Samples & Codelabs

Try out these community-driven examples to learn plugin use in real-world desktop apps:

  • Wonderous App: A highly visual, animated app—clone it and run on a desktop for inspiration.

  • Flokk: Contact manager that syncs Google, GitHub, and Twitter.

  • Photo Search App: Demonstrates use of plugins in a desktop environment.

📌 Also explore Flutter’s desktop codelab to build a desktop GitHub GraphQL app step by step.

Flutter desktop isn't just about building UI—it also fully supports using and developing plugins, just like on mobile or web. You can integrate existing plugins that support desktop, or create your native desktop plugins using Dart and platform-specific code.

Using Desktop-Compatible Plugins

If a plugin supports your desktop target (Windows, macOS, or Linux), simply add it to your pubspec.yaml as usual:

dependencies:
  url_launcher: ^6.0.0

Flutter automatically handles linking the appropriate native implementation (like url_launcher_windows or url_launcher_macos) based on your build platform. No extra setup is needed—desktop support is built in if the plugin is federated and properly maintained.

Writing Your Plugins

When building your plugin, federated plugin architecture is recommended. Federation splits plugin support by platform, allowing different teams or contributors to manage platform-specific codebases independently.

For example:

  • url_launcher_windows handles Windows

  • url_launcher_macos handles macOS

  • All are accessed via the main url_launcher package

This structure promotes code modularity, easier testing, and collaborative development.

You can also contribute new platform implementations to existing federated plugins—just be sure to coordinate with the package maintainers on pub.dev.

📚 Recommended Resources

For deeper dives into plugin development, check out:

Samples & Codelabs

Try out these community-driven examples to learn plugin use in real-world desktop apps:

  • Wonderous App: A highly visual, animated app—clone it and run on a desktop for inspiration.

  • Flokk: Contact manager that syncs Google, GitHub, and Twitter.

  • Photo Search App: Demonstrates use of plugins in a desktop environment.

📌 Also explore Flutter’s desktop codelab to build a desktop GitHub GraphQL app step by step.