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.

Folders list:

  • Application — all app related files, main.m, AppDelegate, .pch
  • AppDelegate
  • SystemFiles
  • Controllers — contacts grouped folders with each View Controller in sub-folder
  • Controller
  • ViewModel
  • View
  • Library
  • Headers
  • Singletons
  • Categories
  • Adapters
  • Builders
  • Layers
  • 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.
  • Models
  • Data Schemas
  • Entities — base classes for entities
  • Resources
  • Images
  • Sounds
  • Scripts
  • Data
  • Vendors — all third party code

Thanks to Massimo Oliviero and his presentation

Categories: Useful

Oksana Kovalchuk

Passionate IOS Developer

Related Posts


Git cloning with sub-modules

For cloning  git repo with submodules, use this command: [crayon-5a156f30926d7821638738/] For already cloned repos, for clone submodules use next command in repo root: [crayon-5a156f30926dd967819133/] And that’s all, Folks. Related


UITextView going crazy…

  Today I stuck with some interesting UITextField behaviour. So when you call: [crayon-5a156f30927ac412681239/] And your current in this moment not visible, for example you don’t use scrolling in textView and text hidden by parent Read more...


Asset catalog system file names

Sometimes IOS become not so obvious and not clear. The same happens to me, when I try to load default splash screen. [crayon-5a156f309289c565527962/] Example for icons: [crayon-5a156f30928a0780639676/] Related