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


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-5b05159d03b1c394767373/] Example for icons: [crayon-5b05159d03b21026625361/] Related


Xcode debugging tool – PonyDebugger

Once upon a time Last time when QA comes to me, they want visual debugging tool for our iOS apps. I already researched this subject, and already use CocoaLumberjack tool (with XCodeColors plugin of course), but Read more...


UITextView going crazy…

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