This repository contains samples to experiment with rendering into multiple views from Flutter. Some samples are aspirational and may not actually work. Some samples may require a custom engine build to run. Some samples may be outdated and/or have other issues. DO NOT DEPEND ON ANYTHING IN THIS REPOSITORY.
This sample is meant to be used with a custom (prototype) engine and framework. Currently, it only supports macOS.
-
Set up the Framework development environment: See the wiki page.
-
In the framework repo, add the prototype remote and switch to the prototype branch:
git remote add goderbauer https://github.com/goderbauer/flutter/
git checkout goderbauer/rawview
-
Set up the Engine development environment: See the wiki page.
-
In the engine repo, add the prototype remote and switch to the prototype branch:
git remote add loic-sharma https://github.com/loic-sharma/flutter-engine/
git checkout loic-sharma/multiview-prototype
- In this repo, edit
pubspec.yaml
, and add the following dependency override to use the customdart:ui
library:
dependency_overrides:
sky_engine:
path: /path/to/flutter/engine/out/host_debug_unopt/gen/dart-pkg/sky_engine
-
Build the custom engine: See the wiki page.
-
In this repo, update packages.
flutter pub get
- Run a sample file (see below for options) with the custom engine. For example,
flutter run --local-engine=host_debug_unopt -d macos -t lib/raw_dynamic.dart
- If everything goes well, the app should start up with a window, then another window after 1 second.
Renders some view-specific information into each FlutterView
available in PlatformDispatcher.views
using only APIs
exposed by dart:ui
. A new frame is only scheduled if the metrics of a FlutterView
change or if a view is
added/removed.
Renders a spinning rectangular into each FlutterView
available in PlatformDispatcher.views
using only APIs exposed
by dart:ui
. Frames are continuously scheduled to keep the animation running.
Renders some view-specific information into each FlutterView
available in PlatformDispatcher.views
using the Flutter
widget framework (package:flutter/widgets.dart
). A new frame is only scheduled if the metrics of a FlutterView
change or if a view is added/removed.
Renders a spinning rectangular into each FlutterView
available in PlatformDispatcher.views
using the Flutter
widget framework (package:flutter/widgets.dart
). Frames are continuously scheduled to keep the animation running.
Renders the Counter app (an interactive Material Design app) into each FlutterView
available in
PlatformDispatcher.views
.