Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [
- {
- "name": "Chapter One [Screens]",
- "programs": [
- {
- "title": "Material App",
- "content": "import 'dart:convert';\r\n\r\nimport 'package:flutter/material.dart';\r\nimport 'package:flutter/services.dart';\r\nimport 'package:flutter_syntax_view/flutter_syntax_view.dart';\r\n\r\nimport 'models.dart';\r\n\r\nvoid main() => runApp(MundreApp());\r\n\r\nclass MundreApp extends StatelessWidget {\r\n @override\r\n Widget build(BuildContext context) {\r\n return MaterialApp(\r\n title: 'Mundre App',\r\n theme: ThemeData(\r\n brightness: Brightness.dark,\r\n ),\r\n home: HomePage(),\r\n );\r\n }\r\n}"
- },
- {
- "title": "Home Screen",
- "content": "class HomePage extends StatelessWidget {\r\n Future<List<Chapter>> loadChaptersJson() async {\r\n var chaptersJson = await rootBundle.loadString('assets/chapters.json');\r\n List<dynamic> chapters = jsonDecode(chaptersJson);\r\n return chapters\r\n .map<Chapter>((chapter) => Chapter.fromMap(chapter))\r\n .toList();\r\n }\r\n\r\n @override\r\n Widget build(BuildContext context) {\r\n return Scaffold(\r\n appBar: AppBar(\r\n title: Text('Chapters'),\r\n ),\r\n body: FutureBuilder<List<Chapter>>(\r\n future: loadChaptersJson(),\r\n builder: (context, snapshot) {\r\n if (snapshot.hasData) {\r\n return ListView.separated(\r\n itemBuilder: (context, index) {\r\n var chapter = snapshot.data[index];\r\n return ListTile(\r\n title: Text(chapter.name),\r\n onTap: () => Navigator.push(\r\n context,\r\n MaterialPageRoute(\r\n builder: (context) => ChapterPage(\r\n chapter: chapter,\r\n ),\r\n ),\r\n ),\r\n );\r\n },\r\n separatorBuilder: (context, _) => Divider(height: 2),\r\n itemCount: snapshot.data.length,\r\n );\r\n }\r\n return Container();\r\n },\r\n ),\r\n );\r\n }\r\n}"
- },
- {
- "title": "Chapter List Screen",
- "content": "class ChapterPage extends StatelessWidget {\r\n final Chapter chapter;\r\n\r\n ChapterPage({this.chapter});\r\n\r\n @override\r\n Widget build(BuildContext context) {\r\n return Scaffold(\r\n appBar: AppBar(\r\n title: Text(chapter.name),\r\n ),\r\n body: ListView.separated(\r\n itemBuilder: (context, index) {\r\n return ListTile(\r\n title: Text(chapter.programs[index].title),\r\n onTap: () => Navigator.push(\r\n context,\r\n MaterialPageRoute(\r\n builder: (context) => ProgramPage(\r\n program: chapter.programs[index],\r\n ),\r\n ),\r\n ),\r\n );\r\n },\r\n separatorBuilder: (context, _) => Divider(height: 2),\r\n itemCount: chapter.programs.length,\r\n ),\r\n );\r\n }\r\n}\r\n"
- },
- {
- "title": "Program List Screen",
- "content": "class ProgramPage extends StatelessWidget {\r\n final Program program;\r\n\r\n ProgramPage({this.program});\r\n\r\n @override\r\n Widget build(BuildContext context) {\r\n return Scaffold(\r\n appBar: AppBar(\r\n title: FittedBox(\r\n fit: BoxFit.contain,\r\n child: Text(program.title),\r\n ),\r\n ),\r\n body: SyntaxView(\r\n code: program.content,\r\n syntax: Syntax.DART,\r\n syntaxTheme: SyntaxTheme.dracula(),\r\n withZoom: true,\r\n ),\r\n );\r\n }\r\n}\r\n"
- }
- ]
- },
- {
- "name": "Chapter Two [Models]",
- "programs": [
- {
- "title": "Chapter Class",
- "content": "class Chapter {\r\n final String name;\r\n final List<Program> programs;\r\n\r\n Chapter({\r\n this.name,\r\n this.programs,\r\n });\r\n\r\n factory Chapter.fromMap(Map<String, dynamic> chapter) => Chapter(\r\n name: chapter['name'],\r\n programs: chapter['programs']\r\n .map<Program>((program) => Program.fromMap(program))\r\n .toList(),\r\n );\r\n}"
- },
- {
- "title": "Program Class",
- "content": "class Program {\r\n final String title;\r\n final String content;\r\n\r\n Program({\r\n this.title,\r\n this.content,\r\n });\r\n\r\n factory Program.fromMap(Map<String, dynamic> program) => Program(\r\n title: program['title'],\r\n content: program['content'],\r\n );\r\n}"
- }
- ]
- },
- {
- "name": "Chapter Three",
- "programs": [
- {
- "title": "Something One",
- "content": "class HomePage extends StatelessWidget {\r\n Future<List<Chapter>> loadChaptersJson() async {\r\n var chaptersJson = await rootBundle.loadString('assets/chapters.json');\r\n List<dynamic> chapters = jsonDecode(chaptersJson);\r\n return chapters\r\n .map<Chapter>((chapter) => Chapter.fromMap(chapter))\r\n .toList();\r\n }\r\n\r\n @override\r\n Widget build(BuildContext context) {\r\n return Scaffold(\r\n appBar: AppBar(\r\n title: Text('Chapters'),\r\n ),\r\n body: FutureBuilder<List<Chapter>>(\r\n future: loadChaptersJson(),\r\n builder: (context, snapshot) {\r\n if (snapshot.hasData) {\r\n return ListView.separated(\r\n itemBuilder: (context, index) {\r\n var chapter = snapshot.data[index];\r\n return ListTile(\r\n title: Text(chapter.name),\r\n onTap: () => Navigator.push(\r\n context,\r\n MaterialPageRoute(\r\n builder: (context) => ChapterPage(\r\n chapter: chapter,\r\n ),\r\n ),\r\n ),\r\n );\r\n },\r\n separatorBuilder: (context, _) => Divider(height: 2),\r\n itemCount: snapshot.data.length,\r\n );\r\n }\r\n return Container();\r\n },\r\n ),\r\n );\r\n }\r\n}"
- },
- {
- "title": "Something 2",
- "content": "import 'dart:convert';\r\n\r\nimport 'package:flutter/material.dart';\r\nimport 'package:flutter/services.dart';\r\nimport 'package:flutter_syntax_view/flutter_syntax_view.dart';\r\n\r\nimport 'models.dart';\r\n\r\nvoid main() => runApp(MundreApp());\r\n\r\nclass MundreApp extends StatelessWidget {\r\n @override\r\n Widget build(BuildContext context) {\r\n return MaterialApp(\r\n title: 'Mundre App',\r\n theme: ThemeData(\r\n brightness: Brightness.dark,\r\n ),\r\n home: HomePage(),\r\n );\r\n }\r\n}"
- }
- ]
- }
- ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement