Swift: Adopt Protocols without cluttering the class declaration
After transitioning to Swift and Protocol Orietented Programming you might find yourself in a situation where your ViewControllers adopt a lot of protocols
class MYViewController: UIViewController, AppearanceProvider, ZoomingBehaviour, ThirdProtocol, UINavigationDelegate {
}
The more protocols you add the uglier this chain of comma separated protocols gets. The cheap solution (comes from a good friend of ours) is to create an extension for each protocol you want to adopt(implement)and to keep the code related to that protocol in the same extension. This provides a nice Interface Segregation and separation of responsibilities. 
class MYViewController: UIViewController {  
}
extension MYViewController: AppearanceProvider {  
// appearance code
}
extension MYViewController: ZoomingBehaviour {  
// zooming code
}
extension MYViewController: UINavigationDelegate {  
// navigation code
}