Clone this repo:
  1. a5cac26 [build] Add system_image property to package() by Adam Barth · 3 weeks ago master
  2. 20703f2 fix(music): Better loading UX for different device modes by David Yang · 3 weeks ago
  3. 47633bc fix(music): Always autoplay on EdgeToEdge mode by David Yang · 3 weeks ago
  4. 9e52294 feat(concert): Use link data for concert location by David Yang · 3 weeks ago
  5. a3f7ab0 feat(concerts): Better loading states by David Yang · 3 weeks ago

Music

Status: Experimental

What exists here mostly boilerplate for the tooling and infrastructure needed to build out the UI as a set of Flutter Widgets that can be run on Fuchsia and have the UI developed on Android.

Structure

This repo contains code for running a vanilla Flutter application (iOS & Android) and a Fuchsia specific set of modules.

  • modules: Fuchsia application code using Modular APIs.
    • music: Is a Flutter app with two entry points, one for Fuchsia and one for Vanilla Flutter.

Development

Setup

This repo is already part of the default jiri manifest.

Follow the instructions for setting up a fresh Fuchsia checkout. Once you have the jiri tool installed and have imported the default manifest and updated return to these instructions.

It is recommended you set up the Fuchsia environment helpers in scripts/env.sh:

source scripts/env.sh

Authenticate

Follow authentication instructions for Modules:

Workflow

There are Makefile tasks setup to help simplify common development tasks. Use make help to see what they are.

When you have changes you are ready to see in action you can build with:

make build

Once the system has been built you will need to run a bootserver to get it over to a connected Acer. You can use the env.sh helper to move the build from your host to the target device with:

freboot

Once that is done (it takes a while) you can run the application with:

make run

You can run on a connected android device with:

make flutter-run

Optional: In another terminal you can tail the logs

${FUCHSIA_DIR}/out/build-zircon/tools/loglistener