re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized, immutable database that serves as the single source of truth for the entire application state, enforcing a strict unidirectional data flow where events trigger state transitions and subsequent view updates. The framework distinguishes itself through a reactive signal graph and an interceptor-based middleware pipeline. By treating application logic as a sequence of data-driven events and declarative side effects, it decouples business logic from the view layer. This architectur
This project provides a structural pattern for organizing React and TypeScript applications by decoupling business logic from user interface components and external infrastructure. It implements a layered architecture that isolates core domain rules, ensuring that the application remains independent of specific frameworks, libraries, or external service implementations. The architecture relies on dependency injection and inversion principles to manage service implementations, allowing for modularity and easier testing. By utilizing a functional core and imperative shell, the system separates
This project is an automated testing framework designed to capture and verify the visual state of Android interface components. It provides a system for generating deterministic snapshots of UI elements, allowing developers to establish baselines for layout consistency and detect unintended visual regressions across different software versions and hardware configurations. The framework distinguishes itself by enabling isolated component rendering, which allows individual views to be tested without requiring a full application build. It ensures consistency by controlling the rendering lifecycl
This is the open-source Android application for Kickstarter, a crowdfunding platform that connects creators with backers. The app enables users to discover creative projects and campaigns, pledge financial support in exchange for tiered rewards, and share campaign details through social media and messaging platforms. The application is built with a standard Android architecture that combines compile-time dependency injection, reactive data flows, and declarative UI binding. It uses Dagger 2 for wiring together services and repositories, RxJava for managing asynchronous operations, and a Model