Install any skill in seconds. Free to start, no credit card required.
Get Started Free →zzafergok/ios-flutter-interop
iOS platform integration and native interop for Flutter applications. MethodChannel, EventChannel, platform-specific UI behaviour, iOS App Extensions (widget, share, notification), Keychain, HealthKit, Face ID / Touch ID, and App Store submission guide.
Passed 21 of 23 test cases with the skill, and 19 of 23 without it.
2 fixed19 passed either way2 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 2 test cases the skill fixed. Same model, same prompt, with and without the skill.
We are adding HealthKit integration to read step counts in our cross-platform mobile application. Should we look for a Flutter community plugin to bridge HealthKit directly without writing native Swift code, or do we need a custom native platform channel? Explain the requirement and how streams should be handled if background step updates are sent to Dart.
| Checked | Without skill | With skill |
|---|---|---|
| States that custom native code using a platform channel is required for HealthKit. | Missed | Passed |
| Recommends using EventChannel to handle continuous step updates. | Passed | Passed |
The instructions your model reads when the skill loads.
Bridging the Flutter application to the iOS native layer: platform channels, native UI, extensions, and the App Store submission process.
Flutter's widget layer handles a great deal, but certain iOS capabilities mandate Swift code:
| Requires native code | Flutter package is sufficient |
|---|---|
| Keychain / Secure Enclave | Core UI components |
| Face ID / Touch ID (LocalAuth) | HTTP requests |
| HealthKit, CoreMotion | Push notification permission (firebase_messaging) |
| HomeKit, ARKit | Camera (camera package) |
| App Extensions (widget, share) | Maps (google_maps_flutter) |
| BackgroundFetch, silent push | SQLite, Hive |
| Custom URL scheme registration | File management |
Dart side:
class BiometricService {
static const _channel = MethodChannel('com.company.app/biometric');
Future<bool> authenticate({required String reason}) async {
try {
final result = await _channel.invokeMethod<bool>(
'authenticate',
{'reason': reason},
);
return result ?? false;
test cases passed, vs 19 / 23 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.