A development environment for Flutter and Dart projects. It provides the Flutter framework, the Dart SDK, and system dependencies for Linux desktop development. The pub package cache is persisted on the host to speed up dependency resolution across workshop updates.
A minimal workshop:
# workshop.yaml
name: flutter-app
base: ubuntu@24.04
sdks:
- name: flutter
channel: latest/stable
actions:
build: |
cd my_app && flutter build linux
run: |
cd my_app && flutter run -d linux
test: |
cd my_app && flutter testThis demonstrates a basic Flutter workflow for Linux desktop apps with persistent package caching.
- No prerequisite SDKs are required.
- Your Flutter project (with a
pubspec.yamlfile) should be in your project directory, or you can create one withflutter create. - On launch, the SDK configures
PATHfor both Flutter and Dart, installs Linux desktop build dependencies (clang, cmake, ninja, GTK), and runsflutter precacheto download platform artifacts.
Once the workshop is ready:
workshop shell
flutter create --platforms=linux my_app
cd my_app
flutter build linuxThe release binary is at
my_app/build/linux/x64/release/bundle/my_app.
workshop shell
cd my_app
flutter run -d linuxThis launches the app on the Linux desktop. A display server (X11 or Wayland)
must be available—the SDK ships with the desktop plug for this purpose.
From within the workshop shell:
workshop shell
cd my_app
flutter testworkshop shell
flutter --version
dart --version
flutter doctor -vDownloaded packages are stored in ~/.pub-cache, which is mapped to the host
via the pub-cache mount plug. Subsequent builds reuse cached packages.
To see where the pub cache is stored on the host:
workshop info- Interface:
mount - Workshop target:
/home/workshop/.pub-cache - Purpose: Persists Dart/Flutter package downloads between workshop updates.
This SDK doesn't define any slots.
- Flutter community: Flutter Community
- Workshop forum: Discourse
- Please review our Code of Conduct before participating.
All contributions, including code, documentation updates, and issue reports, are welcome!
- See
CONTRIBUTING.mdfor guidelines. - Open issues or pull requests on the official repository.
Copyright 2025 Canonical Ltd.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1 (LGPLv2.1) as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.