Skip to content

Akash-R97/ReaderApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ReaderApp πŸ“š

An elegant iOS application that displays top news headlines fetched from an API. The app is built using the MVVM architecture and Core Data for offline caching. It supports bookmarking, searching, offline persistence, and smooth animations.

Features Implemented βœ…

  • πŸ“‘ Fetch Top Headlines from API
  • πŸ” Search functionality
  • πŸŒ™ Dark Mode support
  • πŸ“₯ Offline-first design (CoreData backed)
  • πŸ“Œ Bookmark and Unbookmark articles
  • 🧠 MVVM architecture for scalability
  • 🧹 Efficient Core Data cleanup using NSBatchDeleteRequest
  • πŸ“± UITableView with dynamic heights and smooth UI
  • 🧭 Open articles in SFSafariViewController
  • πŸ”„ Pull to Refresh
  • πŸ”Ž Case-insensitive search using NSPredicate
  • πŸ”— Kingfisher for image caching
  • πŸ“Š NSFetchedResultsController for efficient state updates

Tools & Frameworks Used πŸ› 

  • Core Data: For local persistent storage
  • Kingfisher: For image downloading and caching
  • NSFetchedResultsController: To observe changes in bookmarks
  • NSBatchDeleteRequest: To efficiently clean old articles
  • SFSafariViewController: To open full news in browser
  • URLSession: Used for networking via APIService abstraction
  • Alamofire (Optional): Can be used for advanced networking
  • SDWebImage (Optional): Alternative to Kingfisher if preferred

Architecture 🧱

MVVM layered with Repository and DataStore pattern for separation of concerns and testability.

ViewController
   ↓
ViewModel
   ↓
Repository
   ↓
DataStore + APIService

Requirements πŸ“‹

  • iOS 15.0+
  • Xcode 14+

Getting Started ▢️

  1. Clone the repo:
git clone https://github.com/Akash-R97/ReaderApp.git
cd ReaderApp
  1. Open ReaderApp.xcodeproj in Xcode

  2. Run the project on a simulator or device.


🧠 Created by Akash Razdan. Feel free to contribute!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages