[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CX2SJFQRC0WS7KFN8PC0MV":3,"skill-same:01M6CX2SJFQRC0WS7KFN8PC0MV":51},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":31,"commitSha":32,"skillDirectory":5,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":36,"install":37,"resources":50},"01M6CX2SJFQRC0WS7KFN8PC0MV","flutter",null,"Flutter cross-platform framework","ffsshhttiikk\u002Fopencode-agents-skills","ffsshhttiikk","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F226346827?v=4","01M6CWD9RR3Y7VRQX3MXYC8FYH","01M6CWD9WVPYAZW0J82G1VKGHY",3,"MIT","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fflutter\u002FSKILL.md",[],[5,18,19,20,21,22],"development","framework","opencode","mobile","cross-platform","2026-11-10 10:12:30",false,"---\nname: flutter\ndescription: Flutter cross-platform framework\nlicense: MIT\ncompatibility: opencode\nmetadata:\n  audience: mobile-developers\n  category: mobile-development\n---\n\n## What I do\n\n- Build cross-platform mobile apps with Flutter (Dart)\n- Create beautiful, responsive UIs with Material Design and Cupertino widgets\n- Implement state management (Provider, Riverpod, Bloc, GetX)\n- Access native features through platform channels\n- Build custom widgets and animations\n- Handle internationalization and localization\n- Optimize Flutter app performance\n\n## When to use me\n\nUse me when:\n- Building iOS and Android apps from a single codebase\n- Creating visually rich, custom UIs\n- Rapid prototyping and MVP development\n- Apps requiring consistent cross-platform experience\n- Projects with limited native platform code needs\n- Teams with single Flutter\u002FDart expertise\n\n## Key Concepts\n\n### Flutter Widget System\nEverything in Flutter is a widget - from buttons to layouts to the entire app. Widgets compose to build complex UIs.\n\n```dart\nclass CounterApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      home: ChangeNotifierProvider(\n        create: (_) => CounterNotifier(),\n        child: CounterScreen(),\n      ),\n    );\n  }\n}\n\nclass CounterScreen extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: Text('Counter')),\n      body: Center(\n        child: Consumer\u003CCounterNotifier>(\n          builder: (context, notifier, child) {\n            return Text('${notifier.count}');\n          },\n        ),\n      ),\n      floatingActionButton: FloatingActionButton(\n        onPressed: context.read\u003CCounterNotifier>().increment,\n        child: Icon(Icons.add),\n      ),\n    );\n  }\n}\n```\n\n### State Management Options\n- **Provider**: Simple, recommended for most cases\n- **Riverpod**: Compile-safe, testable state management\n- **Bloc**: Business Logic Component with events\u002Fstates\n- **GetX**: Navigation, dependency injection, state management\n\n### Platform Channels\n```dart\nstatic const platform = MethodChannel('com.example\u002Fchannel');\n\nFuture\u003CString> getNativeData() async {\n  return await platform.invokeMethod('getData');\n}\n```\n","## What I do\n\n- Build cross-platform mobile apps with Flutter (Dart)\n- Create beautiful, responsive UIs with Material Design and Cupertino widgets\n- Implement state management (Provider, Riverpod, Bloc, GetX)\n- Access native features through platform channels\n- Build custom widgets and animations\n- Handle internationalization and localization\n- Optimize Flutter app performance\n\n## When to use me\n\nUse me when:\n- Building iOS and Android apps from a single codebase\n- Creating visually rich, custom UIs\n- Rapid prototyping and MVP development\n- Apps requiring consistent cross-platform experience\n- Projects with limited native platform code needs\n- Teams with single Flutter\u002FDart expertise\n\n## Key Concepts\n\n### Flutter Widget System\nEverything in Flutter is a widget - from buttons to layouts to the entire app. Widgets compose to build complex UIs.\n\n```dart\nclass CounterApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      home: ChangeNotifierProvider(\n        create: (_) => CounterNotifier(),\n        child: CounterScreen(),\n      ),\n    );\n  }\n}\n\nclass CounterScreen extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: Text('Counter')),\n      body: Center(\n        child: Consumer\u003CCounterNotifier>(\n          builder: (context, notifier, child) {\n            return Text('${notifier.count}');\n          },\n        ),\n      ),\n      floatingActionButton: FloatingActionButton(\n        onPressed: context.read\u003CCounterNotifier>().increment,\n        child: Icon(Icons.add),\n      ),\n    );\n  }\n}\n```\n\n### State Management Options\n- **Provider**: Simple, recommended for most cases\n- **Riverpod**: Compile-safe, testable state management\n- **Bloc**: Business Logic Component with events\u002Fstates\n- **GetX**: Navigation, dependency injection, state management\n\n### Platform Channels\n```dart\nstatic const platform = MethodChannel('com.example\u002Fchannel');\n\nFuture\u003CString> getNativeData() async {\n  return await platform.invokeMethod('getData');\n}\n```\n",{"name":5,"license":14,"metadata":28,"description":7,"compatibility":20},{"audience":29,"category":30},"mobile-developers","mobile-development","main","5f7a3e453c98261f93d19a6a7de44ad8f7b72d41",2,"https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk","2026-03-01 06:55:40",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill flutter",{"tool":43,"command":44},"bunx","bunx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill flutter",{"tool":46,"command":47},"pnpm","pnpm dlx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill flutter","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fflutter\u002FSKILL.md",true,[],[52,60,70,79,89,98],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":23},"01M6CXT9TXDF79BWJTMQAPB49G","xamarin","Xamarin cross-platform development","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fxamarin\u002FSKILL.md",[],[54,59,22,21,20,18],"platform",{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":23},"01M6CXT8AD04MFYDA32VW3FKAG","wrangling","Data wrangling fundamentals","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwrangling\u002FSKILL.md",[],[62,67,20,68,69],"data wrangling","science","data",{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":23},"01M6CXT717GCN7SRRNPBDP4508","windows","Windows operating system administration and scripting","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwindows\u002FSKILL.md",[],[72,77,20,78],"system","scripting",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":23},"01M6CXT54K794NMEM3XAPZZDKT","wide-column","Wide-column data model","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column\u002FSKILL.md",[],[86,87,20,88,69],"wide column","databases","model",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":23},"01M6CXT28FMT2P4V9GZE67WA8E","wide-column-stores","Wide-column database stores","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column-stores\u002FSKILL.md",[],[96,87,20,97],"wide column stores","database",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":23},"01M6CXT0D0M0Q4T2N7C2RX7DSN","websockets","WebSocket implementation and best practices","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwebsockets\u002FSKILL.md",[],[100,105,106,107,20,108,109],"websocket","real-time","time","best practices","implementation"]