MMVM+C and RxSwift - I used MVVM and the coordinator pattern for better coordintaion in the various parts of the app. I also used RxSwift to bind the observables. I am in the process of learning combine which would be a better choice since it's a cocoa framework UI - I built the UI using .XIB files as opposed to the storyboard. I find this method a lot more efficient especially while working in larger team. You don't experience those ridiculous storyboard merge conflicts.
- Use Combine
- Built a better cache system
- Have a more elegant error handling system
- Have UI Tests and more Unit tests