Okay, this subject is very “intimate” for every developer, but I hope, this article will help somebody in his way to perfect organization of project structure.
So lets start.
- Application — all app related files, main.m, AppDelegate, .pch
- Controllers — contacts grouped folders with each View Controller in sub-folder
- Network Layer
- Business Layer — translation helpers, data interaction
- Data Access Layer — methods for managing data objects, update, delete, add
- Service Layer — helpers, builders, other patterns
- Persistence Layer — NSPersistent store related files, managing core data – insert, update, delete
- Domain Model — inherited from base entities classes, other data models
- Presentation Layer — custom UI logic, custom UI, reusable ui etc.
- Data Schemas
- Entities — base classes for entities
- Vendors — all third party code
Thanks to Massimo Oliviero and his presentation