juliansteenbakker / mobile_scanner

A universal scanner for Flutter based on MLKit. Uses CameraX on Android and AVFoundation on iOS.
BSD 3-Clause "New" or "Revised" License
744 stars 444 forks source link

feat: Add setting useUnbundled from the pubspec.yaml file #1012

Closed jawa0919 closed 1 month ago

jawa0919 commented 1 month ago

in gradle use org.yaml:snakeyaml read pubspec.yaml find useUnbundled value. choose implementation

navaronbracke commented 1 month ago

Thanks for your contribution.

However, this is not something we are going to accept. First of all, you removed a lot of working code, which doesn't impact your new option. Secondly, adding a new dependency for org.yaml:snakeyaml is not needed, since the existing option from Gradle itself worked fine.

jawa0919 commented 1 month ago

I merged the wrong branch

I think it is correct to use snakeyaml to read data from pubspec. yaml to set gradle. I have an example, when I use Flutter to develop a module (Flutter module) and add it to the host Android project (add to app), if I use gradle.properties to write useUnbundled, then I need to write it in the host project, which I think is not appropriate. The same situation applies to Flutter plugin. You only considered the Flutter application. If it can be set in 'pubspec. yaml', this package can be used for more modes.

navaronbracke commented 1 month ago

The Flutter plugin doesn't need to decide which version to use? It is the developer of the consuming application that decides which version needs to be used. The plugin on its own is not executable as an application. Considering add2app use cases, I would expect you to be able to communicate with the team of the host Android project? So I think it is appropriate?

The end result - having a configurable property somewhere in the project - stays the same with both approaches (the old way and your new implementation), but your new implementation adds a new dependency, which might need updating over time, as other people (who do not use add2app, which is the majority) might run into dependency issues with snakeyaml.