Hey ! Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding.
I preferred MVVM for this project because its more testable and maintainable than MVC. And VIPER would be an overkill for this project. I have solved binding problem with Functional Programming using RxSwift.
-Functional Programming with RxSwift
-Nested collection views.
-Custom views and layouts
-Unit Tests for networking and view models.
-Implement side Menu with screen edge pan and tap gestures.
-Add Unit tests for Search Screen
-Add refreshing to every screens.
-Subscribe to errors and show alert.
-I will use Apple's Combine framework and Delegation Pattern for binding in different branches to see cons and pros of three different binding solution for MVVM.
3rd Party Libraries
It is powered by NewsAPI! You should get your free developer API key from NewsAPI and add it to DailyNews/Networking/APISettings.swift.