Update README.md
Write down my dev workflow.
This commit is contained in:
@@ -14,3 +14,46 @@ See cli/README.md for more documentation on the library.
|
||||
|
||||
All of the interesting code is in the `library` directory. There is also
|
||||
a README.md in that directory explaining the design.
|
||||
|
||||
|
||||
## Developing
|
||||
|
||||
It's best to edit this repository from within an engine checkout. See [BUILDING_ENGINE.md](BUILDING_ENGINE.md) for instructions on how to set up an engine checkout.
|
||||
|
||||
The workflow I use involves 2-3 VSC windows:
|
||||
|
||||
1. Opening the engine 'src'.
|
||||
|
||||
In that terminal I:
|
||||
```
|
||||
cd third_party/updater
|
||||
```
|
||||
|
||||
2. To build the updater as part of the engine:
|
||||
```
|
||||
cargo ndk --target aarch64-linux-android build --release && ninja -C ../../out/android_release_arm64 && say "done"
|
||||
```
|
||||
|
||||
The cargo part *should not* be needed, but I haven't yet done the work to integrate the Rust code into the gn files for the Flutter engine yet.
|
||||
|
||||
I add `say "done"` to the end as linking can take several minutes for release Android builds.
|
||||
|
||||
3. In a second window, I open `code third_party/updater`. I do this because otherwise the rust_analyzer can't seem to find the rust code. We could fix this by adding the directory to the VSC workspace, but I'm not sure where we would put the workspace file in the first place. `src` is actually shorebirdtech/buildroot and is controlled via gclient by shorebirdtech/engine/DEPS.
|
||||
|
||||
4. In a third window I open my test app. e.g.:
|
||||
|
||||
```
|
||||
flutter create test_app
|
||||
cd test_app
|
||||
shorebird init
|
||||
shorebird release
|
||||
code .
|
||||
```
|
||||
|
||||
5. To run the test app with my local engine I use:
|
||||
|
||||
```
|
||||
flutter run --release --local-engine-src-path ~/Documents/GitHub/engine/src --local-engine android_release_arm64
|
||||
```
|
||||
|
||||
You may also need to build `out/host_release` as `flutter` looks for some Dart .dill files there and if they're not there can fail to build.
|
||||
|
||||
Reference in New Issue
Block a user