{"format":1,"api":2,"id":"fr.arcanescookie.scriptorium.lang.flutter","version":"1.0.0","category":"languages","author":"Les Arcanes de Cookie","color":"#00b4ab","name":{"fr":"Flutter / Dart","en":"Flutter / Dart"},"description":{"fr":"Extraits Flutter : StatelessWidget, StatefulWidget, Scaffold, ListView.builder, FutureBuilder, navigation, champs de saisie, setState.","en":"Flutter snippets: StatelessWidget, StatefulWidget, Scaffold, ListView.builder, FutureBuilder, navigation, text fields, setState."},"contributes":{"snippets":[{"language":"dart","items":[{"prefix":"mat","label":"main + MaterialApp","body":"import 'package:flutter/material.dart';\n\nvoid main() => runApp(const MyApp());\n\nclass MyApp extends StatelessWidget {\n\tconst MyApp({super.key});\n\n\t@override\n\tWidget build(BuildContext context) {\n\t\treturn MaterialApp(\n\t\t\ttitle: '${1:Mon appli}',\n\t\t\ttheme: ThemeData(colorSchemeSeed: ${2:Colors.deepPurple}, useMaterial3: true),\n\t\t\thome: const ${3:Accueil}(),\n\t\t);\n\t}\n}"},{"prefix":"stless","label":"StatelessWidget","body":"class ${1:MonWidget} extends StatelessWidget {\n\tconst ${1:MonWidget}({super.key});\n\n\t@override\n\tWidget build(BuildContext context) {\n\t\treturn ${2:const Placeholder()};\n\t}\n}"},{"prefix":"stful","label":"StatefulWidget","body":"class ${1:MonWidget} extends StatefulWidget {\n\tconst ${1:MonWidget}({super.key});\n\n\t@override\n\tState<${1:MonWidget}> createState() => _${1:MonWidget}State();\n}\n\nclass _${1:MonWidget}State extends State<${1:MonWidget}> {\n\t@override\n\tWidget build(BuildContext context) {\n\t\treturn ${2:const Placeholder()};\n\t}\n}"},{"prefix":"scaffold","label":"Scaffold","body":"Scaffold(\n\tappBar: AppBar(title: const Text('${1:Titre}')),\n\tbody: ${2:const Center(child: Text('Bonjour'))},\n)"},{"prefix":"col","label":"Column","body":"Column(\n\tchildren: [\n\t\t$0\n\t],\n)"},{"prefix":"row","label":"Row","body":"Row(\n\tchildren: [\n\t\t$0\n\t],\n)"},{"prefix":"stack","label":"Stack","body":"Stack(\n\tchildren: [\n\t\t$0\n\t],\n)"},{"prefix":"lvb","label":"ListView.builder","body":"ListView.builder(\n\titemCount: ${1:items}.length,\n\titemBuilder: (context, index) {\n\t\tfinal item = ${1:items}[index];\n\t\treturn ListTile(title: Text(${2:item.toString()}));\n\t},\n)"},{"prefix":"cont","label":"Container","body":"Container(\n\tpadding: const EdgeInsets.all(${1:16}),\n\tdecoration: BoxDecoration(\n\t\tcolor: ${2:Colors.white},\n\t\tborderRadius: BorderRadius.circular(${3:12}),\n\t),\n\tchild: $0,\n)"},{"prefix":"padd","label":"Padding","body":"Padding(\n\tpadding: const EdgeInsets.all(${1:16}),\n\tchild: $0,\n)"},{"prefix":"center","label":"Center","body":"Center(\n\tchild: $0,\n)"},{"prefix":"sbox","label":"SizedBox","body":"SizedBox(height: ${1:16}, width: ${2:16})"},{"prefix":"expd","label":"Expanded","body":"Expanded(\n\tchild: $0,\n)"},{"prefix":"text","label":"Text","body":"Text('${1:texte}', style: const TextStyle(fontSize: ${2:16}))"},{"prefix":"btn","label":"ElevatedButton","body":"ElevatedButton(\n\tonPressed: () {\n\t\t$0\n\t},\n\tchild: const Text('${1:OK}'),\n)"},{"prefix":"tf","label":"TextField","body":"TextField(\n\tcontroller: ${1:_controller},\n\tdecoration: const InputDecoration(labelText: '${2:Libellé}'),\n)"},{"prefix":"setst","label":"setState","body":"setState(() {\n\t$0\n});"},{"prefix":"initst","label":"initState / dispose","body":"@override\nvoid initState() {\n\tsuper.initState();\n\t$0\n}\n\n@override\nvoid dispose() {\n\tsuper.dispose();\n}"},{"prefix":"futb","label":"FutureBuilder","body":"FutureBuilder<${1:String}>(\n\tfuture: ${2:futur},\n\tbuilder: (context, snapshot) {\n\t\tif (snapshot.connectionState != ConnectionState.done) {\n\t\t\treturn const CircularProgressIndicator();\n\t\t}\n\t\tif (snapshot.hasError) return Text('Erreur : \\${snapshot.error}');\n\t\treturn Text(snapshot.data ?? '');\n\t},\n)"},{"prefix":"nav","label":"Navigator.push","body":"Navigator.push(\n\tcontext,\n\tMaterialPageRoute(builder: (_) => const ${1:Ecran}()),\n);"},{"prefix":"sna","label":"SnackBar","body":"ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('${1:Message}')));"},{"prefix":"ink","label":"InkWell","body":"InkWell(\n\tonTap: () {\n\t\t$0\n\t},\n\tchild: ${1:const Text('Touche')},\n)"},{"prefix":"class","label":"Classe","body":"class ${1:Nom} {\n\tfinal ${2:String} ${3:valeur};\n\tconst ${1:Nom}(this.${3:valeur});\n}"},{"prefix":"asyncf","label":"Fonction async","body":"Future<${1:void}> ${2:charger}() async {\n\t$0\n}"}]}]}}