Open mattmapadmi opened 1 year ago
Just throwing in some thoughts here about how to go about porting this package to Flutter.
Ideally we would use a federated plugin. The main benefit is that consumers of the plugin only need to include the code required for the platform being built (through a platform specific plugin), however there is a secondary benefit of maintainability in that each platform plugin is only concerned with its respective implementation.
Federated plugins also offer the ability for other parties to extend the implementation to other platforms in future, these other plugins can optionally be endorsed to be automatically included by consumers.
There are a few ways to generate bindings between Flutter/Dart and native code:
@SamC-Apadmi (or anyone else with permissions) In the above PR, I had identified a few outstanding tasks between the current version of the Flutter plugin and what I would call version 1.0;, if these could be added as individual issues to the project, it would help with transparency.
I intend to move on to CI integration next with some time spent to look into logic to only run the unit tests required across the Dart, Kotlin (and eventually Swift) test suite.
Is this an old task?
@JordanllHarper Kind of, this issue was made before any scoping for Flutter support had been done. What I see this issue as now is a parent for all Flutter related work that will be closed once we have achieved a 1.0 release. Imo, this is a good place for any discussions related to Flutter support as a whole.
Flutter support
Type: Enhancement
Start Date: 2023-09-19
Author: Matt Malone
Related components: -
Summary
Create a version of Mockzilla that can be consumed by a Flutter app
Motivation
We currently have an internal Flutter-only version of Mockzilla based off the old non-KMM library. As such, its API does not
Detailed design
This is the bulk of the RFC. Explain the design in enough detail for somebody familiar with the network to understand, and for somebody familiar with the code practices to implement. This should get into specifics and corner-cases, and include examples of how the feature is used.
Drawbacks
I Why should we not do this?
Alternatives
What other designs have been considered? What is the impact of not doing this?
Unresolved questions
What parts of the design are still to be done?