Skip to content

Instantly share code, notes, and snippets.

@sauvikatinnofied
Last active January 10, 2017 13:00
Show Gist options
  • Save sauvikatinnofied/b8d2eebfa9a1d4deda1f750641a97e09 to your computer and use it in GitHub Desktop.
Save sauvikatinnofied/b8d2eebfa9a1d4deda1f750641a97e09 to your computer and use it in GitHub Desktop.
├─ Level // Root Folder
	├─ 3rdParty (Any 3rd party which can not added through package manager)
	├─ AppDelegate
		├─ AppDelegate.swift
		├─ AppDelegateBGSupport.swift (extension of AppDelegate, methods associated with background support (prefetching, download etc))
		├─ AppDelegateNotificationSupport.swift (extension of AppDelegate, methods associated with Notification(Push, Local) support)
	├─ Controllers
		├─ Feedback
			├─ Controllers (View controllers  strictly associated with Feedback Module)
			├─ View (View classes strictly associated with FeedBack Module)
	    ├─ Home
	    	├─ Controllers (View controllers  strictly associated with Home Module)
			├─ View (View classes strictly associated with Home Module)
		├─ Login
			├─ Controllers (View controllers  strictly associated with Login Module)
			├─ View (View classes strictly associated with Login Module)
		├─ Onboardings
			├─ ...
			├─ ...
		├─ ...
	├─ Model
		├─ User
			├─ User.swift
		├─ Product
			├─ RechargeItem.swift
			├─ StoreItem.swift

		├─ Settings
			├─ AppSettings.swift
		├─ ...
			├─ ...
			├─ ...
	├─ Resources
		├─ Fonts
			├─ Roboto
				├─ LICENSE.txt
				├─ Roboto-Black.ttf
				├─ Roboto-BlackItalic.ttf
				├─ Roboto-Bold.ttf
				├─ Roboto-BoldItalic.ttf
		├─ ImageAssets
			├─ Assets.xcassets // Here always try to add image asset in am folder depening upon the context
				├─ AppIcon.appiconset
				├─ LaunchScreen
					├─ Contents.json
					├─ LauchScreenBGImage.imageset
					├─ LevelLaunchScreenLogo.imageset
				├─ HomeVC
					├─ DateChangeButtonLeft.imageset
						├─ Contents.json
						├─ left-arrow.png
						├─ left-arrow@2x.png
						├─ left-arrow@3x.png
		├─ Sounds // Make sure you are making folder structures depening upon the context
		├─ Videos // Make sure you are making folder structures depening upon the context
	├─ Services
		├─ API
			├─ Core (Your own networking library/ userful elements [NOT PROJECT DEPENDENT] IF ANY)
			├─ Login
				├─	LoginServiceAPI.swift
			├─ SignUp
				├─	SignUpServiceAPI.swift
			├─ Product
				├─	ProductServiceAPI.swift
			├─ ***
		├─ Persistency (CoreData/Realm/SQLite, Follow same type ) CD-> CoreData, RM -> Realm, SQL -> SQLite
			├─ Login
				├─	LoginServiceCD.swift
			├─ SignUp
				├─	SignUpServiceCD.swift
			├─ Product
				├─	ProductServiceCD.swift
			├─ ***
	├─ SupportingFiles
		├─ Info.plist
		├─ Level-Bridging-Header.h		
	├─ UI
		├─ Storyboards (Try to group based on context)
			├─ Onboarding
				├─ Onboarding.storyboard
			├─ Login
				├─ Login.storyboard
		├─ LaunchScreens
			├─ LaunchScreen.stroyboard
	├─ Util
		├─ Utility.swift (Utility class methods)
		├─ Extensions
			├─ UIKit (useful view extensions based on UIKit)
			├─ Foundation (useful extensions (Dates, Strings) based on Foundation)
	├─ View (Contains all common views, Keep in mind grouping based on context)
		├─ BouncyButton.swift
		├─ BouncyTableHeader.swift
		├─ ...
├─ Level.xcodeproj
├─ LevelTests
├─ LevelUITests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment