|author||naudzghebre <email@example.com>||Sun Oct 23 22:45:43 2022 +0000|
|committer||Alexander Biggs <firstname.lastname@example.org>||Sun Oct 23 22:45:43 2022 +0000|
[flutter-embedder][keyboard] Port keyboard input functionality from flutter/engine. - Key data can be sent to the engine, but doesn't appear as text input to textfield in flutter app. - flutter/keyevent channel must be taken care of in future prs. - main.dart - I added a textinput field, but doesn't show key data right now. - brought in rapidjson as a submodule, with anticipation of using in future keyboard work. Change-Id: If8c3e95c189cae1ba1c5d99b7e035cba0a646c0c Reviewed-on: https://fuchsia-review.googlesource.com/c/flutter-embedder/+/735084 Reviewed-by: Alexander Biggs <email@example.com>
The Flutter Embedder for Fuchsia is a new in-progress runtime for Flutter apps on Fuchsia. This runtime is built on top of Flutter's embedder platform.
This repository is a work in progress and should be considered experimental.
If you're using WSL2 (Windows Subsystem for Linux), see SETUP_WINDOWS.md first.
$FUCHSIA_EMBEDDER_DIR to your flutter-embedder.git checkout location, for example
Bootstrap the repository's dependencies:
This script initializes tools (including
ffx), installs some Git hooks and downloads the
workstation_eng.qemu-x64 product bundle, which you can use to run the examples below.
Start the emulator.
If running in a graphical environment:
$FUCHSIA_EMBEDDER_DIR/tools/ffx emu start workstation_eng.qemu-x64
If running in a terminal environment:
$FUCHSIA_EMBEDDER_DIR/tools/ffx emu start --headless workstation_eng.qemu-x64
The workflow below also supports Fuchsia builds from source that are within Fuchsia's SDK compatibility window (six weeks).
Set the default target in ffx to be
$FUCHSIA_EMBEDDER_DIR/tools/ffx target default set fuchsia-emulator
Run an example component:
To watch logs for the example component, run:
$FUCHSIA_EMBEDDER_DIR/scripts/build_and_run_example.sh hello_flutter --log
If you want to watch all logs, run
$FUCHSIA_EMBEDDER_DIR/tools/ffx log in a separate terminal.
To watch FIDL calls for the example component, run:
$FUCHSIA_EMBEDDER_DIR/scripts/build_and_run_example.sh hello_flutter --fidl
--fidl currently requires setting
$FUCHSIA_DIR to a Fuchsia source checkout with a build in
$FUCHSIA_DIR/out/default. This directory is only used to read IR files for FIDL, you can still use the
workstation_eng.qemu-x64 product bundle with
--fidl attaches after the component has been run, so it does not pick up FIDL calls made when the component starts.
To attach a debugger to the example component, see
TODO(akbiggs): Work with Bazel SDK team to get proper support for
Running the Flutter app is handled by the Flutter Engine's embedder platform code. This code is compiled into a shared library called
libflutter_engine.so, which we can interact with using the
If you need to make changes to this Flutter Engine code (for example for testing a new API in
embedder.h with this embedder) see
making_engine_changes.md for instructions. This isn‘t required for changes to only flutter-embedder.git’s source code.