SpaceX rocket listing app using RxSwift and CLEAN Architecture with MVVM

Related tags

Guides Jibble
Overview

Jibble

Platform Languages

SpaceX rocket listing app using RxSwift and CLEAN Architecture with MVVM

Demo

Features

  • Reactive Bindings
  • URL / JSON Parameter Encoding
  • Filter Years In Rocket Listing
  • Network Requests using URLSession
  • HTTP Response Validation
  • Image Caching
  • Unit Tests

Cool Features

  • CLEAN Architecture using MVVM-C with DIContainers

Requirements

  • iOS 15.0 (Change this to a lower version in project settings if you are not on latest xcode IDE)
  • Xcode 13+
  • Swift 5+

Clean Architecture using MVVM-C

in Clean Architecture, we have different layers in the application. The main rule is not to have dependencies from inner layers to outers layers. The arrows pointing from outside to inside is the Dependency rule. There can only be dependencies from outer layer inward After grouping all layers we have: Presentation, Domain and Data layers.

  • Domain Layer

    • Domain Layer (Business logic) is the inner-most part of the onion (without dependencies to other layers, it is totally isolated). It contains Entities(Business Models)
  • Presentation Layer

    • Presentation Layer contains UI (UIViewControllers or SwiftUI Views). Views are coordinated by ViewModels (Presenters). Presentation Layer depends only on the Domain Layer
  • Data Layer

    • Data Layer contains Repository Implementations and one or many Data Sources. Repositories are responsible for coordinating data from different Data Sources. Data Source can be Remote or Local (for example persistent database). Data Layer depends only on the Domain Layer. In this layer, we can also add mapping of Network JSON Data (e.g. Decodable conformance) to Domain Models
  • Dependency Direction

    • Presentation Layer -> Domain Layer <- Data Repositories Layer
    • Presentation Layer (MVVM) = ViewModels(Presenters) + Views(UI)
    • Domain Layer = Entities
    • Data Repositories Layer = Repositories Implementations + API(Network) + Persistence DB
  • Coordinators

    • Navigation of the app is handled by coordinators
  • DIContainers

    • Dependencies are injected using dependency injection.

Dependencies

Installation

  • Clone the repo and open the .xcworkspace file
You might also like...
Create a simple MVVM-C iOS architecture with Swift for starters

iOS-Architecture-MVVM MVVM+Coordinators IOS Architecture Tutorial By Bobby Pehtr

A travel guide app that implements MVVM design pattern, using mock API.
A travel guide app that implements MVVM design pattern, using mock API.

✈️ Travel Guide App 🏖 A travel guide app that implements MVVM design pattern, using mock API. ✨ Features 🔸 Project Features Written in Swift Impleme

SignalKit is a reactive Swift framework with focus on clean and readable API.
SignalKit is a reactive Swift framework with focus on clean and readable API.

Abstract SignalKit is a lightweight event and binding framework. The core of SignalKit is the Observable protocol. Each implementation of the Observab

ProductListSwiftUI - SwiftUI Project to fetch product list using the fakestoreapi and the MVVM architectural pattern
ProductListSwiftUI - SwiftUI Project to fetch product list using the fakestoreapi and the MVVM architectural pattern

ProductListSwiftUI SwiftUI Project to fetch product list using the fakestoreapi

A sample project exploring MVVM pattern with SwiftUI/Combine, using Unsplash API (via Picsum.photos API)
A sample project exploring MVVM pattern with SwiftUI/Combine, using Unsplash API (via Picsum.photos API)

CombineUnsplash A sample project exploring MVVM pattern with SwiftUI/Combine, using Unsplash API (via Picsum.photos API) with detail example. Resource

SampleProjectMVVM - Sample project using MVVM parsing data from Giphy.com
SampleProjectMVVM - Sample project using MVVM parsing data from Giphy.com

iOS Take Home Create an iOS app with two views, MainViewController and DetailVie

A demo demonstrates how to use combine and MVVM in the SwiftUI app
A demo demonstrates how to use combine and MVVM in the SwiftUI app

SwiftUI-MVVM-Combine A demo demonstrates how to use combine and MVVM in the Swif

NewsAppMVVM - A Swift iOS App created to practice MVVM Design Pattern
NewsAppMVVM - A Swift iOS App created to practice MVVM Design Pattern

NewsAppMVVM A Swift iOS App created to practice MVVM Design Pattern. This app re

MVVM-of-SuYeon - Build an Instagram iOS App Clone with Cloud Firestore, Swift 5

MVVM-of-SuYeon Instagram Firestore App Clone | Swift 5 + iOS 14 | MVVM Build an

Owner
Ammad Akhtar
Swift is <3 .... MEAN is the way to go ;)
Ammad Akhtar
MVVM-RXSWIFT-COMBINE- - Demo application populating posts from network request using

MVVM => RXSWIFT + COMBINE Demo application populating posts from network request

Amr Al-khayat 0 Jan 2, 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
WhaleFull - MVVM + RxSwift + CTMediator + MJRefresh + DZNEmptyDataSet

WhaleFull ?? . MVVM + RxSwift + CTMediatror + MJRefresh + DZNEmptyDataSet Englis

77。 0 Mar 10, 2022
PunkAPI(BrewDog) 을 이용한 RxSwift-MVVM 예제 (Naver Tech Concert)

BringMyOwnBeer ?? RxSwift를 이용한 MVVM 패턴 예제 Contents About BringMyOwnBeer ?? Concept Contact Me About BringMyOwnBeer ?? 생소한 RxSwift와 MVVM 개념을 보다 쉽게 이해할

Bo-Young PARK 78 Dec 17, 2022
Braze is a Crypto Currency App created using SwiftUI with MVVM architecture.

Braze A Crypto Currency App created using SwiftUI with MVVM architecture. Braze tracks live prices of crypto coins and can create mock portfolio. Usin

Roy 5 Dec 7, 2022
MVVM-Clean with DI implementation sample project

MVVM-Clean with Dependency Provider Introduction This project contains MVVM-Clean architecture and Dependency injection Folder Structure Every module

Faraz Ahmed Khan 3 Oct 20, 2022
MockChat TDD MVVM SwiftUI - Mockable, Test driven Development, clear Architecture example using SwiftUI

MockChat_TDD_MVVM_SwiftUI Mockable, Test driven Development, clear Architecture

Zahirul Islam 0 Feb 5, 2022
This a simple swiftui app where i used mvvm architecture, coredata swiftui and so on..

SwiftUI MVVM COREDATA NOTE APP This a simple swiftui app where i used mvvm architecture, coredata swiftui and so on... #FEATURES SWIFTUI MVVM COREDATA

Isaias Cuvula 1 Jul 20, 2022
Demonstration blackjack app for native iOS. Uses MVVM architecture

Blackjack - native iOS application This project is a simple demonstration on how to intergrate swiftUI with MVVM architecture. Although, technically,

Michael Nguyen 2 Nov 28, 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