Skip to content
This repository was archived by the owner on Dec 3, 2025. It is now read-only.

Conversation

@stuartmorgan-g
Copy link
Collaborator

Eliminates Plugin as the primary interface point, and instead moves to a
MethodChannel-based model. This eliminates the need for void* types in
the interfaces, allowing a move to full type safety (via templates) for
all the classes related to channels.

Additionally, the plugin creation and registration system now matches
the Flutter structure on iOS and Android, using static registration of a
plugin class with a PluginRegistrar. The desktop registrar currently has
minimal functionality, but it can be extended over time.

This is a breaking change for any Plugin implementation, as well as
application-level code that was calling AddPlugin. It is collapsed into
one large patch in order to minimize the number of API-breaking changes.

This essentially completes issue #102 for Linux.

@stuartmorgan-g
Copy link
Collaborator Author

Note: please wait for me to land this rather than landing it once it's approved, because it's a breaking change for PR #161 and I have a patch I'll want to push there at the same time as landing this.

@stuartmorgan-g
Copy link
Collaborator Author

Rebased to account for 161 (now depends on #194)

Eliminates Plugin as the primary interface point, and instead moves to a
MethodChannel-based model. This eliminates the need for void* types in
the interfaces, allowing a move to full type safety (via templates) for
all the classes related to channels.

Additionally, the plugin creation and registration system now matches
the Flutter structure on iOS and Android, using static registration of a
plugin class with a PluginRegistrar. The desktop registrar currently has
minimal functionality, but it can be extended over time.

This is collapsed into one large patch in order to minimize the number
of API-breaking changes.
Copy link
Contributor

@franciscojma86 franciscojma86 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with a few nits

}

// PluginRegistrar:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove extra line?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a heading for both of the following methods, so I separated it so that it doesn't appear to be associated only with AddPlugin.

@stuartmorgan-g stuartmorgan-g merged commit 7300622 into google:master Jan 8, 2019
@stuartmorgan-g stuartmorgan-g deleted the cpp-plugin-alignment branch January 8, 2019 18:43
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 10, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants