Skip to content

Commit 6189563

Browse files
committed
snippet aded on preject
1 parent 92f0cc5 commit 6189563

File tree

12 files changed

+179
-33
lines changed

12 files changed

+179
-33
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ This project craeeted for proffesionel application arhitecture.
1616
10. Local Data Management
1717
11. Singleton Principles
1818
12. Test
19+
13. Project Gist Architecture [Gist File](https://gist.github.com/VB10/aa6b604b5be3500b3dbf2d45990fd2ee)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import 'package:flutter/material.dart';
2+
3+
abstract class BaseViewModel {
4+
BuildContext context;
5+
6+
void setContext(BuildContext context);
7+
void init();
8+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
class ApplicationConstants {
22
static const LANG_ASSET_PATH = "asset/lang";
3+
static const IPAD_NAME = "IPAD";
4+
5+
static const COMPANY_NAME = "HWA";
36
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class ImageConstants {
2+
static ImageConstants _instace;
3+
4+
static ImageConstants get instance {
5+
if (_instace == null) _instace = ImageConstants._init();
6+
return _instace;
7+
}
8+
9+
ImageConstants._init();
10+
11+
String get logo => toPng("veli");
12+
13+
String toPng(String name) => "assets/image/$name";
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:fluttermvvmtemplate/core/base/view/base_widget.dart';
3+
import 'package:fluttermvvmtemplate/view/authenticate/login/viewmodel/login_view_model.dart';
4+
5+
class LoginView extends StatelessWidget {
6+
@override
7+
Widget build(BuildContext context) {
8+
return BaseView<LoginViewModel>(
9+
viewModel: LoginViewModel(),
10+
onModelReady: (model) {
11+
model.setContext(context);
12+
},
13+
onPageBuilder: (BuildContext context, LoginViewModel value) => Scaffold(),
14+
);
15+
}
16+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:fluttermvvmtemplate/core/base/model/base_view_model.dart';
3+
import 'package:mobx/mobx.dart';
4+
part 'login_view_model.g.dart';
5+
6+
class LoginViewModel = _LoginViewModelBase with _$LoginViewModel;
7+
8+
abstract class _LoginViewModelBase with Store, BaseViewModel {
9+
void setContext(BuildContext context) {
10+
this.context = context;
11+
}
12+
13+
void init() {}
14+
15+
@observable
16+
String name;
17+
18+
@action
19+
void changeName(String name) {
20+
this.name = name;
21+
}
22+
}

lib/view/authenticate/login/viewmodel/login_view_model.g.dart

Lines changed: 47 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/view/authenticate/test/view/test_view.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class _TestsViewState extends BaseState<TestsView> {
2323
return BaseView<TestViewModel>(
2424
viewModel: TestViewModel(),
2525
onModelReady: (model) {
26+
model.setContext(context);
2627
viewModel = model;
2728
},
2829
onPageBuilder: (context, value) => scaffoldBody,
@@ -31,8 +32,7 @@ class _TestsViewState extends BaseState<TestsView> {
3132

3233
Widget get scaffoldBody => Scaffold(
3334
appBar: AppBar(
34-
leading: Text(
35-
LocaleManager.instance.getStringValue(PreferencesKeys.TOKEN)),
35+
leading: Text(LocaleManager.instance.getStringValue(PreferencesKeys.TOKEN)),
3636
title: textWelcomeWidget(),
3737
actions: [iconButtonChangeTheme()],
3838
),

lib/view/authenticate/test/viewmodel/test_view_model.dart

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:flutter/cupertino.dart';
2+
import 'package:fluttermvvmtemplate/core/base/model/base_view_model.dart';
23
import 'package:mobx/mobx.dart';
34
import 'package:provider/provider.dart';
45

@@ -11,12 +12,10 @@ part 'test_view_model.g.dart';
1112

1213
class TestViewModel = _TestViewModelBase with _$TestViewModel;
1314

14-
abstract class _TestViewModelBase with Store {
15-
BuildContext context;
15+
abstract class _TestViewModelBase with Store, BaseViewModel {
16+
void setContext(BuildContext context) => this.context = context;
1617

17-
void setContext(BuildContext context) {
18-
this.context = context;
19-
}
18+
void init() {}
2019

2120
@observable
2221
bool isLoading = false;
@@ -33,15 +32,13 @@ abstract class _TestViewModelBase with Store {
3332
}
3433

3534
void changeTheme() {
36-
Provider.of<ThemeNotifier>(context, listen: false)
37-
.changeValue(AppThemes.DARK);
35+
Provider.of<ThemeNotifier>(context, listen: false).changeValue(AppThemes.DARK);
3836
}
3937

4038
@action
4139
Future<void> getSampleRequest() async {
4240
isLoading = true;
43-
final list =
44-
await NetworkManager.instance.dioGet<TestModel>("x", TestModel());
41+
final list = await NetworkManager.instance.dioGet<TestModel>("x", TestModel());
4542
if (list is List) {
4643
//print true
4744
}

lib/view/authenticate/test/viewmodel/test_view_model.g.dart

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)