Code Monkey home page Code Monkey logo

Comments (2)

emanuel-braz avatar emanuel-braz commented on June 1, 2024

@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.

jacobaraujo7 avatar jacobaraujo7 commented on June 1, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.