Skip to content

Instantly share code, notes, and snippets.

View diefferson's full-sized avatar
🎯
Focusing

Diefferson Santos diefferson

🎯
Focusing
View GitHub Profile
@diefferson
diefferson / mvvmp_example.dart
Created October 20, 2021 14:50
MVVMP example
import 'package:base/base.dart';
import 'package:flutter/material.dart';
class MyScreen extends StatefulWidget {
@override
_MyScreenState createState() => _MyScreenState();
}
class _MyScreenState extends BaseState<MyScreen, MyPresenter>
with MyScreenActions {
@diefferson
diefferson / base_state.dart
Created September 3, 2021 15:25
BaseState Flutter
class BaseState {
BaseState._();
factory BaseState.success(dynamic data) = SuccessState;
factory BaseState.error(NoodleException error) = ErrorState;
factory BaseState.loading() = LoadingState;
factory BaseState.done() = DoneState;
}
@diefferson
diefferson / disposable.dart
Created June 8, 2021 01:03
Stark Disposable Interface
import 'package:stark/stark.dart';
class LoginViewModel implements Disposable {
@override
dispose(){
//this method is called when the LoginViewModel is diposed, use to dispose your RX Subjects or Streams
}
}
@diefferson
diefferson / home.dart
Created June 8, 2021 00:47
Stark component
import 'package:flutter/material.dart';
import 'package:stark/stark.dart';
class _MyHomePageState extends State<MyHomePage> with StarkComponent {
late ViewModel _viewModel;
@override
void initState() {
super.initState();
_viewModel = get<ViewModel>();
@diefferson
diefferson / get_injections.dart
Created June 8, 2021 00:34
Stark Get Injections
import 'package:stark/stark.dart';
// get simple injection
final MyUseCase useCase = Stark.get();
final useCase = Stark.get<MyUseCase>();
// get named injection
final api = Stark.get<Api>(named: "DEFAULT");
// get injection passing params
@diefferson
diefferson / app.dart
Created June 8, 2021 00:25
Stark init
import 'package:flutter/material.dart';
import 'package:stark/stark.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
void initStark() {
Stark.init(
[
import 'package:stark/stark.dart';
final myModule = {
singleWithParams((i,p) => Api(p["token"])),
factoryWithParams((i,p) => MyPresenter(p["view"])),
};
@diefferson
diefferson / module_named.dart
Last active June 8, 2021 00:36
Stark named
import 'package:stark/stark.dart';
final myModule = {
single((i) => Api(), named: "DEFAULT"),
single((i) => Api(), named: "EXTERNAL"),
};
@diefferson
diefferson / mobule_binding.dart
Created June 7, 2021 23:59
Stark Interfaces binding
import 'package:stark/stark.dart';
final theSimpleModule = {
single<Repository>((i) => MyRepository(i.get())),
factory<AuthUseCase>((i) => SocialAuthUseCase(i.get())),
};
@diefferson
diefferson / module.dart
Last active June 7, 2021 23:45
Stark Examples
import 'package:stark/stark.dart';
final appModule = {
single((i) => Api()),
factory((i) => UseCase(i.get())),
};