- Сleanness 💎 - Project is built using SOLID principles.
- Stability ✊ - No memory leaks, thread safe, no crash
- Reuse 🤹 - UI is implemented programmatically too. No Storyboard or Xibs.
Simple RSS Reader app. Youtube preview:
- Select multiple RSS feeds & persist.
- If the user already has a selection, don't show the RSS selection screen on app launch.
- Fetch articles from the selected feeds, and persist them.
- Show the articles in reverse chronological order.
- When user clicks an article from the list, show the news article in an in-app browser
- Pull to refresh mechanism
- Add a feature to fade articles once they are read.
- Add a searchbar to the News List Screen. User should be able to filter articles by title.
- iOS 11.0+
- Xcode 10.0+
- Swift 5.0+
- No Storyboards or Xibs - UI is implemented programatically. I'dont like storyboards beause of some disadventages. Disadventages: not reusable, merge conflicts are difficult, slow, tricky code reviews etc.
- All data persisted at documents directory - There can be many solutions for caching in iOS platforms, like SQLite, CoreData or Realm, or other 3rd libraries. But I deciced to store my data as a JSON data at documentDirectory. I think it is more easier way to handle cache data, there is no need to add SQLite for small projects. To encode / decode my classes I've used Codable protocol.
- Kingfisher - I've used Kingfisher pod to download & cache images. https://github.com/onevcat/Kingfisher
- MVC Architecture
If you have any questions or suggestions, feel free to open issue just at this project.