A localized news app showcasing the most viewed and most popular New York Times news, aptly named "News Matters".
- 🚀 Quick Summary
- 📥 Clone Project and Requirements
- 🛠️ Build Project
- ✅ Unit Tests
- 📱 App Flow
- 🏛️ Architectural Pattern
- 🌟 Improvements for the Future
News Matters is a simple iOS app that fetches data from the NY Times Most Popular Articles API and displays a list of articles. Tap an article to view its details!
API Endpoint:
http://api.nytimes.com/svc/mostpopular/v2/mostviewed/{section}/{period}.json?api-key=sample-key
- Clone via HTTPS:
https://github.com/maniarali/News-Matters.git
- Download as a ZIP from the repository.
- Checkout the main branch for the default implementation.
- For Combine framework, checkout the combine branch.
- 📱 Minimum iOS Version: 16.0, Supported Xcode: 16.2
- Download Project:
a. Download directly:Code > Download ZIP
b. Clone via HTTPS:Code > Clone via HTTPS
- Open the project by double-clicking
News-Matters.xcodeproj
.- No external dependencies required!
- Click
Run
or pressCMD + R
in Xcode. - Hurray! 🎉 You’re ready to view NY Times popular news!
- Run tests by pressing
CMD + U
in Xcode. - View coverage:
- Go to the Report Navigator.
- Open the Coverage section.
- Click on
News-Matters.app
to see details.
- Home Screen: Displays a list of the most popular NY Times articles.
- Detail Screen: Tap any article to see its full details.
- Presentation Layer: MVVM (Model-View-ViewModel)
- Data Layer: Repository Pattern
- Navigation: Coordinator Pattern
- Add a Business Logic Layer with Use Cases.
- Implement a Dependency Container for better dependency inversion.
- Enable offline persistence to show cached data without internet.
- Add search functionality, period/section dropdowns.
- Upgrade UI to SwiftUI and use Combine for layer communication.
Enjoy exploring News Matters! Contributions and feedback are welcome! 🙌