RIBs VS swift-composable-architecture

Compare RIBs vs swift-composable-architecture and see what are their differences.


A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind. (by pointfreeco)
Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Access the most powerful time series database as a service
RIBs swift-composable-architecture
4 56
7,397 8,853
0.5% 3.1%
3.3 9.6
15 days ago 4 days ago
Kotlin Swift
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of RIBs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-25.


Posts with mentions or reviews of swift-composable-architecture. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-24.
  • What is a piece of code (or Framework, extension, etc.) that you add in every new project?
    6 projects | /r/swift | 24 Feb 2023
    At a minimum, Composable Architecture, and now Dependencies from Point-Free.
  • Ideal architecture for an app entirely in SwiftUI? Example code repo would be great
    4 projects | /r/SwiftUI | 21 Feb 2023
    I’ve built a couple of apps with this framework: https://github.com/pointfreeco/swift-composable-architecture
  • Trouble building for ios device
    7 projects | /r/bazel | 23 Nov 2022
    load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "com_github_buildbuddy_io_rules_xcodeproj", sha256 = "564381b33261ba29e3c8f505de82fc398452700b605d785ce3e4b9dd6c73b623", url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.9.0/release.tar.gz", ) http_archive( name = "cgrindel_rules_spm", sha256 = "03718eb865a100ba4449ebcbca6d97bf6ea78fa17346ce6d55532312e8bf9aa8", strip_prefix = "rules_spm-0.11.0", url = "https://github.com/cgrindel/rules_spm/archive/v0.11.0.tar.gz", ) load( "@cgrindel_rules_spm//spm:defs.bzl", "spm_pkg", "spm_repositories", ) load( "@cgrindel_rules_spm//spm:deps.bzl", "spm_rules_dependencies", ) spm_rules_dependencies() load( "@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl", "xcodeproj_rules_dependencies", ) xcodeproj_rules_dependencies() load( "@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies", ) apple_rules_dependencies() load( "@build_bazel_rules_swift//swift:repositories.bzl", "swift_rules_dependencies", ) swift_rules_dependencies() load( "@build_bazel_rules_swift//swift:extras.bzl", "swift_rules_extra_dependencies", ) swift_rules_extra_dependencies() load( "@build_bazel_apple_support//lib:repositories.bzl", "apple_support_dependencies", ) apple_support_dependencies() spm_repositories( name = "swift_pkgs", platforms = [ ".macOS(.v10_15)", ], dependencies = [ spm_pkg( url = "https://github.com/apple/swift-log.git", exact_version = "1.4.2", products = ["Logging"], ), spm_pkg( url = "https://github.com/pointfreeco/swift-composable-architecture.git", exact_version = "0.43.0", products = ["ComposableArchitecture"], ), spm_pkg( name = "Bow", url = "https://github.com/bow-swift/bow.git", exact_version = "0.8.0", products = ["Bow", "BowEffects", "BowOptics"], ), spm_pkg( url = "https://github.com/grpc/grpc-swift.git", exact_version = "1.7.3", products = ["GRPC"], ), spm_pkg( url = "https://github.com/hyperoslo/Cache", exact_version = "6.0.0", products = ["Cache"], ), ], )
  • What SwiftUI architecture are you all using?
    5 projects | /r/SwiftUI | 18 Oct 2022
    I’m fairly exclusive to https://github.com/pointfreeco/swift-composable-architecture. There is a learning curve to get started but I really enjoy working with it.
    5 projects | /r/SwiftUI | 18 Oct 2022
  • What apps should I make to get hired?
    2 projects | /r/iOSProgramming | 7 Sep 2022
    Look into some of the architectural patterns out there, find one that makes sense to you, and use that to build your app. For example, check out the Composable Architecture, Clean Architecture, VIPER, MVVM.
  • From Flutter development to iOS native development
    2 projects | /r/iOSProgramming | 1 Aug 2022
    You can find out more about it here.
  • SwiftUI for Mac 2022
    6 projects | news.ycombinator.com | 3 Jul 2022
    If you're interested in SwiftUI and care about feature composability, decent test coverage, dependency injection, isolated side effects, functional core and being able to use live previews properly, take a look at: https://github.com/pointfreeco/swift-composable-architecture

    Been using it at work for a moderately complex app (not a toy app by any means) and it's been fantastic. We're 7 months in and haven't hit any gotchas, but the learning curve can be a bit steep, especially for more junior iOS devs.

    Helps that they have a full video series taking you through the library and how they built it: https://www.pointfree.co/collections/composable-architecture

  • SwiftUI in 2022
    7 projects | news.ycombinator.com | 25 May 2022
    One point that's not being discussed enough -- using SwiftUI (since it's heavily value-typed / struct-based) prevents a whole host of problems around retain cycles, typically the bugbear of iOS dev. I recently built an iOS app from scratch with recent grads with zero Swift experience (but had done React).

    It was ~2mo before they even had to learn what a retain cycle was, and that was from using UIKit.

    Of course you still eventually see this if / when you use `@ObservedObjects` and their implementation, but in our case we were also using https://github.com/pointfreeco/swift-composable-architecture which hides this away as well.

  • Is MVVM the only architecture you’ve used when developing iOS app?
    3 projects | /r/swift | 22 May 2022
    There’s a nice open source swift library by the pointfree guys, called The Composable Architecture (TCA). Check it out 🙂

What are some alternatives?

When comparing RIBs and swift-composable-architecture you can also consider the following projects:

Clean Architecture for SwiftUI + Combine - SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.

redux - Predictable state container for JavaScript apps

tca-swiftui-navigation-demo - Demo project that shows how to implement navigation in SwiftUI iOS application using Swift Composable Architecture

iOS-Viper-Architecture - This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.


GRDB.swift - A toolkit for SQLite databases, with a focus on application development

MVVM.Demo - This is a demo application used to educate and interview iOS Engineers.

Tempura - A holistic approach to iOS development, inspired by Redux and MVVM

VIPER Module Generator - A Swift 4.2 VIPER Module Boilerplate Generator with predefined functions and a BaseViewProtocol.


redux - Predictable state container for JavaScript apps [Moved to: https://github.com/reduxjs/redux]

Spin - Spin aims to provide a versatile Feedback Loop implementation working with the three main reactive frameworks available in the Swift community (RxSwift, ReactiveSwift and Combine)