go-flutter-desktop / go-flutter

Flutter on Windows, MacOS and Linux - based on Flutter Embedding, Go and GLFW.
https://hover.build/
BSD 3-Clause "New" or "Revised" License
5.85k stars 283 forks source link

url_launcher plugin broken #642

Open provokateurin opened 2 years ago

provokateurin commented 2 years ago

This PR breaks the go-flutter url_launcher plugin implementation completely.

pchampio commented 2 years ago

What should we do? I/We cannot keep up with the pace at which google is pushing modification. Sadly this one is a breaking one. I haven't looked at the how native plugin implementation works, it might actually be easier than the current method-channel-based one as it seems to call native code directly from dart without calling the embedder. TODO: add dart ffi native plugin support.


Edit 13/05/2022 I've side track a bit. The issue was not about dart ffi, but about the modification of channel names.

# before
"plugins.flutter.io/url_launcher",
# after
"plugins.flutter.io/url_launcher_macos",
"plugins.flutter.io/url_launcher_windows",
"plugins.flutter.io/url_launcher_linux",

fixed in https://github.com/go-flutter-desktop/plugins/pull/74

provokateurin commented 2 years ago

TBH except for packaging to mac and linux the official embedder has become superior :( I already talked with @GeertJohan about maybe extracting the packaging code and making a separate tool for just packaging flutter desktop apps.

pchampio commented 2 years ago

I'm not supporting adding new feature/refactoring parts of the go-flutter project. The core functionality of go-flutter project still works, even though many features have been added to Flutter. I'm happy with the current state. For a non-official embedder, it's sufficient.

Having the official embedder become superior was just a question of time.

Our software is good. The use of golang is an excellent way of writing plugins. But it only is interesting for a small set of users. For the majority, the official embedder will always be better.

niuhuan commented 2 years ago

I tried to fix it, did some simple test on my MacOS , it did works. https://github.com/go-flutter-desktop/plugins/pull/74

stuartmorgan commented 2 years ago

What should we do? I/We cannot keep up with the pace at which google is pushing modification. Sadly this one is a breaking one.

FYI this is a Flutter bug: https://github.com/flutter/flutter/issues/103660

Changes like the one referenced above were supposed to have no effect on custom embeddings like this one.