Reactant is a reactive architecture for iOS

Overview

Reactant

Reactant is a foundation for rapid and safe iOS development. It allows you to cut down your development costs by improving reusability, testability and safety of your code, especially your UI. Check our our quick-start guide to learn more.

CI Status Version License Platform Apps Slack Status

Requirements

  • iOS 9.0+
  • Xcode 8.0+
  • Swift 3.0+

NOTE: We have experimental support for macOS platform in macOS branch, but it's incomplete and definitely not recommended for production. Our plan is to add full macOS support in near future.

Communication

Feel free to reach us on Slack! https://swiftkit.brightify.org/

Get Started

Head to our quick-start guide to learn how Reactant works and what it can do to decrease your development costs!

Versioning

This library uses semantic versioning. We won't introduce any breaking changes without releasing a new major version. Our main goal is to keep the API as stable as possible. We build our applications on top of Reactant as well and we absolutely hate any breaking changes.

Authors

Used libraries

Runtime

Tests

Comments
  • Make UINavigationController implement DialogDismissalListener

    Make UINavigationController implement DialogDismissalListener

    This is needed to make the listener work when presenting from navigation, but expecting result in controller presented in UINavigationController.

    extension UINavigationController: DialogDismissalListener {
    
        public func dialogWillDismiss() {
            if let listener = topViewController as? DialogDismissalListener {
                listener.dialogWillDismiss()
            }
        }
    
        public func dialogDidDismiss() {
            if let listener = topViewController as? DialogDismissalListener {
                listener.dialogDidDismiss()
            }
        }
    }
    
    opened by matoushybl 1
  • FontProvider should specify methods in ascending/descending order instead of chaotically.

    FontProvider should specify methods in ascending/descending order instead of chaotically.

    This will make navigation through code easier as well as allow the programmer to quickly change the current font weight by steps without having to look it up.

    enhancement 
    opened by MatyasKriz 0
  • Add method for removing all views from a superview.

    Add method for removing all views from a superview.

    This is quite useful when working with our stack and UIStackView.

    extension UIView {
        @discardableResult
        public func removeSubviews() -> [UIView] {
            let subviews = self.subviews
            for subview in subviews {
                subview.removeFromSuperview()
            }
    
            return subviews
        }
    }
    
    proposal 
    opened by matoushybl 1
  • ControllerRootViewContainer could be typed.

    ControllerRootViewContainer could be typed.

    The implementation could be like this:

    public final class TypedControllerRootViewContainer<CONTROLLER>: ControllerRootViewContainer
    
    public class ControllerRootViewContainer: UIView, Configurable
    

    It would allow switching in styles in Configuration like this:

    controllerRoot = { view in
        if view is TypedControllerRootViewContainer<LoginController> { ... }
    }
    
    proposal 
    opened by matoushybl 0
  • Add typealias for `Observable`

    Add typealias for `Observable`

    When overriding actions in ViewBase error occurs and compiler informs that "Property does not override any property from its superclass" unless RxSwift is imported. It would be nice to solve it by adding a typealias for Observable.

    opened by kiwisip 0
Owner
Brightify
It's not really about what, but how.
Brightify
Example of Clean Architecture of iOS app using RxSwift

Clean architecture with RxSwift Contributions are welcome and highly appreciated!! You can do this by: opening an issue to discuss the current solutio

null 3.6k Dec 29, 2022
YARCH iOS Architecture

YARCH is an architecture pattern developed primarly for iOS applications. You can ask any questions in our telegram channel. Russian version of the re

Alfa Digital 196 Jan 3, 2023
This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.

iOS Viper Architecture: Sample App This repository contains a detailed sample app that implements VIPER architecture using libraries and frameworks li

MindOrks 653 Jan 2, 2023
Sample Code of the App Architecture Book

App Architecture iOS Application Design Patterns in Swift Welcome to the repository of the App Architecture book! This repository hosts all sample cod

objc.io 2k Dec 29, 2022
Swift Interaction with VIPER Architecture

SwiftyVIPER SwiftyVIPER allows easy use of VIPER architecture throughout your iOS application. VIPER Architecture What is VIPER? Great question! VIPER

Cody Winton 121 Jan 2, 2023
SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.

Articles related to this project Clean Architecture for SwiftUI Programmatic navigation in SwiftUI project Separation of Concerns in Software Design C

Alexey Naumov 4k Dec 31, 2022
Clean Actor Model Architecture

CAMA Eonil, 2021. CAMA is short for "Clean Actor Model Architecture". As like it says, its CA(Clean Architecture) + AM(Actor model). AM here means AM

Eonil 1 Oct 10, 2021
This is an example of clean architecture and MVVM pattern written in swift

Swift Clean Architecture MVVM This is an example of clean architecture and MVVM pattern written in swift First of all thanks to all of those who made

null 19 Oct 12, 2022
MoneySafe - Application for tracking income and expenses and analyzing expenses. VIPER architecture, CoreData, Charts

?? MoneySafe ?? Application for tracking income and expenses and analyzing expen

Vladislav 5 Dec 27, 2022
Sample project using VIPER architecture

VIPER-Persons Small project using a master and detail view Demonstrates the use of the following features: VIPER architecture (https://mutualmobile.co

Sebastian Wramba 43 Feb 11, 2022
Challenge-viper-finance - Project for VIPER Architecture Dev Sprints on Devpass

VIPER Challenge - Finance App ?? Neste desafio, aplicaremos conceitos da arquite

Devpass 15 Oct 11, 2022
Stateful view controller containment for iOS and tvOS

StateViewController When creating rich view controllers, a single view controller class is often tasked with managing the appearance of many other vie

David Ask 309 Nov 29, 2022
Viper Framework for iOS using Swift

Write an iOS app following VIPER architecture. But in an easy way. Viper the easy way We all know Viper is cool. But we also know that it's hard to se

Ferran Abelló 504 Dec 31, 2022
A holistic approach to iOS development, inspired by Redux and MVVM

Tempura is a holistic approach to iOS development, it borrows concepts from Redux (through Katana) and MVVM. ?? Installation Requirements CocoaPods Sw

Bending Spoons 693 Jan 4, 2023
A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others

ios-architecture WIP ?? ?? ?? ??️ Demystifying MVC, MVVM, VIPER, RIBs and many others A collection of simple one screen apps to showcase and discuss d

Pawel Krawiec 1.3k Jan 3, 2023
Sample applications of iOS Design patterns written using swift.

ios-design-patterns This repo contains all my Sample applications of iOS Design patterns written using swift. Link for my Design patterns Blog : https

ShreeThaanu Raveendran 3 Nov 2, 2022
Reactive WebSockets - A lightweight abstraction layer over Starscream to make it reactive.

RxWebSocket Reactive extensions for websockets. A lightweight abstraction layer over Starscream to make it reactive. Installation RxWebSocket is avail

Flávio Caetano 57 Jul 22, 2022
Mini-application iOS native avec Xcode et Swift exploitant l'architecture MVVM et le framework Combine d'Apple pour la mise en place de la programmation réactive fonctionnelle, le tout avec UIKit.

iOS (Swift 5): Test MVVM avec Combine et UIKit L'architecture MVVM et la programmation réactive fonctionnelle sont très utlisées dans le développement

Koussaïla BEN MAMAR 2 Nov 5, 2022
A powerful, minimal and composable architecture for building reactive iOS apps with SwiftUI or UIKit

SourceArchitecture A simple yet powerful framework for reactive programming with only a minimal optimized set of types. Sources are self-contained, hi

Daniel Hall 6 Nov 1, 2022
iOS native app demo with Xcode and Swift using MVVM architecture and Apple's Combine framework for functional reactive programming, all with UIKit

iOS (Swift 5): MVVM test with Combine and UIKit MVVM and functional reactive programming (FRP) are very used in iOS development inside companies. Here

Koussaïla BEN MAMAR 2 Dec 31, 2021