{"id":25880878,"url":"https://github.com/nerves-flutter/nerves_flutter_support","last_synced_at":"2025-10-25T07:28:38.788Z","repository":{"id":280034721,"uuid":"899692779","full_name":"nerves-flutter/nerves_flutter_support","owner":"nerves-flutter","description":"Base library for running Flutter on Nerves devices","archived":false,"fork":false,"pushed_at":"2025-02-28T20:39:55.000Z","size":50,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T23:40:22.915Z","etag":null,"topics":["elixir","embedded-linux","flutter","nerves"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nerves-flutter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-06T20:01:55.000Z","updated_at":"2025-02-28T20:39:59.000Z","dependencies_parsed_at":"2025-02-28T23:40:35.951Z","dependency_job_id":"6b17876f-7d83-4fb5-89c7-f0d4d7316a05","html_url":"https://github.com/nerves-flutter/nerves_flutter_support","commit_stats":null,"previous_names":["nerves-flutter/nerves_flutter_support"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerves-flutter%2Fnerves_flutter_support","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerves-flutter%2Fnerves_flutter_support/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerves-flutter%2Fnerves_flutter_support/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerves-flutter%2Fnerves_flutter_support/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nerves-flutter","download_url":"https://codeload.github.com/nerves-flutter/nerves_flutter_support/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241518998,"owners_count":19975580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","embedded-linux","flutter","nerves"],"created_at":"2025-03-02T14:26:10.046Z","updated_at":"2025-10-25T07:28:38.780Z","avatar_url":"https://github.com/nerves-flutter.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nerves_flutter_support\n\n![Static Badge](https://img.shields.io/badge/Flutter%20Version-v3.32.8-cyan?style=plastic\u0026labelColor=black\u0026color=blue)\n\n\u003e ⚠️ NOTE: This is a fairly new project. Functionally everything is working on _tested_ Nerves systems.\n\n## What Is This?\n\nNervesFlutterSupport is the base library for running Flutter based UI applications on Nerves devices.\n\n## Overview\n\nNervesFlutterSupport contains the following components:\n\n* Pre-compiled and patched runtime libraries for various dependencies. (See `builder/` for more info.)\n  * Including a pre-compiled version of Sony's open source [Flutter Embedder](https://github.com/sony/flutter-embedded-linux).\n* A pair of [Mix Release Steps](https://hexdocs.pm/mix/1.18.2/Mix.Tasks.Release.html#module-steps) that can be included in your existing Mix project.\n  * Takes care of downloading the Flutter [embedder](https://github.com/sony/flutter-embedded-linux) and runtime libraries.\n  * Will automatically compile your Flutter project using the `gen_snapshot` tool and output an AOT build.\n  * Will help copy the runtime artifacts from the dependency source directory to the release directory at compile time.\n* `NervesFlutterSupport.Flutter.Engine` - A module to create a [Muontrap](https://hexdocs.pm/muontrap/readme.html) child_spec for running the embedder.\n* `NervesFlutterSupport.Udev` - (Automatically started for you) A module that ensure `eudevd` is running for input devices to function properly.\n\n## Tested Platforms\n\nNervesFlutterSupport has been tested on the following platforms:\n\n* Raspberry Pi 4\n* Raspberry Pi 5\n\nHowever it should be noted that any aarch64 based Nerves System _should be compatible_ with this library.\n\nPlease file any issues if you run into any problems with your ARM64 platform. We also welcome Buildroot config contributions for other platforms.\n\n## Getting Started\n\n**Currently we only support Linux and macOS hosts when building firmware. Windows users should use WSL.**\n\n**If you are a macOS user, please ensure you have `docker` installed!**\n\n1. Install [Flutter](https://docs.flutter.dev/get-started/install). See the top of this readme file for which version to use. (Flutter versions may change with Hex package versions!)\n2. Create a new Flutter app in your Mix project using: `flutter create flutter_app`.\n3. Add this package to your `deps` in `mix.exs`.\n4. Add the release steps to your existing firmware's `steps:`:\n  ```elixir\n    steps: [\n      \u0026Nerves.Release.init/1,\n      \u0026NervesFlutterSupport.InstallRuntime.run/1, # REQUIRED!! - Add this to install runtime artifacts into the release!\n      \u0026NervesFlutterSupport.BuildFlutterApp.run/1, # OPTIONAL - Add this if you want to auto-compile a flutter app!\n      :assemble\n    ],\n  ```\n5. Run `mix firmware` as you normally would, if all is well, you should see you Flutter app build and emit a bundle into your `priv/` directory.\n6. To run the Flutter app you can add the following to your `Application` or `Supervisor` children:\n  ```elixir\n  # With no options, your Flutter app bundle is expreted to be in `priv/flutter_app`\n  NervesFlutterSupport.Flutter.Engine.create_child(\n    app_name: :my_flutter_app,\n  )\n  ```\n\n## Example Project\n\nExample Project: [NervesFlutterExample](https://github.com/nerves-flutter/nerves_flutter_example)\n\n`NervesFlutterExample` is a basic Flutter + Nerves firmware for `:rpi4` and `:rpi5` targets. It uses\ngRPC and Protobufs to communicate between the Nerves firmware code and the Dart Flutter application.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerves-flutter%2Fnerves_flutter_support","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnerves-flutter%2Fnerves_flutter_support","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerves-flutter%2Fnerves_flutter_support/lists"}