Clean code architecture
There are several architecture we use based on the application requirement. I have used Ribblet and Viper design patter most of the time. Viper Pattern : [ GitHub ] The word VIPER is a backronym for View, Interactor, Presenter, Entity, and Routing. Read more about Viper . Viper architecture: Download the Viper sample : GitHub Sample also has integration of Google SDK and using Google Places API usage. Riblets : [ GitHub ] Riblets are Uber way of clean code architecture. Uber app currently using Riblets architecture. More info on Riblets - Ref Riblet architecture: Communication between the Riblets: GitHub : Viper Sample (Swift) Uber Riblet Sample (Swift)