Skip to content
/ UpNews Public

This iOS app uses SVIP (VIPER) architecture with a network layer to fetch and process news. The project is structured for scalability and clean separation of concerns.

Notifications You must be signed in to change notification settings

2Gpb/UpNews

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UpNews

Features:

  • Article Management – The logic is divided between layers of the SVIP architecture, ensuring code structure and simplifying maintenance.

  • API Interaction – A network layer has been implemented, which includes error handling, asynchronous work via URLSession with closures, support for various types of requests, and data serialization/deserialization.

  • Displaying Article List – Custom news cells with images, titles, and descriptions have been implemented. Efficient reuse of cells and optimized layout are ensured.

  • Loading New Articles – New articles are automatically loaded when the user scrolls to the bottom of the list, ensuring that fresh content is always available as they browse through the news.

  • Refreshing News – The news can be refreshed by pulling down on the top-most cell, automatically reloading the latest articles from the source.

  • Shimmer Animation Implementation – The animation is implemented using CAGradientLayer to create a smooth gradient movement effect, simulating the content loading process.

  • Image Caching – Image caching is implemented using NSCache, enabling efficient storage and loading of images in memory, improving app performance and reducing load times.

  • Article Viewing – News articles are opened through SFSafariViewController.

  • Sharing Feature – A sharing option has been implemented through UIActivityViewController. Users can long-press on a cell to open the sharing menu.

Architecture

SVIP (VIPER) – Clear separation of components:

  • View – Displays the interface and interacts with the user.
  • Interactor – Business logic of the application.
  • Presenter – Prepares data for UI & implements RoutingLogic.
  • Router – Manages screen transitions.
  • Worker – Handles data processing and network requests.

Technologies

  • UIKit | AutoLayout
  • URLSession
  • GCD
  • SVIP (VIPER)
  • SOLID
  • SafariServices

Visual

image image image

About

This iOS app uses SVIP (VIPER) architecture with a network layer to fetch and process news. The project is structured for scalability and clean separation of concerns.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages