KO
|
EN
gitlite — search
Search
#typescript
#ai-agents
#ai
#dsh-plugin
#deepseek-harness
#open-source
#cli
#claude-code
#codex
#developer-tools
#react
#windows
Eris
★ 111
Open GitHub ↗
MVVM-C based iOS-Architecture Reference
Download README (.md)
Explore Similar Repositories
ProtoTree
:
ProtoTrees: Neural Prototype Trees for Interpretable Fine-grained Image Recognition, published at CVPR2021
MediatR.AspNetCore.Endpoints
:
No description available.
mlflow-torchserve
:
Plugin for deploying MLflow models to TorchServe
transparency-exchange-api
:
A standard API specification for exchanging supply chain artifacts and intelligence
jokes-app-multiplatform
:
A sample Kotlin multiplatform project using Kotlin code in Android and iOS
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
Eris
?
Download (.md)
# Eris Name `Eris` is inspired from [here](https://solarsystem.nasa.gov/planets/dwarf-planets/eris) ## Architecture Architecture is divided in the following independently injectable and testable layers.  Layers are defined here. ### Coordinator Application Screenflow and later Push Routing handler. ### View Display of data. Data is being displayed in the form of Models and views confrom to ModelConfigurable to populate data via `configure(model:)` method ### ViewController Controller contains logic of view's state representation and pass actions to viewModel ### ViewModel - ViewModel does all the business logic implementation with or without help of mappers. - Also it informs view-controller about the state update via `bindings`. - Mapper are the `Domain Usecases`. Any domain logic will be injected in the form of independently tested usecases. Idea is to keep `Domain-Layer` independent from ViewModels thus can be `widely reuseable`. Current implementation doesn't contain any domain logic thus doesn't contain any mapper. ### Repository Its an `abstraction layer` between `ViewModel` and `Data Stores` that encapuslates Data-source layer. Currently there are two data sources, Network and CoreData. This layer can encapulate further data sources aswel i-e Remote Configurations etc ### Interactor Network: Its a wrapper written on top of Swift Package `Ceres` which fetch and decode data into inferred model object. ### Persistor CoreData: Persistor encapsulates CoreData and fetches and updates data. ## Considerations Following are few considerations while writing code - Code is following `MVVM-C` Architecture. - Every layer is interfaced via `dependency management` and lays foundation for high level DI-Framework - Code is `testable` and mocks can easily replaced with original objects - Code is following `iOS Swift Style Guidelines` and have same styling throughtout the code. - Project is structured to `scale` as big as it can be - `Folder structure` is highligting the architecture - Network is implemented as an independent `Module (Swift Package)` - Layers are interfaced together via `Protocols` - Dependency resolution is being done via Factory. ## Testing Notes - `NWPath.Status` doesn't return `.satisfied` on simulator so for getting best results please test on device. ## Notes A detailed article was published on Medium and can be found [here](https://naxirmahmood.medium.com/ios-application-architecture-7607b367811d)