| Name | Description |
|---|---|
| Define/ | The most time static values will be put here, such as third party keys, colors, fonts... |
| Define/App.swift | App or third party keys/credientials will be defined here |
| Define/String.swift | Localizable strings will be defined here |
| Define/Color.swift | Colors will be defined here |
| Define/Font.swift | Fonts will be defined here |
| View/ | Everything relative directly to UI |
| View/Base/ | Base classes for view controller, popup controller... |
| View/Controls/ | Custom controls: label, button, cell... |
| View/Controllers/ | View controllers |
| ViewModel/ | Data holding & logic handling for view controller |
| Model/ | Business objects and business logic will be put here |
| Model/API/ | API request will be handled here |
| Model/Schema/ | ORM objects will be defined here |
| Library/ | Helper, Utils, Extension... or frameworks which cannot be put in CocoaPods (ex: modified, no podspec found...) |
| Resources/ | Image, video, audio, font, Localizable.strings... |
| Supports/ | Application info, target configuration, bridging... |
Note: You should place your controllers in Controllers directory with a nested folder structure.
| Framework | Description |
|---|---|
| ObjectMapper | Simple JSON Object mapping written in Swift. |
| SwiftyJSON | The better way to deal with JSON data in Swift. |
| Alamofire | Elegant HTTP Networking in Swift. |
| SwiftLint | A tool to enforce Swift style and conventions. |
| RealM | Realm is a mobile database: a replacement for Core Data & SQLite |