Bumps [pigeon](https://github.com/flutter/packages/tree/main/packages) from 10.1.6 to 11.0.0. <details> <summary>Commits</summary> <ul> <li><a href="94ba82ce52"><code>94ba82c</code></a> [pigeon] primitive enums (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4580">#4580</a>)</li> <li><a href="6a281dbcde"><code>6a281db</code></a> [css_colors] docs: Update deprecated link address (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4537">#4537</a>)</li> <li><a href="383bffa399"><code>383bffa</code></a> [google_maps_flutter] cloud-based map styling implementation (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4638">#4638</a>)</li> <li><a href="32460c7da3"><code>32460c7</code></a> [image_picker] Fix exception when canceling <code>pickMultipleMedia</code> on iOS (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4761">#4761</a>)</li> <li><a href="3060b1aec9"><code>3060b1a</code></a> [rfw] Support web (as JS) (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4650">#4650</a>)</li> <li><a href="d72a5fe600"><code>d72a5fe</code></a> [webview_flutter] Update sample code. (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4727">#4727</a>)</li> <li><a href="c6f758b800"><code>c6f758b</code></a> [flutter_adaptive_scaffold] Fix top padding for NavigationBar (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4661">#4661</a>)</li> <li><a href="354af05222"><code>354af05</code></a> Remove deprecated <code>ImageProvider</code> methods (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4725">#4725</a>)</li> <li><a href="c8a0870ce5"><code>c8a0870</code></a> [pigeon]: Bump io.mockk:mockk from 1.13.5 to 1.13.7 in /packages/pigeon/platf...</li> <li><a href="e26f3b9374"><code>e26f3b9</code></a> [camera_android]: Fixes crash when record video on Android versions lower tha...</li> <li>Additional commits viewable in <a href="https://github.com/flutter/packages/commits/pigeon-v11.0.0/packages">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Brett Morgan <brettmorgan@google.com>
Books add-to-app sample
This application simulates a mock scenario in which an existing app with business logic and middleware already exists. It demonstrates how to add Flutter to an app that has established patterns for these domains. For more information on how to use it, see the README.md parent directory.
This application also utilizes the Pigeon plugin to avoid manual platform channel wiring. Pigeon autogenerates the platform channel code in Dart/Java/Objective-C to allow interop using higher order functions and data classes instead of string-encoded methods and serialized primitives.
The Pigeon autogenerated code is checked-in and ready to use. If the schema
in pigeon/schema.dart is updated, the generated classes can also be re-
generated using:
flutter pub run pigeon --input pigeon/schema.dart \
--dart_out lib/api.dart \
--objc_header_out ../ios_books/IosBooks/api.h \
--objc_source_out ../ios_books/IosBooks/api.m \
--objc_prefix BK \
--java_out ../android_books/app/src/main/java/dev/flutter/example/books/Api.java \
--java_package "dev.flutter.example.books"
Demonstrated concepts
- An existing books catalog app is already implemented in Kotlin and Swift.
- The platform-side app has existing middleware constraints that should also
be the middleware foundation for the additional Flutter screen.
- 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 also underpin the data fetched and shown in the Flutter screen.
- The platform application interfaces with the Flutter book details page using
idiomatic platform API conventions rather than Flutter conventions.
- 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 activity. No Flutter concepts are leaked into the consumer activity.
- The pigeon plugin is used to generate
interop APIs and data classes. The same
Bookmodel class is used within the Kotlin/Swift program, the Dart program and in the interop between Kotlin/Swift and Dart.
More info
For more information about Flutter, check out flutter.dev.
For instructions on how to integrate Flutter modules into your existing applications, see Flutter's add-to-app documentation.