Comments (2)
@jacobaraujo7 obrigado pelo feedback e críticas, principalmente por vir de você, que tem me inspirado muito a estudar cada vez mais esse framework incrível.
Eu vi o Asuka, curti muito! Eu gosto dessa idéia de criar coisas simples, que resolvem um problema real e específico e que você pode encaixar no projeto facilmente, sem ser muito invasivo. O que já que me levou a me perguntar se não estou começando a deixar o OneContext com muitas responsabilidades rsrsrs.
Se for pra ficar melhor, existe sim a possibilidade de mexer no context. Na verdade, o context inicialmente não era estático, eu tornei ele assim para que fosse possível verificar se já existia um context disponível por fora da própria instância do OneContext(devido a um assert para context = null no get dele, que “impossibilitaria” isso). E adicionei o hasContext (também estático) junto com essa mudança, para ajudar na validação.
Grande parte do OneContext está dependente do context para fazer as coisas acontecerem, e essa variável context pode não existir mesmo que a instancia do OneContext exista.
O problema era que, se eu tentasse acessar algum método que utiliza o context(diálogos por exemplo), antes do context ser carregado no builder do MaterialApp, eu era forçado a disparar um erro, avisando deste problema, até mesmo para avisar que o dev pode ter esquecido de configurar o builder do MaterialApp, e até aí tudo bem.
Mas eu perdia essa flexibilidade de poder chamar ele de qualquer lugar(no caso de widgets que podem ser criados antes do context ser carregado ou mesmo antes do próprio MaterialApp), por que, mesmo que o context não exista em determinado momento, nos próximos frames ele já vai estar disponível e aí já funcionaria em um widget ancestral por exemplo. Foi só por isso mesmo que mudei para estático, mas se reparar ele está como privado, o que é bem estranho rsrss, mas foi a forma q encontrei de permitir essa maior flexibilidade.
De qualquer maneira, achei interessante sim essas possibilidades que vc citou, vou pensar direitinho a respeito disso.
Testes unitários, sem dúvida vou colocar, principalmente pq não é mais só eu q está usando o package, então aumenta ainda mais essa responsabilidade. Próximo release já vai ter alguma coisa.
No mais, obrigado pelas críticas, e nos veremos mais a frente, já que estou de olho em um package referente a mobx que você fez que estou querendo unificar com outro que fiz. No dia que comentei do meu package com o Deivão, ele mostrou que você já tinha tido a mesmo idéia e criado um package e acredito que talvez unificar em um lugar só seria mais legal. Então, logo em breve estarei mandando uns PRs.
from one_context.
Que legal!
Realmente o Padrão Context que é a base do Flutter ajuda em algumas coisas mas limita em outras.
Sobre as responsabilidades do Package, eu realmente vejo muito futuro no pub sub do onNotification, e o esquema de navegação. Ou seja, temos uns 3 peckages ai huehuehue.
O maior trunfo são os Overlay, realmente funcionam muito bem a solução de drag, parabens de verdade.
from one_context.
Related Issues (20)
- Provider.of<T>(OneContext().context) has error HOT 1
- CupertinoTheme support HOT 1
- Flutter 2.0.1 compatibility HOT 4
- OneContext().popAllDialogs() not working!! HOT 1
- Can I use one_context to optimize my app size? HOT 2
- SnackBar covered by keyboard
- Cannot hide or remove snackbar displayed by OneContext().showSnackBar HOT 4
- flutter 3.0
- Notifications navigation not working properly when application terminate HOT 2
- OneContext().popAllDialogs() or OneContext().popDialogs() don't work. This function pop my screen instead of my dialog HOT 9
- change modal backdrop color HOT 2
- changeMode(ThemeMode.system) not saved HOT 2
- Problems with the snackbar HOT 2
- [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: 'package:one_context/src/controllers/navigator_controller.mixin.dart': Failed assertion: line 42 pos 9: '_key != null': Navigator key not found! MaterialApp.navigatorKey is null or not set correctly. HOT 1
- Gorouter navigation breaks when OneContext.builder is used in material app HOT 3
- Not working in flutter web (Please Fix It)
- Already a builder in MaterialApp HOT 3
- routeName always return null HOT 1
- Issue on pop HOT 2
- Please update the package to most latest version of the flutter HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from one_context.