Skip to content

All the tools and extensions and integrated libraries you need to start your iOS application.

Notifications You must be signed in to change notification settings

Salarsoleimani/CleanStarter

Repository files navigation

Clean Architecture Starter for iOS Application

High level overview

File Directory

Domain

The Domain is basically what is the App about and what it can do (Entities, UseCase etc.) It does not depend on UIKit or any persistence framework, and it doesn't have implementations apart from entities Domain contains Protocols of eatch platform so there is no dependency between the platforms and they can work with eachother through the protocols.

Platform

The Platform is a concrete implementation of the Domain in a specific platform like iOS. It does hide all implementation details.

Application

Application is responsible for delivering information to the user and handling user input. It can be implemented with any delivery pattern e.g (in Playor is MVVMC). This is the place for UIViews and UIViewControllers. As you will see from the app, ViewControllers are completely independent of the Platform. The only responsibility of a view controller is to "bind" the UI to the Domain to make things happen.

Next steps

After clone the project you can change the project name. See here

These are the next steps I will add on this project:

  • Add NetworkPlatform.
  • Add CoreDataPlatform.
  • Complete SSTools.
  • Create Data Layer for Interactor Implementations.
  • Create a Tutorial on how VIPER Works and how to Implement it in a real-life project.

References

Contributed

This is an open source project, so feel free to contribute.


This idea came because whenever I had to create a new project, It took me a long time to put the initiating things together. Hope you guys enjoy it, Thank you ❤️.

Author

About

All the tools and extensions and integrated libraries you need to start your iOS application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published