Skip to content

mattheuspirovani/flutter_mvcs_template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flutter MVC+S Template

Projeto de exemplo usando a arquitetura MVC + S, conforme exemplificado nesse artigo. Contudo, no exemplo contido nesse repositório além do Provider está sendo utilizada a biblioteca GetIt.

Funcionamento

Na inicialização do app, método main(), é executado o setup do Service Locator (get_it) método inicializarServiceLocator(). A partir daí todos os models, que herdam de ChangeNotifier, devem ser utilizados através do construtor value da classe ChangeNotifierProvider. O exemplo a seguir, ilustra melhor o cenário:

Widget build(BuildContext context) {
    final appModel = GetIt.I.get<AppModel>();

    return ChangeNotifierProvider.value(
        value: appModel,
        child: Builder(builder: (context) {

Observe que primeiro é recuperada a instância do model (AppModel), que por sua vez é repassada ao construtor value da classe ChangeNotifierProvider. A partir daí, todos os descentendes desse widget terão acesso a mesma instância do AppModel.

Executado esse processo inicial, é criado o widget Stateful AppScaffold que, em sua inicialização, deverá invocar rotinas de inicialização do app (recuperação de dados do usuário, prefências do app, etc) e por fim, no build, deverá observar a existência de um usuário. Finalizada a inicialização, não havendo um usuário ele deverá exibir a view de onboarding, senão será apresentada a view inicial do app, uma vez que temos um usuário logado.

A partir da view de Inicio toda a navegação deve ser feita via Navigator.pushNamed, lembrando que as rotas são definidas na classe MaterialApp instanciada na classe App.

About

Template para aplicações em Flutter no padrão MVC + S utilizando Provider e Get_it

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors