awesome-repositories.com
Blog
MCP
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektMCP-ServerÜber unsRanking-MethodikPresse
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
nalexn avatar

nalexn/clean-architecture-swiftui

0
View on GitHub↗
6,571 Stars·818 Forks·Swift·MIT·13 Aufrufe

Clean Architecture Swiftui

This is a demonstration and template project that applies Clean Architecture principles to SwiftUI application development. It implements a layered architecture that separates presentation, business logic, and data access into independent layers, with unidirectional data flow managed through a single immutable app store that serves as the sole source of truth for all screens.

The project distinguishes itself through its implementation of interactor-driven business logic, where all domain rules and workflows live in stateless objects that receive requests and update the central store. Dependencies are injected into the SwiftUI view hierarchy through the environment rather than manual wiring, and data access is hidden behind repository protocol abstractions so business logic never depends on concrete persistence or networking implementations. Navigation is handled programmatically through Combine publishers that broadcast state changes, enabling decoupled screen transitions and deep link handling.

The template includes an asynchronous HTTP client built on Swift's async/await concurrency model, local data persistence using SwiftData, and isolated unit and UI testing of each architectural layer by mocking dependencies through protocols. The project serves as both a reference implementation and a reusable starting point for building SwiftUI applications with Clean Architecture patterns.

Features

  • Clean Architecture SwiftUI Applications - Demonstrates Clean Architecture principles applied to SwiftUI application development with layered separation.
  • SwiftUI Templates - Serves as a reusable template for building SwiftUI apps with Clean Architecture, the primary purpose of the repository.
  • Repository Pattern with Swap Support - Hides data origin behind protocols so the business layer can swap real and mocked data sources without changing code.
  • Repository Protocol Abstractions - Hides data access behind repository protocols so business logic never depends on concrete implementations.
  • SwiftUI Clean Architecture Sample Applications - Serves as a demonstration project applying Clean Architecture to SwiftUI with SwiftData persistence and networking.
  • Stateless Interactor Business Logics - Places all domain rules and workflows into stateless interactor objects that update the central store.
  • Environment-Based Injections - Implements a dependency injection pattern using SwiftUI's environment, a key architectural feature of the project.
  • Dependency Injection Providers - Provides services and state to views through SwiftUI's environment, eliminating manual dependency injection wiring.
  • Environment Dependency Injections - Injects dependencies into the SwiftUI view hierarchy through the environment rather than manual wiring.
  • Protocol-Oriented Injection - Decouples app layers by abstracting data access behind repository protocols and injecting dependencies through SwiftUI's environment.
  • Logic and Presentation Separation - Separates UI code from business rules so each layer can be developed, tested, and maintained independently.
  • Single-Source-of-Truth Modeling - Holds the entire application state in one observable object as the single source of truth.
  • Unidirectional Data Flow Architectures - Implements unidirectional data flow with a central immutable store updated by interactors and read by views.
  • Centralized State Stores - Keeps the entire application state in one observable object that acts as the single source of truth for all screens.
  • Layered Architectures - Separates presentation, business logic, and data access into independent layers for isolated development and testing.
  • Global State Stores - Centralizes the entire application state in a single immutable store, updated by interactors and read by views.
  • Business Logic Encapsulations - Encapsulates all domain rules and workflows into stateless interactor objects that update the central state.
  • Unidirectional State Management - Manages global application state through a single immutable store with unidirectional data flow.
  • SwiftData Persistence Examples - Provides a concrete example of SwiftData persistence integrated into a Clean Architecture SwiftUI app.
  • Programmatic Navigation - Controls screen transitions and deep-link handling through code rather than relying on SwiftUI's built-in navigation.
  • Deep Link Navigators - Controls screen transitions and handles deep links through code using Combine publishers and centralized navigation state.
  • Multi-View - Implements multi-view deep linking that transitions through the entire view chain to the target screen.
  • SwiftUI Deep Link Parsers - Provides deep link parsing that toggles SwiftUI binding state for programmatic navigation to target views.
  • Local Data Persistence - Stores and retrieves structured data on the device using SwiftData local persistence.
  • Environment-Injected Navigation States - Injects a centralized navigation state object into the SwiftUI environment for shared access across views.
  • Asynchronous HTTP Clients - Ships an async/await HTTP client for fetching and sending data to remote servers.
  • Swift Async-Await Networking Layers - Provides a concrete async/await networking layer for SwiftUI apps.
  • Isolated Layer Testing - Enables unit testing of presentation, business logic, and data access independently by mocking dependencies through protocols.
  • Interactor and View Testings - Provides full test coverage for both business logic interactors and SwiftUI views through isolated testing.
  • Combine-Based Navigations - Ships a Combine-based navigation system that broadcasts state changes for decoupled screen transitions.
  • Combine Publisher Navigations - Implements programmatic navigation using Combine publishers for decoupled screen transitions.
  • Architecture Patterns - Demonstrates production-ready SwiftUI with clean architecture.
  • Example Applications - Clean architecture production setup demo.
  • Open Source Applications - Example project demonstrating clean architecture principles.

Star-Verlauf

Star-Verlauf für nalexn/clean-architecture-swiftuiStar-Verlauf für nalexn/clean-architecture-swiftui

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Häufig gestellte Fragen

Was macht nalexn/clean-architecture-swiftui?

This is a demonstration and template project that applies Clean Architecture principles to SwiftUI application development. It implements a layered architecture that separates presentation, business logic, and data access into independent layers, with unidirectional data flow managed through a single immutable app store that serves as the sole source of truth for all screens.

Was sind die Hauptfunktionen von nalexn/clean-architecture-swiftui?

Die Hauptfunktionen von nalexn/clean-architecture-swiftui sind: Clean Architecture SwiftUI Applications, SwiftUI Templates, Repository Pattern with Swap Support, Repository Protocol Abstractions, SwiftUI Clean Architecture Sample Applications, Stateless Interactor Business Logics, Environment-Based Injections, Dependency Injection Providers.

Welche Open-Source-Alternativen gibt es zu nalexn/clean-architecture-swiftui?

Open-Source-Alternativen zu nalexn/clean-architecture-swiftui sind unter anderem: dimillian/movieswiftui — MovieSwiftUI is a movie discovery application built with SwiftUI that integrates with the MovieDB API to retrieve and… reflux/refluxjs — Refluxjs is a state management library designed to implement a unidirectional dataflow architecture. It manages… reswift/reswift — ReSwift is a unidirectional data flow framework for Swift applications that centralizes state management within a… day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,… krasimir/react-in-patterns — This project is a comprehensive guide to architectural patterns and design techniques for building modular user… pointfreeco/swift-dependencies — This library provides a dependency management system for Swift applications that utilizes an environment-based…

Open-Source-Alternativen zu Clean Architecture Swiftui

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Clean Architecture Swiftui.
  • dimillian/movieswiftuiAvatar von Dimillian

    Dimillian/MovieSwiftUI

    6,529Auf GitHub ansehen↗

    MovieSwiftUI is a movie discovery application built with SwiftUI that integrates with the MovieDB API to retrieve and display movie information, ratings, and metadata. It functions as a cross-platform Apple application, providing a consistent user experience across iOS and macOS from a single codebase. The project implements a reactive data flow using Combine to synchronize global application state with the user interface. It employs a unidirectional data flow and a centralized store to maintain a single source of truth across different screens and components. The application utilizes declar

    Swift
    Auf GitHub ansehen↗6,529
  • reflux/refluxjsAvatar von reflux

    reflux/refluxjs

    5,323Auf GitHub ansehen↗

    Refluxjs is a state management library designed to implement a unidirectional dataflow architecture. It manages application state through a strict cycle of actions and stores to prevent unpredictable update loops. The library coordinates asynchronous operations by managing event streams and triggering related success or failure actions. It also provides a global state registry that tracks store states via unique identifiers, enabling deep cloning for persistence and time-travel debugging. Its capability surface covers centralized state management, including the creation of data stores and de

    JavaScript
    Auf GitHub ansehen↗5,323
  • reswift/reswiftAvatar von ReSwift

    ReSwift/ReSwift

    7,594Auf GitHub ansehen↗

    ReSwift is a unidirectional data flow framework for Swift applications that centralizes state management within a single store. It ensures predictable and traceable updates by requiring all state modifications to occur through explicit actions processed by reducer functions. The library includes a state time travel debugger that records and replays sequences of actions to reload or rewind the application state. It also provides an asynchronous action dispatcher to handle side effects and network requests while maintaining synchronized state updates. The framework covers a broad surface of st

    Swift
    Auf GitHub ansehen↗7,594
  • day8/re-frameAvatar von day8

    day8/re-frame

    5,532Auf GitHub ansehen↗

    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

    Clojureclojurescriptre-framereact
    Auf GitHub ansehen↗5,532
Alle 30 Alternativen zu Clean Architecture Swiftui anzeigen→