Skip to content

Instantly share code, notes, and snippets.

@melihbuyuk
Created October 22, 2018 13:36
Show Gist options
  • Save melihbuyuk/ddbeb3b41422bb5ffd7a1da91c8cbd5b to your computer and use it in GitHub Desktop.
Save melihbuyuk/ddbeb3b41422bb5ffd7a1da91c8cbd5b to your computer and use it in GitHub Desktop.

EFENDY IOS SWIFT MVVM Project

Project Structure

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.

List of Frameworks

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment