Separation of conerns
= class or struct data model
= view layer (custom UIButton, imgView etc..
= place where model connects to the view (ViewController.swift)
Classes in those parts should work separated from each other, the best way is to create 3 folders for your classes
Do not use storyboard
When I first saw someone coding without storyboard, I was laughing. However now I wouldn't want go back to to building UITabBarController or mess with autolayout in Storyboard again :)
Create your own unique website with customizable templates.