
Flutter Native
- 169 installs
- 29 repo stars
- Updated July 10, 2026
- dhruvanbhalara/skills
Implement Flutter screens, navigation, state, and platform channels when shipping iOS and Android apps from a shared Dart codebase with native-feeling UI and performance.
About
Flutter-native skill teaches Claude how to build polished cross-platform mobile apps: scaffold screens, follow Material/Cupertino conventions, manage state, call platform APIs, and structure Dart code for maintainable iOS and Android delivery.
- Cross-platform iOS and Android UI patterns
- Widget composition and state management
- Platform channel native integrations
- Performance-minded mobile layouts
- Release-ready Flutter project structure
Flutter Native by the numbers
- 169 all-time installs (skills.sh)
- Ranked #513 of 1,039 Mobile Development skills by installs in the Skillselion catalog
- Data as of Jul 31, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dhruvanbhalara/skills --skill flutter-nativeAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 169 |
|---|---|
| repo stars | ★ 29 |
| Last updated | July 10, 2026 |
| Repository | dhruvanbhalara/skills ↗ |
What it does
Implement Flutter screens, navigation, state, and platform channels when shipping iOS and Android apps from a shared Dart codebase with native-feeling UI and performance.
Files
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;
}
}2. EventChannels (Streams)
Use EventChannel for continuous data flow (e.g., sensor data, connectivity).
Implementation
- Native side MUST handle
onListenandonCancel. - Dart side MUST dispose the subscription to prevent leaks.
3. Type Safety with Pigeon
For complex APIs, avoid manual string-based keys. Use Pigeon to generate type-safe interfaces.
4. Platform-Specific Directory Structure
Organize native code within the relevant feature if possible, or use a dedicated plugins/ directory for shared logic.
5. Swift Package Manager (SPM) Defaults
Introduced in Flutter 3.44
- For iOS/macOS native integrations, SPM is the default package manager. It replaces CocoaPods entirely for new configurations.
- Declare Swift Packages directly in your plugin's
pubspec.yamlusing theswift_packagesfield, or configure them directly via Xcode workspaces (see flutter-spm).
6. Platform View Overhaul
Introduced in Flutter 3.44
- Embedded native views (such as maps, web views, cameras) leverage an overhauled hybrid composition rendering pipeline to minimize dropped frames and eliminate UI compositing performance issues.
7. Federated Plugins
If the logic is reusable across multiple apps:
- Split implementation into
_platform_interface,_android,_ios, and_webpackages. - Provide a single entry point for users.