Giter VIP home page Giter VIP logo

flutter-desktop-embedding's Introduction

Desktop Embedding for Flutter

This project was originally created to develop Windows, macOS, and Linux embeddings of Flutter. That work has since become part of Flutter, and this project is now just an example of, and test environment for, building applications using those libraries in their current state. It also includes some experimental, early stage desktop plugins.

As explained in the link above, desktop libraries are still in early stages. The code here is not stable, nor intended for production use.

Setting Up

This project is closely tied to changes in the Flutter repository, so you must be on the latest version of the Flutter master channel. You should always update this repository and Flutter at the same time, as breaking changes for desktop happen frequently.

Tools

Run flutter doctor and be sure that no issues are reported for the sections relevant to your platform.

Running a Project

Example

Once you have everything set up, just flutter run in the example directory to run your first desktop Flutter application!

Note: Only debug mode is currently available. Running with --release will succeed, but the result will still be using a debug Flutter configuration: asserts will fire, the observatory will be enabled, etc.

Running Other Flutter Projects

See the example README for information on using the example as a starting point to run another project.

IDEs

If you want to use an IDE to run a Flutter project on desktop, you will need to have the ENABLE_FLUTTER_DESKTOP environment variable set to true in the IDE:

  • VS Code: Add the flag to dart.env in the VS Code settings.json:
    "dart.env": {
        "ENABLE_FLUTTER_DESKTOP": true,
    }
    
    • You can also attach to a desktop Flutter application launched some other way using the Debug: Attach to Flutter Process command and copying in the Observatory URI that was logged on launch.
  • IntelliJ/Android Studio: You will need to set the environment for the application using the normal process for your OS (e.g., launching it from a terminal with the environment variable set may work). You will know the variable is correctly set if the devices menu lists your machine as a device.

Repository Structure

testbed is a more complex example that is primarily intended for people actively working on Flutter for desktop. See its README for details.

The plugins directory has early-stage desktop plugins. See the README for details.

Feedback and Discussion

For bug reports and feature requests specific to the example or the plugins, you can file GitHub issues. Bugs and feature requests related to desktop support in general should be filed in the Flutter issue tracker.

For general discussion and questions there's a project mailing list.

Caveats

  • This is not an officially supported Google product.
  • The code and examples here, and the desktop Flutter libraries they use, are in early stages, and not intended for production use.

flutter-desktop-embedding's People

Contributors

stuartmorgan avatar franciscojma86 avatar awdavies avatar callumiddon avatar jonahwilliams avatar geertjohan avatar jbg avatar krisgiesing avatar xuexin avatar 0xflotus avatar devoncarew avatar clarkezone avatar johannesgh avatar laura-swe avatar pklebba avatar rashedmyt avatar vially avatar badpx avatar evilbird avatar maun avatar cloudwebrtc avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.