15 repository-uri
Mechanisms for passing shared instances or context down through a component hierarchy.
Distinguishing note: Focuses on dependency injection for component trees rather than general state management.
Explore 15 awesome GitHub repositories matching user interface & experience · State Injection Patterns. Refine with filters or upvote what's useful.
This project is a React-based WebGL renderer that enables the creation of three-dimensional scenes using a declarative, component-driven architecture. It functions as a bridge between a component-based user interface library and a low-level graphics engine, allowing developers to manage lights, cameras, and geometry as standard elements within a reactive tree structure. The library distinguishes itself by treating the scene graph as a declarative hierarchy that synchronizes directly with application state and lifecycle events. It utilizes a custom reconciler to map component updates to object
Passes scene-specific instances like cameras and renderers down the component tree through a provider-consumer pattern.
ButterKnife is an Android view binding library and Java annotation processor that automates the linking of UI elements and resources to class fields and methods. It functions as a system for managing view references and event listeners to reduce repetitive setup code in Android applications. The library uses compile-time code generation to replace manual view lookups and type casting with generated helper classes, ensuring a reflection-free runtime. It differentiates itself by providing mechanisms for binding interaction events directly to methods, eliminating the need for anonymous inner cla
Supports scoping view lookups to a specific view hierarchy for custom components or sub-screens.
Jotai is a state management library for React applications that utilizes an atomic model to handle data. It organizes application state into small, independent units called atoms, which automatically track dependencies and trigger granular updates to components. By building state through these composable primitives, the library ensures that only the necessary parts of an application re-render when data changes. The library distinguishes itself through its flexible approach to state composition and asynchronous data handling. It integrates promises directly into the state model, allowing devel
Creates isolated state instances by injecting specific values into a scope.
Kepler.gl is a web-based geospatial visualization framework designed for rendering large-scale location datasets. It functions as a modular React mapping component that enables developers to embed interactive, high-performance geographic visualizations into web applications, serving as a comprehensive engine for building browser-based GIS dashboards. The library distinguishes itself through a highly extensible architecture that centers on centralized state management. By utilizing a predictable state-driven model, it allows for the programmatic control of map layers, filters, and viewport set
Connects custom interface components to internal application state and action creators.
This is a reference project that implements the same TodoMVC application across multiple Flutter state management and architecture patterns, enabling direct side-by-side comparison. The project demonstrates how different approaches—including BLoC, Redux, MobX, Provider, and Scoped Model—handle state, data flow, and separation of concerns within the Flutter framework. Each architecture implementation is built to the same specification and runs an identical suite of shared integration tests, ensuring consistent behavior across all patterns. This allows developers to evaluate the trade-offs of e
Shares state by injecting a model object deep into the widget hierarchy using InheritedWidget.
RIBs is a mobile architecture framework that structures applications around isolated, lifecycle-managed units of business logic called RIBs. Each RIB separates routing, business logic, and construction into distinct classes through the Router-Interactor-Builder pattern, with hierarchical dependency injection scoping dependencies per node and static analysis enforcing architectural rules at build time. The framework enforces automatic disposal of Rx subscriptions scoped to interactor lifecycles, blocking compilation when subscriptions lack proper disposal to prevent memory leaks. It supports v
Defines explicit dependencies per business logic node and injects them from parent nodes through hierarchical DI.
Unstated is a React state management library that encapsulates application state and update logic within decoupled containers. It functions as a container-based state store, allowing state and business logic to be organized into standalone classes that trigger component re-renders when data changes. The project serves as a dependency injection framework, enabling specific state container instances to be supplied to the component tree. This mechanism supports the use of mock containers or stubs to facilitate controlled testing and custom configurations. The library covers global state managem
Supplies specific container instances to the application to facilitate stubbing and custom configuration during testing.
Riverpod is a reactive state management framework for Dart that manages application state through providers which automatically track dependencies and rebuild dependents when values change. It functions as an asynchronous data caching library, caching results of async operations and exposing loading, error, and data states to widgets without manual future handling. The framework includes a provider composition system that combines multiple providers into derived values that recompute automatically when any dependency changes, along with code generation for state providers that reduces boilerpl
Enables dependent providers to correctly resolve scoped values through explicit dependency declarations.
Acest proiect este un toolkit bazat pe TypeScript care oferă decoratori și structuri bazate pe clase pentru construirea componentelor Vue.js. Acționează ca un wrapper care înlocuiește configurația obiectului options API standard cu o bibliotecă bazată pe clase, permițând dezvoltatorilor să definească logica componentei, starea și metadatele folosind proprietăți tipizate. Toolkit-ul se concentrează pe utilizarea decoratorilor TypeScript pentru a mapa proprietățile clasei la opțiunile componentei, cum ar fi props, modele și watchere. Permite validarea prop-urilor bazată pe tipuri și oferă o sintaxă structurată pentru gestionarea sincronizării stării reactive și a comunicării între componente. Biblioteca acoperă arii largi de capabilități, inclusiv partajarea ierarhică a datelor prin dependency injection, two-way model binding și observarea schimbărilor de proprietăți. Include, de asemenea, sisteme pentru crearea de referințe tipizate către elemente HTML sau instanțe de componente copil pentru manipulare directă.
Implements a provide-and-inject pattern to pass data from parent to deep descendants.
Cucumber-js este un instrument de dezvoltare bazată pe comportament (BDD) și un framework de automatizare a testelor de acceptare pentru JavaScript. Servește drept motor de automatizare a testelor care permite utilizatorilor să definească comportamentul sistemului folosind scenarii lizibile pentru oameni, mapând pașii în text simplu către cod executabil pentru a verifica dacă software-ul respectă regulile de business și criteriile de acceptare. Proiectul utilizează un framework bazat pe Gherkin pentru a crea documentație executabilă a sistemului în limbaj natural. Suportă localizarea multi-limbaj pentru scrierea scenariilor în diverse limbi vorbite și oferă instrumente pentru parametrizarea scenariilor și gruparea regulilor de business pentru a organiza criteriile de acceptare. Motorul acoperă o gamă largă de capabilități de testare, inclusiv automatizarea browserului end-to-end și automatizarea testelor API pentru verificarea endpoint-urilor serviciilor web. Gestionează execuția testelor prin procesare paralelă, mocking-ul dependențelor de infrastructură și injecția de dependențe pentru partajarea stării, pentru a menține continuitatea datelor între pași. Integrarea este suportată pentru pipeline-urile de livrare continuă (CI/CD), permițând executarea suitelor de teste automatizate prin servere de build pentru a verifica modificările de cod înainte de deployment.
Provides a shared context object to step definitions to maintain data continuity across a single scenario.
Provider este un framework de gestionare a stării și de injecție a dependențelor pentru Flutter. Acesta simplifică partajarea datelor în arborele de widget-uri folosind un sistem care gestionează injecția de obiecte și servicii cu ciclu de viață și eliminare a resurselor automatizate. Framework-ul se distinge prin containere de stare reactive care fac legătura între datele asincrone din stream-uri și future-uri direct în arborele de componente. Suportă derivarea stării, permițând construirea și sincronizarea de noi obiecte pe baza valorilor observate din mai mulți provideri upstream. Pentru a menține performanța, oferă filtrare selectivă a rebuild-urilor și abonamente parțiale la stare pentru a limita actualizările la anumite porțiuni ale interfeței utilizator. Biblioteca acoperă arii largi de capabilități, inclusiv maparea interfețelor pentru a decupla implementările concrete de interfețele abstracte și compoziția providerilor pentru a aplatiza definițiile multiple de dependențe și a reduce imbricarea. Include, de asemenea, utilitare pentru rezolvarea opțională a dependențelor și conservarea stării aplicației în timpul ciclurilor de hot reload din dezvoltare.
Implements state propagation using Flutter's native InheritedWidget for efficient, constant-time data lookups across the widget tree.
Autofac este un framework de injecție a dependențelor și un container de inversare a controlului (IoC) pentru .NET. Funcționează ca un motor de înregistrare a componentelor care decuplează implementările claselor de dependențele lor prin injectarea serviciilor necesare via constructori sau proprietăți. Proiectul include o bibliotecă de scanare a assembly-urilor pentru a descoperi și înregistra automat componentele în binarele compilate pe baza unor criterii de tip specifice. Oferă un manager de durată de viață a serviciilor pentru a controla durata de viață a obiectelor în memorie folosind singletons, instance-per-dependency sau scope-uri de cerere izolate. Framework-ul acoperă o gamă largă de capabilități, inclusiv injecția recursivă a dependențelor, rezoluția condiționată a serviciilor și organizarea înregistrărilor în module reutilizabile. Suportă, de asemenea, gestionarea scope-urilor de rezoluție izolate pentru a asigura că instanțele sunt eliminate corespunzător. Sistemul se integrează cu diverse medii, oferind mecanisme pentru bootstrapping-ul găzduirii aplicațiilor, injecția dependențelor în funcții serverless și mocking-ul automatizat pentru teste.
Provides isolated scopes for resolving services to ensure that scoped instances are properly disposed.
TypeDI este un container de injecție de dependențe TypeScript și un instrument de inversare a controlului (IoC). Funcționează ca un registru centralizat și localizator de servicii care gestionează instanțierea obiectelor și decuplează dependențele componentelor folosind inferența de tip și decoratori. Proiectul oferă gestionarea dependențelor pe domenii (scoped) pentru a izola instanțele de servicii în contexte specifice, prevenind scurgerea datelor între diferite fluxuri de execuție. Suportă rezolvarea flexibilă a serviciilor prin utilizarea token-urilor sigure de tip și capacitatea de a mapa identificatori unici sau constructori de clasă către instanțe de servicii specifice. Containerul acoperă gestionarea cuprinzătoare a ciclului de viață al serviciilor, inclusiv durate de viață singleton și tranzitorii, precum și rezolvarea referințelor circulare. Include capabilități pentru gruparea serviciilor, instanțierea bazată pe fabrică și integrarea cu framework-uri externe. Pentru asigurarea calității, sistemul oferă utilitare pentru mocking-ul dependențelor și resetarea stării containerului pentru a asigura izolarea în timpul testării unitare.
Implements isolated resolution scopes to prevent data leakage between separate execution flows or users.
MvvmCross este un framework .NET MVVM conceput pentru construirea de aplicații cross-platform prin separarea logicii de business de interfețele native ale utilizatorului. Acesta funcționează ca un motor de navigare și o bibliotecă de data binding pentru UI, permițând încapsularea logicii în view-model-uri care sunt reutilizate pe diferite sisteme de operare. Framework-ul oferă un strat nativ de abstractizare hardware și un container de dependency injection pentru a decupla componentele și a oferi o interfață consistentă pentru accesarea funcțiilor dispozitivului. Acesta coordonează tranzițiile sigure la nivel de tip între ecranele native și gestionează sincronizarea datelor între clasele de logică partajată și componentele UI native prin notificări de schimbare a proprietăților. Proiectul acoperă o gamă largă de capabilități, inclusiv gestionarea ciclului de viață al aplicației, deeplinking URI și înregistrarea serviciilor prin inversion-of-control. Include, de asemenea, utilitare pentru internaționalizare, mesagerie pub-sub printr-un agregator de evenimente cu referință slabă și integrare hardware pentru senzori, geolocalizare și autentificare biometrică.
Provides nested dependency containers to allow isolated state instances within specific application scopes.
Modular is a framework for the Flutter ecosystem that provides a structured approach to application architecture through module-based dependency injection and navigation management. It enables developers to organize complex codebases into independent, decoupled units, facilitating the management of shared services and object lifecycles within specific application scopes. The framework distinguishes itself by offering hierarchical dependency scoping and lazy resolution, which allow for the automatic creation and disposal of objects based on the active module or page lifecycle. It also features
Injects specific values into a scope to allow independent state instances and lifecycle management.