flutter-native

Native Platform Interoperability

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "flutter-native" with this command: npx skills add dhruvanbhalara/skills/dhruvanbhalara-skills-flutter-native

Native Platform Interoperability

Developing Flutter apps often requires direct communication with the underlying native platform (Android/iOS). This skill covers the standards for maintainable and type-safe interoperability.

  1. MethodChannels (One-shot)

Use MethodChannel for standard request-response patterns between Dart and Native.

Dart Standard

  • Use a unique domain-style channel name.

  • ALWAYS wrap calls in a try-catch for PlatformException .

static const _channel = MethodChannel('com.example.app/device_info');

Future<String?> getDeviceOS() async { try { return await _channel.invokeMethod<String>('getOS'); } on PlatformException catch (e) { AppLogger.error('Failed to get OS', error: e); return null; } }

  1. EventChannels (Streams)

Use EventChannel for continuous data flow (e.g., sensor data, connectivity).

Implementation

  • Native side MUST handle onListen and onCancel .

  • Dart side MUST dispose the subscription to prevent leaks.

  1. Type Safety with Pigeon

For complex APIs, avoid manual string-based keys. Use Pigeon to generate type-safe interfaces.

  1. Platform-Specific Directory Structure

Organize native code within the relevant feature if possible, or use a dedicated plugins/ directory for shared logic.

  1. Federated Plugins

If the logic is reusable across multiple apps:

  • Split implementation into _platform_interface , _android , _ios , and _web packages.

  • Provide a single entry point for users.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

flutter-architecture

No summary provided by upstream source.

Repository SourceNeeds Review
General

flutter-ui

No summary provided by upstream source.

Repository SourceNeeds Review
General

flutter-bloc

No summary provided by upstream source.

Repository SourceNeeds Review