mirror of
https://github.com/flutter/samples.git
synced 2025-11-09 06:18:49 +00:00
Updates add-to-app README strategy (#549)
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
# Add-to-App Sample
|
# Add-to-App Samples
|
||||||
|
|
||||||
This directory contains a bunch of Android and iOS projects that each import a
|
This directory contains a bunch of Android and iOS projects (beginning
|
||||||
standalone Flutter module.
|
`android_` and `ios_`, respectively) that import and use one of several Flutter
|
||||||
|
modules (which have names beginning with `flutter_`). They're designed to show
|
||||||
|
recommended approaches for adding Flutter to existing Android and iOS apps.
|
||||||
|
|
||||||
## Goals for this sample
|
## Goals for these samples
|
||||||
|
|
||||||
* Show developers how to add Flutter to their existing applications.
|
* Show developers how to add Flutter to their existing applications.
|
||||||
* Show the following options:
|
* Show the following options:
|
||||||
@@ -13,10 +15,41 @@ standalone Flutter module.
|
|||||||
* Show Flutter being integrated ergonomically with applications with existing
|
* Show Flutter being integrated ergonomically with applications with existing
|
||||||
middleware and business logic data classes.
|
middleware and business logic data classes.
|
||||||
|
|
||||||
|
## tl;dr
|
||||||
|
|
||||||
|
If you're just looking to get up and running quickly, these bash commands will
|
||||||
|
fetch packages and set up dependencies (note that the above commands assume
|
||||||
|
you're building for both iOS and Android, with both toolchains installed):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd flutter_module_using_plugin
|
||||||
|
flutter pub get
|
||||||
|
cd ../flutter_module_books
|
||||||
|
flutter pub get
|
||||||
|
cd ../flutter_module
|
||||||
|
flutter pub get
|
||||||
|
|
||||||
|
# For Android builds:
|
||||||
|
flutter build aar
|
||||||
|
|
||||||
|
# For iOS builds:
|
||||||
|
flutter build ios-framework --output=../ios_using_prebuilt_module/Flutter
|
||||||
|
cd ../ios_fullscreen
|
||||||
|
pod install
|
||||||
|
cd ../ios_using_plugin
|
||||||
|
pod install
|
||||||
|
```
|
||||||
|
|
||||||
|
Once those commands have run, you can go into any of the app directories (the
|
||||||
|
ones beginning `android_` or `ios_`), and build the apps as you normally would.
|
||||||
|
|
||||||
## Installing Cocoapods
|
## Installing Cocoapods
|
||||||
|
|
||||||
The iOS samples in this repo require the latest version of Cocoapods. To install
|
The iOS samples in this repo require the latest version of Cocoapods. To make
|
||||||
it, run the following command on a macOS machine:
|
sure you've got it, run the following command on a macOS machine:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo gem install cocoapods
|
sudo gem install cocoapods
|
||||||
@@ -41,10 +74,9 @@ There are three Flutter modules included in the codebase:
|
|||||||
interop inside wrapper API and data classes that are shared between the
|
interop inside wrapper API and data classes that are shared between the
|
||||||
platform and Flutter.
|
platform and Flutter.
|
||||||
|
|
||||||
|
|
||||||
Before using them, you need to resolve the Flutter modules' dependencies. Do so
|
Before using them, you need to resolve the Flutter modules' dependencies. Do so
|
||||||
by running this command from within the `flutter_module` and
|
by running this command from within the `flutter_module`,
|
||||||
`flutter_module_using_plugin` directories:
|
`flutter_module_using_plugin`, and `flutter_module_books` directories:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
flutter pub get
|
flutter pub get
|
||||||
@@ -57,7 +89,7 @@ Android and iOS applications that demonstrate different ways of importing
|
|||||||
them.
|
them.
|
||||||
|
|
||||||
With the exception of `android_using_prebuilt_module`, the Android apps are
|
With the exception of `android_using_prebuilt_module`, the Android apps are
|
||||||
ready to run once you've completed the `flutter packages get` commands listed
|
ready to run once you've completed the `flutter pub get` commands listed
|
||||||
above. Two of the iOS apps (`ios_fullscreen` and `ios_using_plugin`) use
|
above. Two of the iOS apps (`ios_fullscreen` and `ios_using_plugin`) use
|
||||||
Cocoapods, though, so you need to run this command within their project
|
Cocoapods, though, so you need to run this command within their project
|
||||||
directories to install their dependencies:
|
directories to install their dependencies:
|
||||||
@@ -178,7 +210,7 @@ page.
|
|||||||
requirements.
|
requirements.
|
||||||
* If the `schema.dart` is modified, the generated classes can be updated with
|
* If the `schema.dart` is modified, the generated classes can be updated with
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
flutter pub run pigeon \
|
flutter pub run pigeon \
|
||||||
--input pigeon/schema.dart \
|
--input pigeon/schema.dart \
|
||||||
--java_out ../android_books/app/src/main/java/dev/flutter/example/books/Api.java \
|
--java_out ../android_books/app/src/main/java/dev/flutter/example/books/Api.java \
|
||||||
|
|||||||
14
add_to_app/android_books/README.md
Normal file
14
add_to_app/android_books/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# android_books
|
||||||
|
|
||||||
|
An example Android application used in the Flutter add-to-app samples. For more
|
||||||
|
information on how to use it, see the [README](../README.md) file located in the
|
||||||
|
[/add_to_app](/add_to_app) directory of this repo.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
For more information about Flutter, check out
|
||||||
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
14
add_to_app/android_fullscreen/README.md
Normal file
14
add_to_app/android_fullscreen/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# android_fullscreen
|
||||||
|
|
||||||
|
An example Android application used in the Flutter add-to-app samples. For more
|
||||||
|
information on how to use it, see the [README](../README.md) file located in the
|
||||||
|
[/add_to_app](/add_to_app) directory of this repo.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
For more information about Flutter, check out
|
||||||
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
14
add_to_app/android_using_plugin/README.md
Normal file
14
add_to_app/android_using_plugin/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# android_using_plugin
|
||||||
|
|
||||||
|
An example Android application used in the Flutter add-to-app samples. For more
|
||||||
|
information on how to use it, see the [README](../README.md) file located in the
|
||||||
|
[/add_to_app](/add_to_app) directory of this repo.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
For more information about Flutter, check out
|
||||||
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
14
add_to_app/android_using_prebuilt_module/README.md
Normal file
14
add_to_app/android_using_prebuilt_module/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# android_using_prebuilt_module
|
||||||
|
|
||||||
|
An example Android application used in the Flutter add-to-app samples. For more
|
||||||
|
information on how to use it, see the [README](../README.md) file located in the
|
||||||
|
[/add_to_app](/add_to_app) directory of this repo.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
For more information about Flutter, check out
|
||||||
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
@@ -1,11 +1,14 @@
|
|||||||
# flutter_module
|
# flutter_module
|
||||||
|
|
||||||
An example Flutter module used in the Flutter add-to-app samples.
|
An example Flutter module used in the Flutter add-to-app samples. For more
|
||||||
|
information on how to use it, see the [README](../README.md) file located in the
|
||||||
|
[/add_to_app](/add_to_app) directory of this repo.
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
For more information, see the Add-to-App guide at
|
For more information about Flutter, check out
|
||||||
[flutter.dev](https://flutter.dev):
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
For instructions integrating Flutter modules to your existing applications,
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
see the [add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
# Books add-to-app sample
|
# Books add-to-app sample
|
||||||
|
|
||||||
This application simulates a mock scenario where an existing app with
|
This application simulates a mock scenario in which an existing app with
|
||||||
business logic and middleware already exists. This sample demonstrates how to
|
business logic and middleware already exists. It demonstrates how to add Flutter
|
||||||
do an add-to-app Flutter integration into existing conventions.
|
to an app that has established patterns for these domains. For more information
|
||||||
|
this and the other add-to-app samples available in this repo, see the
|
||||||
|
[README](../README.md) file located in the [/add_to_app](/add_to_app) directory
|
||||||
|
of this repo.
|
||||||
|
|
||||||
This application also utilizes the [Pigeon](https://pub.dev/packages/pigeon)
|
This application also utilizes the [Pigeon](https://pub.dev/packages/pigeon)
|
||||||
plugin to avoid manual platform channel wiring. Pigeon autogenerates the
|
plugin to avoid manual platform channel wiring. Pigeon autogenerates the
|
||||||
@@ -29,14 +32,21 @@ flutter pub run pigeon \
|
|||||||
* On Android, the Kotlin app already uses GSON and OkHttp for networking and
|
* On Android, the Kotlin app already uses GSON and OkHttp for networking and
|
||||||
references the Google Books API as a data source. These same libraries
|
references the Google Books API as a data source. These same libraries
|
||||||
also underpin the data fetched and shown in the Flutter screen.
|
also underpin the data fetched and shown in the Flutter screen.
|
||||||
* iOS TODO.
|
|
||||||
* The platform application interfaces with the Flutter book details page using
|
* The platform application interfaces with the Flutter book details page using
|
||||||
idiomatic platform API conventions rather than Flutter conventions.
|
idiomatic platform API conventions rather than Flutter conventions.
|
||||||
* On Android, the Flutter activity receives the book to show via activity
|
* On Android, the Flutter activity receives the book to show via activity
|
||||||
intent and returns the edited book by setting the result intent on the
|
intent and returns the edited book by setting the result intent on the
|
||||||
activity. No Flutter concepts are leaked into the consumer activity.
|
activity. No Flutter concepts are leaked into the consumer activity.
|
||||||
* iOS TODO.
|
|
||||||
* The [pigeon](https://pub.dev/packages/pigeon) plugin is used to generate
|
* The [pigeon](https://pub.dev/packages/pigeon) plugin is used to generate
|
||||||
interop APIs and data classes. The same `Book` model class is used within the
|
interop APIs and data classes. The same `Book` model class is used within the
|
||||||
Kotlin/Swift program, the Dart program and in the interop between Kotlin/Swift
|
Kotlin/Swift program, the Dart program and in the interop between Kotlin/Swift
|
||||||
and Dart.
|
and Dart.
|
||||||
|
|
||||||
|
## More info
|
||||||
|
|
||||||
|
For more information about Flutter, check out
|
||||||
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
# flutter_module_using_plugin
|
# flutter_module_using_plugin
|
||||||
|
|
||||||
An example Flutter module that uses a plugin and is consumed by native apps
|
An example Flutter module that uses a native plugin, intended for use in the
|
||||||
in the Flutter add-to-app samples.
|
Flutter add-to-app samples. For more information on how to use it, see the
|
||||||
|
[README](../README.md) file located in the [/add_to_app](/add_to_app) directory
|
||||||
|
of this repo.
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
For more information, see the Add-to-App guide at
|
For more information about Flutter, check out
|
||||||
[flutter.dev](https://flutter.dev):
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
For instructions integrating Flutter modules to your existing applications,
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
see the [add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
|
|||||||
14
add_to_app/ios_fullscreen/README.md
Normal file
14
add_to_app/ios_fullscreen/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# ios_fullscreen
|
||||||
|
|
||||||
|
An example iOS application used in the Flutter add-to-app samples. For more
|
||||||
|
information on how to use it, see the [README](../README.md) file located in the
|
||||||
|
[/add_to_app](/add_to_app) directory of this repo.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
For more information about Flutter, check out
|
||||||
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
14
add_to_app/ios_using_plugin/README.md
Normal file
14
add_to_app/ios_using_plugin/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# ios_using_plugin
|
||||||
|
|
||||||
|
An example iOS application used in the Flutter add-to-app samples. For more
|
||||||
|
information on how to use it, see the [README](../README.md) file located in the
|
||||||
|
[/add_to_app](/add_to_app) directory of this repo.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
For more information about Flutter, check out
|
||||||
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
14
add_to_app/ios_using_prebuilt_module/README.md
Normal file
14
add_to_app/ios_using_prebuilt_module/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# ios_using_prebuilt_module
|
||||||
|
|
||||||
|
An example iOS application used in the Flutter add-to-app samples. For more
|
||||||
|
information on how to use it, see the [README](../README.md) file located in the
|
||||||
|
[/add_to_app](/add_to_app) directory of this repo.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
For more information about Flutter, check out
|
||||||
|
[flutter.dev](https://flutter.dev).
|
||||||
|
|
||||||
|
For instructions on how to integrate Flutter modules into your existing
|
||||||
|
applications, see Flutter's
|
||||||
|
[add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
|
||||||
Reference in New Issue
Block a user