Skip to content

Template for any iOS project, implementing good practices and clean architecture

Notifications You must be signed in to change notification settings

francofadini/ios-clean-base-project

Repository files navigation

BaseProject

BaseProject is an iOS app initial template, not only for acelerating every initial project setup, but also for promoting good practices and a scalable architecture. The main objective of opening this project is to constantly grow and improve with the community help. So any suggestion is welcome!

Features

  • Main Navigation (UITabBarController) ✅
  • Multiple Environments ✅
  • Login/Register ✅
  • Basic UI Components ✅
  • Network layer ✅
  • CRUD Example ✅
  • Architecture diagram ✅
  • Code Templates 🔜
  • CI 🔜
  • Tests 🔜
  • Permissions handling 🔜

Objetives

  • Well architectured
  • Avoid spending time, on thinking "where this code should be?"
  • Easy for reusing UI components through different projects
  • Easy for reusing network layer through different projects
  • Avoiding boilerplate
  • Ready for data source changes
  • Easy to distribute
  • Easy for understand
  • Easy to remember
  • Easy for testing
  • Not overkill
  • Fast for developing

Diagram

alt text

How this project could reach the objectives

Well architecture

  • Presentation Layer (MVP)
  • Domain Layer (Clean Architecture)
  • Data Layer

Avoid spending time, on thinking "where this code should be?"

  • Comments on every class , for helping to understand
  • Constants handling approach
  • Permissions handling approach

Easy for reusing UI components through different projects

  • Atomic UI Library

Easy for reusing network layer through different projects

  • Network Library

Avoiding boilerplate

  • Reusable UI Components
  • Native class extentions

Ready for data source changes

  • Dependency inversion on data layer

Easy to distribute

  • Fastlane
  • CircleCI

Easy for understand

  • Comments for understanding architecture components
  • Friendly naming

Easy to remember

  • Friendly naming

Easy for testing

  • Dependency injection
  • Test examples

Not overkill

  • Technicals tries
  • Ready for extention

Fast for developing

  • Templates
  • Basic functionalities implementations (login,register,crudl,navigation)
  • Environments setup

About

Template for any iOS project, implementing good practices and clean architecture

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published