## File: README.md

# Flutter Packages

[](https://github.com/flutter/packages/actions/workflows/release.yml)
[](https://flutter-dashboard.appspot.com/#/build?repo=packages)

This repo is a companion repo to the main [flutter repo](
https://github.com/flutter/flutter). It contains the source code for Flutter's
first-party packages (i.e., packages developed by the core Flutter team).
Check the [`packages`](./packages) directory to see all packages.

These packages are also available on [pub](https://pub.dev/flutter/packages).

## Issues

Please file any issues, bugs, or feature requests in the [main flutter
repo](https://github.com/flutter/flutter/issues/new/choose).
Issues pertaining to this repository are [labeled
"package"](https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3Apackage).

## Contributing

If you wish to contribute a new package to the Flutter ecosystem, please
see the documentation for [developing packages](https://flutter.dev/to/develop-packages). You can store
your package source code in any GitHub repository (the present repo is only
intended for packages developed by the core Flutter team). Once your package
is ready you can [publish](https://flutter.dev/to/develop-packages#publish)
to the [pub repository](https://pub.dev/).

If you wish to contribute a change to any of the existing packages in this repo,
please review our [contribution guide](https://github.com/flutter/packages/blob/main/CONTRIBUTING.md),
and send a [pull request](https://github.com/flutter/packages/pulls).

## Packages

These are the packages hosted in this repository:

| Package | Pub | Points | Usage | Issues | Pull requests |
|---------|-----|--------|-------|--------|---------------|
| [animations](./packages/animations/) | [](https://pub.dev/packages/animations) | [](https://pub.dev/packages/animations/score) | [](https://pub.dev/packages/animations/score) | [](https://github.com/flutter/flutter/labels/p%3A%20animations) | [](https://github.com/flutter/packages/labels/p%3A%20animations) |
| [camera](./packages/camera/) | [](https://pub.dev/packages/camera) | [](https://pub.dev/packages/camera/score) | [](https://pub.dev/packages/camera/score) | [](https://github.com/flutter/flutter/labels/p%3A%20camera) | [](https://github.com/flutter/packages/labels/p%3A%20camera) |
| [cross\_file](./packages/cross_file/) | [](https://pub.dev/packages/cross_file) | [](https://pub.dev/packages/cross_file/score) | [](https://pub.dev/packages/cross_file/score) | [](https://github.com/flutter/flutter/labels/p%3A%20cross_file) | [](https://github.com/flutter/packages/labels/p%3A%20cross_file) |
| [cupertino\_icons](./third_party/packages/cupertino_icons/) | [](https://pub.dev/packages/cupertino_icons) | [](https://pub.dev/packages/cupertino_icons/score) | [](https://pub.dev/packages/cupertino_icons/score) | [](https://github.com/flutter/flutter/labels/p%3A%20cupertino_icons) | [](https://github.com/flutter/packages/labels/p%3A%20cupertino_icons) |
| [cupertino\_ui](./packages/cupertino_ui/) | [](https://pub.dev/packages/cupertino_ui) | [](https://pub.dev/packages/cupertino_ui/score) | [](https://pub.dev/packages/cupertino_ui/score) | [](https://github.com/flutter/flutter/labels/p%3A%20cupertino_ui) | [](https://github.com/flutter/packages/labels/p%3A%20cupertino_ui) |
| [espresso](./packages/espresso/) | [](https://pub.dev/packages/espresso) | [](https://pub.dev/packages/espresso/score) | [](https://pub.dev/packages/espresso/score) | [](https://github.com/flutter/flutter/labels/p%3A%20espresso) | [](https://github.com/flutter/packages/labels/p%3A%20espresso) |
| [extension\_google\_sign\_in\_as\_googleapis\_auth](./packages/extension_google_sign_in_as_googleapis_auth/) | [](https://pub.dev/packages/extension_google_sign_in_as_googleapis_auth) | [](https://pub.dev/packages/extension_google_sign_in_as_googleapis_auth/score) | [](https://pub.dev/packages/extension_google_sign_in_as_googleapis_auth/score) | [](https://github.com/flutter/flutter/labels/p%3A%20extension_google_sign_in_as_googleapis_auth) | [](https://github.com/flutter/packages/labels/p%3A%20extension_google_sign_in_as_googleapis_auth) |
| [file\_selector](./packages/file_selector/) | [](https://pub.dev/packages/file_selector) | [](https://pub.dev/packages/file_selector/score) | [](https://pub.dev/packages/file_selector/score) | [](https://github.com/flutter/flutter/labels/p%3A%20file_selector) | [](https://github.com/flutter/packages/labels/p%3A%20file_selector) |
| [flutter\_lints](./packages/flutter_lints/) | [](https://pub.dev/packages/flutter_lints) | [](https://pub.dev/packages/flutter_lints/score) | [](https://pub.dev/packages/flutter_lints/score) | [](https://github.com/flutter/flutter/labels/p%3A%20flutter_lints) | [](https://github.com/flutter/packages/labels/p%3A%20flutter_lints) |
| [flutter\_plugin\_android\_lifecycle](./packages/flutter_plugin_android_lifecycle/) | [](https://pub.dev/packages/flutter_plugin_android_lifecycle) | [](https://pub.dev/packages/flutter_plugin_android_lifecycle/score) | [](https://pub.dev/packages/flutter_plugin_android_lifecycle/score) | [](https://github.com/flutter/flutter/labels/p%3A%20flutter_plugin_android_lifecycle) | [](https://github.com/flutter/packages/labels/p%3A%20flutter_plugin_android_lifecycle) |
| [flutter\_svg](./third_party/packages/flutter_svg/) | [](https://pub.dev/packages/flutter_svg) | [](https://pub.dev/packages/flutter_svg/score) | [](https://pub.dev/packages/flutter_svg/score) | [](https://github.com/flutter/flutter/labels/p%3A%20flutter_svg) | [](https://github.com/flutter/packages/labels/p%3A%20flutter_svg) |
| [flutter\_svg\_test](./third_party/packages/flutter_svg_test/) | [](https://pub.dev/packages/flutter_svg_test) | [](https://pub.dev/packages/flutter_svg_test/score) | [](https://pub.dev/packages/flutter_svg_test/score) | [](https://github.com/flutter/flutter/labels/p%3A%20flutter_svg_test) | [](https://github.com/flutter/packages/labels/p%3A%20flutter_svg_test) |
| [go\_router](./packages/go_router/) | [](https://pub.dev/packages/go_router) | [](https://pub.dev/packages/go_router/score) | [](https://pub.dev/packages/go_router/score) | [](https://github.com/flutter/flutter/labels/p%3A%20go_router) | [](https://github.com/flutter/packages/labels/p%3A%20go_router) |
| [go\_router\_builder](./packages/go_router_builder/) | [](https://pub.dev/packages/go_router_builder) | [](https://pub.dev/packages/go_router_builder/score) | [](https://pub.dev/packages/go_router_builder/score) | [](https://github.com/flutter/flutter/labels/p%3A%20go_router_builder) | [](https://github.com/flutter/packages/labels/p%3A%20go_router_builder) |
| [google\_adsense](./packages/google_adsense/)| [](https://pub.dev/packages/google_adsense) | [](https://pub.dev/packages/google_adsense/score) | [](https://pub.dev/packages/google_adsense/score) | [](https://github.com/flutter/flutter/labels/p%3A%20google_adsense) | [](https://github.com/flutter/packages/labels/p%3A%20google_adsense) |
| [google\_fonts](./packages/google_fonts/) | [](https://pub.dev/packages/google_fonts) | [](https://pub.dev/packages/google_fonts/score) | [](https://pub.dev/packages/google_fonts/score) | [](https://github.com/flutter/flutter/labels/p%3A%20google_fonts) | [](https://github.com/flutter/packages/labels/p%3A%20google_fonts) |
| [google\_maps\_flutter](./packages/google_maps_flutter/) | [](https://pub.dev/packages/google_maps_flutter) | [](https://pub.dev/packages/google_maps_flutter/score) | [](https://pub.dev/packages/google_maps_flutter/score) | [](https://github.com/flutter/flutter/labels/p%3A%20maps) | [](https://github.com/flutter/packages/labels/p%3A%20google_maps_flutter) |
| [google\_sign\_in](./packages/google_sign_in/) | [](https://pub.dev/packages/google_sign_in) | [](https://pub.dev/packages/google_sign_in/score) | [](https://pub.dev/packages/google_sign_in/score) | [](https://github.com/flutter/flutter/labels/p%3A%20google_sign_in) | [](https://github.com/flutter/packages/labels/p%3A%20google_sign_in) |
| [image\_picker](./packages/image_picker/) | [](https://pub.dev/packages/image_picker) | [](https://pub.dev/packages/image_picker/score) | [](https://pub.dev/packages/image_picker/score) | [](https://github.com/flutter/flutter/labels/p%3A%20image_picker) | [](https://github.com/flutter/packages/labels/p%3A%20image_picker) |
| [interactive\_media\_ads](./packages/interactive_media_ads/) | [](https://pub.dev/packages/interactive_media_ads) | [](https://pub.dev/packages/interactive_media_ads/score) | [](https://pub.dev/packages/interactive_media_ads/score) | [](https://github.com/flutter/flutter/labels/p%3A%20interactive_media_ads) | [](https://github.com/flutter/packages/labels/p%3A%20interactive_media_ads) |
| [in\_app\_purchase](./packages/in_app_purchase/) | [](https://pub.dev/packages/in_app_purchase) | [](https://pub.dev/packages/in_app_purchase/score) | [](https://pub.dev/packages/in_app_purchase/score) | [](https://github.com/flutter/flutter/labels/p%3A%20in_app_purchase) | [](https://github.com/flutter/packages/labels/p%3A%20in_app_purchase) |
| [local\_auth](./packages/local_auth/) | [](https://pub.dev/packages/local_auth) | [](https://pub.dev/packages/local_auth/score) | [](https://pub.dev/packages/local_auth/score) | [](https://github.com/flutter/flutter/labels/p%3A%20local_auth) | [](https://github.com/flutter/packages/labels/p%3A%20local_auth) |
| [material\_ui](./packages/material_ui/) | [](https://pub.dev/packages/material_ui) | [](https://pub.dev/packages/material_ui/score) | [](https://pub.dev/packages/material_ui/score) | [](https://github.com/flutter/flutter/labels/p%3A%20material_ui) | [](https://github.com/flutter/packages/labels/p%3A%20material_ui) |
| [metrics\_center](./packages/metrics_center/) | [](https://pub.dev/packages/metrics_center) | [](https://pub.dev/packages/metrics_center/score) | [](https://pub.dev/packages/metrics_center/score) | [](https://github.com/flutter/flutter/labels/p%3A%20metrics_center) | [](https://github.com/flutter/packages/labels/p%3A%20metrics_center) |
| [path\_parsing](./third_party/packages/path_parsing/) | [](https://pub.dev/packages/path_parsing) | [](https://pub.dev/packages/path_parsing/score) | [](https://pub.dev/packages/path_parsing/score) | [](https://github.com/flutter/flutter/labels/p%3A%20path_parsing) | [](https://github.com/flutter/packages/labels/p%3A%20path_parsing) |
| [path\_provider](./packages/path_provider/) | [](https://pub.dev/packages/path_provider) | [](https://pub.dev/packages/path_provider/score) | [](https://pub.dev/packages/path_provider/score) | [](https://github.com/flutter/flutter/labels/p%3A%20path_provider) | [](https://github.com/flutter/packages/labels/p%3A%20path_provider) |
| [pigeon](./packages/pigeon/) | [](https://pub.dev/packages/pigeon) | [](https://pub.dev/packages/pigeon/score) | [](https://pub.dev/packages/pigeon/score) | [](https://github.com/flutter/flutter/labels/p%3A%20pigeon) | [](https://github.com/flutter/packages/labels/p%3A%20pigeon) |
| [pointer\_interceptor](./packages/pointer_interceptor/) | [](https://pub.dev/packages/pointer_interceptor) | [](https://pub.dev/packages/pointer_interceptor/score) | [](https://pub.dev/packages/pointer_interceptor/score) | [](https://github.com/flutter/flutter/labels/p%3A%20pointer_interceptor) | [](https://github.com/flutter/packages/labels/p%3A%20pointer_interceptor) |
| [plugin\_platform\_interface](./packages/plugin_platform_interface/) | [](https://pub.dev/packages/plugin_platform_interface) | [](https://pub.dev/packages/plugin_platform_interface/score) | [](https://pub.dev/packages/plugin_platform_interface/score) | [](https://github.com/flutter/flutter/labels/p%3A%20plugin_platform_interface) | [](https://github.com/flutter/packages/labels/p%3A%20plugin_platform_interface) |
| [quick\_actions](./packages/quick_actions/) | [](https://pub.dev/packages/quick_actions) | [](https://pub.dev/packages/quick_actions/score) | [](https://pub.dev/packages/quick_actions/score) | [](https://github.com/flutter/flutter/labels/p%3A%20quick_actions) | [](https://github.com/flutter/packages/labels/p%3A%20quick_actions) |
| [google\_identity\_services\_web](./packages/google_identity_services_web/) | [](https://pub.dev/packages/google_identity_services_web) | [](https://pub.dev/packages/google_identity_services_web/score) | [](https://pub.dev/packages/google_identity_services_web/score) | [](https://github.com/flutter/flutter/labels/p%3A%20google_identity_services_web) | [](https://github.com/flutter/packages/labels/p%3A%20google_identity_services_web) |
| [rfw](./packages/rfw/) | [](https://pub.dev/packages/rfw) | [](https://pub.dev/packages/rfw/score) | [](https://pub.dev/packages/rfw/score) | [](https://github.com/flutter/flutter/labels/p%3A%20rfw) | [](https://github.com/flutter/packages/labels/p%3A%20rfw) |
| [shared\_preferences](./packages/shared_preferences/) | [](https://pub.dev/packages/shared_preferences) | [](https://pub.dev/packages/shared_preferences/score) | [](https://pub.dev/packages/shared_preferences/score) | [](https://github.com/flutter/flutter/labels/p%3A%20shared_preferences) | [](https://github.com/flutter/packages/labels/p%3A%20shared_preferences) |
| [two\_dimensional\_scrollables](./packages/two_dimensional_scrollables/) | [](https://pub.dev/packages/two_dimensional_scrollables) | [](https://pub.dev/packages/two_dimensional_scrollables/score) | [](https://pub.dev/packages/two_dimensional_scrollables/score) | [](https://github.com/flutter/flutter/labels/p%3A%20two_dimensional_scrollables) | [](https://github.com/flutter/packages/labels/p%3A%20two_dimensional_scrollables) |
| [url\_launcher](./packages/url_launcher/) | [](https://pub.dev/packages/url_launcher) | [](https://pub.dev/packages/url_launcher/score) | [](https://pub.dev/packages/url_launcher/score) | [](https://github.com/flutter/flutter/labels/p%3A%20url_launcher) | [](https://github.com/flutter/packages/labels/p%3A%20url_launcher) |
| [vector\_graphics](./packages/vector_graphics/) | [](https://pub.dev/packages/vector_graphics) | [](https://pub.dev/packages/vector_graphics/score) | [](https://pub.dev/packages/vector_graphics/score) | [](https://github.com/flutter/flutter/labels/p%3A%20vector_graphics) | [](https://github.com/flutter/packages/labels/p%3A%20vector_graphics) |
| [vector\_graphics\_codec](./packages/vector_graphics_codec/) | [](https://pub.dev/packages/vector_graphics_codec) | [](https://pub.dev/packages/vector_graphics_codec/score) | [](https://pub.dev/packages/vector_graphics_codec/score) | [](https://github.com/flutter/flutter/labels/p%3A%20vector_graphics_codec) | [](https://github.com/flutter/packages/labels/p%3A%20vector_graphics_codec) |
| [vector\_graphics\_compiler](./packages/vector_graphics_compiler/) | [](https://pub.dev/packages/vector_graphics_compiler) | [](https://pub.dev/packages/vector_graphics_compiler/score) | [](https://pub.dev/packages/vector_graphics_compiler/score) | [](https://github.com/flutter/flutter/labels/p%3A%20vector_graphics_compiler) | [](https://github.com/flutter/packages/labels/p%3A%20vector_graphics_compiler) |
| [video\_player](./packages/video_player/) | [](https://pub.dev/packages/video_player) | [](https://pub.dev/packages/video_player/score) | [](https://pub.dev/packages/video_player/score) | [](https://github.com/flutter/flutter/labels/p%3A%20video_player) | [](https://github.com/flutter/packages/labels/p%3A%20video_player) |
| [web\_benchmarks](./packages/web_benchmarks/) | [](https://pub.dev/packages/web_benchmarks) | [](https://pub.dev/packages/web_benchmarks/score) | [](https://pub.dev/packages/web_benchmarks/score) | [](https://github.com/flutter/flutter/labels/p%3A%20web_benchmarks) | [](https://github.com/flutter/packages/labels/p%3A%20web_benchmarks) |
| [webview\_flutter](./packages/webview_flutter/) | [](https://pub.dev/packages/webview_flutter) | [](https://pub.dev/packages/webview_flutter/score) | [](https://pub.dev/packages/webview_flutter/score) | [](https://github.com/flutter/flutter/labels/p%3A%20webview) | [](https://github.com/flutter/packages/labels/p%3A%20webview_flutter) |
| [xdg\_directories](./packages/xdg_directories/) | [](https://pub.dev/packages/xdg_directories) | [](https://pub.dev/packages/xdg_directories/score) | [](https://pub.dev/packages/xdg_directories/score) | [](https://github.com/flutter/flutter/labels/p%3A%20xdg_directories) | [](https://github.com/flutter/packages/labels/p%3A%20xdg_directories) |

---

## File: packages/xdg_directories/README.md

# `xdg_directories`

A Dart package for reading XDG directory configuration information on Linux.

## Getting Started

On Linux, `xdg` is a system developed by [freedesktop.org](freedesktop.org), a
project to work on interoperability and shared base technology for free software
desktop environments for Linux.

This Dart package can be used to determine the directory configuration
information defined by `xdg`, such as where the Documents or Desktop directories
are. These are called "user directories" and are defined in configuration file
in the user's home directory.

See [this wiki](https://wiki.archlinux.org/index.php/XDG_Base_Directory) for
more details of the XDG Base Directory implementation.

To use this package, the basic XDG values for the following are available via a Dart API:

 - `dataHome` - The single base directory relative to which user-specific data
   files should be written. (Corresponds to `$XDG_DATA_HOME`).

 - `configHome` - The a single base directory relative to which user-specific
   configuration files should be written. (Corresponds to `$XDG_CONFIG_HOME`).

 - `dataDirs` - The list of preference-ordered base directories relative to
   which data files should be searched. (Corresponds to `$XDG_DATA_DIRS`).

 - `configDirs` - The list of preference-ordered base directories relative to
   which configuration files should be searched. (Corresponds to
   `$XDG_CONFIG_DIRS`).

 - `cacheHome` - The base directory relative to which user-specific
   non-essential (cached) data should be written. (Corresponds to
   `$XDG_CACHE_HOME`).

 - `runtimeDir` - The base directory relative to which user-specific runtime
   files and other file objects should be placed. (Corresponds to
   `$XDG_RUNTIME_DIR`).

 - `getUserDirectoryNames()` - Returns a set of the names of user directories
   defined in the `xdg` configuration files.

 - `getUserDirectory(String dirName)` - Gets the value of the user dir with the
   given name. Requesting a user dir that doesn't exist returns `null`. The
   `dirName` argument is case-insensitive. See [this
   wiki](https://wiki.archlinux.org/index.php/XDG_user_directories) for more
   details and what values of `dirName` might be available.

---

## File: packages/web_benchmarks/testing/README.md

# `testing` README

## How to run the `testing` directory tests

The benchmarks contained in this directory use a client-server model, similar to
what the integration_test package does. In order to run the tests inside `testing`,
do the following:

* Install Chrome in a way that [tests can find it](https://github.com/flutter/packages/blob/a5a4479e176c5e909dd5d961c2c79b61ce1bf1bd/packages/web_benchmarks/lib/src/browser.dart#L216).

* Fetch dependencies for the `test_app` directory inside `testing`:

  ```bash
  flutter pub get --directory testing/test_app
  ```

* Fetch dependencies for the `web_benchmarks` directory:

  ```bash
  flutter pub get
  ```

* Run the tests with `flutter test`:

  ```bash
  $ flutter test testing

  00:03 +0: Can run a web benchmark
  Launching Chrome.
  Launching Google Chrome 98.0.4758.102

  Waiting for the benchmark to report benchmark profile.
  [CHROME]: [0215/133233.327761:ERROR:socket_posix.cc(150)] bind() failed: Address already in use (98)
  [CHROME]:
  [CHROME]: DevTools listening on ws://[::1]:10000/devtools/browser/4ef82be6-9b68-4fd3-ab90-cd603d25ceb1
  Connecting to DevTools: ws://localhost:10000/devtools/page/21E7271507E9BC796B957E075515520F
  Connected to Chrome tab:  (http://localhost:9999/index.html)
  Launching benchmark "scroll"
  Extracted 299 measured frames.
  Skipped 1 non-measured frames.
  Launching benchmark "page"
  [APP] Testing round 0...
  [APP] Testing round 1...
  [APP] Testing round 2...
  [APP] Testing round 3...
  [APP] Testing round 4...
  [APP] Testing round 5...
  [APP] Testing round 6...
  [APP] Testing round 7...
  [APP] Testing round 8...
  [APP] Testing round 9...
  Extracted 490 measured frames.
  Skipped 0 non-measured frames.
  Launching benchmark "tap"
  [APP] Testing round 0...
  [APP] Testing round 1...
  [APP] Testing round 2...
  [APP] Testing round 3...
  [APP] Testing round 4...
  [APP] Testing round 5...
  [APP] Testing round 6...
  [APP] Testing round 7...
  [APP] Testing round 8...
  [APP] Testing round 9...
  Extracted 299 measured frames.
  Skipped 0 non-measured frames.
  Received profile data
  00:26 +1: All tests passed!
  ```

_(If the above stops working, take a look at what the [`web_benchmarks_test` Cirrus step](https://github.com/flutter/packages/blob/a5a4479e176c5e909dd5d961c2c79b61ce1bf1bd/.cirrus.yml#L102-L113)
is currently doing, and update this document accordingly!)_

---

## File: packages/web_benchmarks/README.md

# web_benchmarks

A benchmark harness for Flutter Web apps. Currently only supports running
benchmarks in Chrome.

# Writing a benchmark

An example benchmark can be found in [testing/test_app/benchmark/web_benchmark_test.dart][1].

A web benchmark is made of two parts: a client and a server. The client is code
that runs in the browser together with the benchmark code. The server serves the
app's code and assets. Additionally, the server communicates with the browser to
extract the performance traces.

[1]: https://github.com/flutter/packages/blob/master/packages/web_benchmarks/testing/test_app/benchmark/web_benchmarks_test.dart

# Analyzing benchmark results

After running web benchmarks, you may want to analyze the results or compare
with the results from other benchmark runs. The `web_benchmarks` package
supports the following analysis operations:

* compute the delta between two benchmark results
* compute the average of a set of benchmark results

<?code-excerpt "example/analyze_example.dart (analyze)"?>
```dart
import 'dart:convert';
import 'dart:io';

import 'package:web_benchmarks/analysis.dart';

void main() {
  final BenchmarkResults baselineResults = _benchmarkResultsFromFile(
    '/path/to/benchmark_baseline.json',
  );
  final BenchmarkResults testResults1 = _benchmarkResultsFromFile('/path/to/benchmark_test_1.json');
  final BenchmarkResults testResults2 = _benchmarkResultsFromFile('/path/to/benchmark_test_2.json');

  // Compute the delta between [baselineResults] and [testResults1].
  final BenchmarkResults delta = computeDelta(baselineResults, testResults1);
  stdout.writeln(delta.toJson());

  // Compute the average of [testResults] and [testResults2].
  final BenchmarkResults average = computeAverage([testResults1, testResults2]);
  stdout.writeln(average.toJson());
}

BenchmarkResults _benchmarkResultsFromFile(String path) {
  final file = File.fromUri(Uri.parse(path));
  final fileContentAsJson = jsonDecode(file.readAsStringSync()) as Map<String, Object?>;
  return BenchmarkResults.parse(fileContentAsJson);
}

```

---

## File: packages/rfw/example/hello/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md

# Launch Screen Assets

You can customize the launch screen with your own desired assets by replacing the image files in this directory.

You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.

---

## File: packages/rfw/example/hello/README.md

# Hello World for RFW

This example shows the simplest use of the `RemoteWidget` widget. In
this example, the "remote" widget is hard-coded into the application.

---

## File: packages/rfw/example/local/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md

# Launch Screen Assets

You can customize the launch screen with your own desired assets by replacing the image files in this directory.

You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.

---

## File: packages/rfw/example/local/README.md

# Example of new custom local widgets for RFW

This example shows how one can create custom widgets in an RFW client,
for use by remote widgets.

---

## File: packages/rfw/example/remote/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md

# Launch Screen Assets

You can customize the launch screen with your own desired assets by replacing the image files in this directory.

You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.