Skip to content

Commit

Permalink
feat: added demo views
Browse files Browse the repository at this point in the history
  • Loading branch information
carlomigueldy committed Apr 4, 2021
1 parent e179944 commit 1b4a408
Show file tree
Hide file tree
Showing 15 changed files with 348 additions and 23 deletions.
17 changes: 16 additions & 1 deletion lib/app/app.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import 'package:stacked/stacked_annotations.dart';
import 'package:stacked_services/stacked_services.dart';
import 'package:stacked_starter_template/ui/views/demo_grid/demo_grid_view.dart';
import 'package:stacked_starter_template/ui/views/demo_list/demo_list_view.dart';
import 'package:stacked_starter_template/ui/views/home/home_view.dart';
import 'package:stacked_starter_template/ui/views/about/about_view.dart';
import 'package:stacked_starter_template/ui/views/single_item/single_item_view.dart';

@StackedApp(
routes: [
Expand All @@ -13,7 +16,19 @@ import 'package:stacked_starter_template/ui/views/about/about_view.dart';
CupertinoRoute(
page: AboutView,
path: 'about',
)
),
CupertinoRoute(
page: DemoListView,
path: 'demo-list-view',
),
CupertinoRoute(
page: DemoGridView,
path: 'demo-grid-view',
),
CupertinoRoute(
page: SingleItemView,
path: 'single-item-view',
),
],
dependencies: [
LazySingleton(classType: NavigationService),
Expand Down
30 changes: 30 additions & 0 deletions lib/app/app.router.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 2 additions & 9 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:stacked_services/stacked_services.dart';
import 'package:stacked_starter_template/app/app.locator.dart';
import 'package:stacked_starter_template/app/app.router.dart';
import 'package:stacked_starter_template/styles/themes.dart';
import 'package:stacked_themes/stacked_themes.dart';

Future<void> main() async {
Expand All @@ -16,15 +17,7 @@ class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ThemeBuilder(
themes: [
ThemeData(
primaryColor: Colors.blue,
primarySwatch: Colors.blue,
fontFamily: GoogleFonts.montserrat().fontFamily,
),
ThemeData(primaryColor: Colors.red),
ThemeData(primaryColor: Colors.green),
],
themes: themes,
builder: (context, regularTheme, darkTheme, themeMode) => MaterialApp(
title: 'Stacked Starter Tempalte',
theme: regularTheme,
Expand Down
27 changes: 27 additions & 0 deletions lib/styles/constants.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import 'package:flutter/material.dart';

const double _extraSmall = 5;
const double _small = 10;
const double _medium = 15;
const double _large = 20;
const double _extraLarge = 25;

class BorderRadiusHelper {
static BorderRadiusGeometry get extraSmallAll =>
BorderRadius.circular(_extraSmall);
static BorderRadiusGeometry get smallAll => BorderRadius.circular(_small);
static BorderRadiusGeometry get mediumAll => BorderRadius.circular(_medium);
static BorderRadiusGeometry get largeAll => BorderRadius.circular(_large);
static BorderRadiusGeometry get extraLargeAll =>
BorderRadius.circular(_extraLarge);
}

class EdgeInsetsHelper {
static EdgeInsetsGeometry get extraSmallAll =>
const EdgeInsets.all(_extraSmall);
static EdgeInsetsGeometry get smallAll => const EdgeInsets.all(_small);
static EdgeInsetsGeometry get mediumAll => const EdgeInsets.all(_medium);
static EdgeInsetsGeometry get largeAll => const EdgeInsets.all(_large);
static EdgeInsetsGeometry get extraLargeAll =>
const EdgeInsets.all(_extraLarge);
}
12 changes: 12 additions & 0 deletions lib/styles/themes.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

List<ThemeData> themes = [
ThemeData(
primaryColor: Colors.blue,
primarySwatch: Colors.blue,
fontFamily: GoogleFonts.montserrat().fontFamily,
),
ThemeData(primaryColor: Colors.red),
ThemeData(primaryColor: Colors.green),
];
2 changes: 1 addition & 1 deletion lib/ui/views/about/about_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class AboutView extends StatelessWidget {
) {
return Scaffold(
appBar: AppBar(
title: Text('AboutView'),
title: Text('About View'),
),
body: Center(
child: Text(
Expand Down
8 changes: 7 additions & 1 deletion lib/ui/views/about/about_viewmodel.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
import 'package:stacked/stacked.dart';
import 'package:stacked_services/stacked_services.dart';
import 'package:stacked_starter_template/app/app.locator.dart';

class AboutViewModel extends BaseViewModel {}
class AboutViewModel extends BaseViewModel {
final navigationService = locator<NavigationService>();

void back() {}
}
27 changes: 27 additions & 0 deletions lib/ui/views/demo_grid/demo_grid_view.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import 'package:flutter/material.dart';
import 'package:stacked/stacked.dart';

import 'demo_grid_viewmodel.dart';

class DemoGridView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ViewModelBuilder<DemoGridViewModel>.reactive(
viewModelBuilder: () => DemoGridViewModel(),
builder: (
BuildContext context,
DemoGridViewModel model,
Widget? child,
) {
return Scaffold(
appBar: AppBar(title: Text('Demo Grid View')),
body: Center(
child: Text(
'DemoGridView',
),
),
);
},
);
}
}
3 changes: 3 additions & 0 deletions lib/ui/views/demo_grid/demo_grid_viewmodel.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import 'package:stacked/stacked.dart';

class DemoGridViewModel extends BaseViewModel {}
40 changes: 40 additions & 0 deletions lib/ui/views/demo_list/demo_list_view.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import 'package:flutter/material.dart';
import 'package:stacked/stacked.dart';
import 'package:stacked_starter_template/ui/views/demo_list/demo_list_viewmodel.dart';

class DemoListView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ViewModelBuilder<DemoListViewModel>.reactive(
viewModelBuilder: () => DemoListViewModel(),
builder: (
BuildContext context,
DemoListViewModel model,
Widget? child,
) {
return Scaffold(
appBar: AppBar(title: Text('Demo List View')),
body: ListView.separated(
itemCount: 10,
itemBuilder: (context, index) {
return ListTile(
tileColor: Colors.grey[100],
leading: CircleAvatar(radius: 30),
title: Text('$index'),
subtitle: Text('Awesome'),
isThreeLine: true,
trailing: IconButton(
icon: Icon(Icons.more_horiz),
onPressed: () {},
),
);
},
separatorBuilder: (context, index) {
return SizedBox(height: 10);
},
),
);
},
);
}
}
7 changes: 7 additions & 0 deletions lib/ui/views/demo_list/demo_list_viewmodel.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import 'package:stacked/stacked.dart';
import 'package:stacked_services/stacked_services.dart';
import 'package:stacked_starter_template/app/app.locator.dart';

class DemoListViewModel extends BaseViewModel {
final navigationService = locator<NavigationService>();
}
Loading

0 comments on commit 1b4a408

Please sign in to comment.