Skip to content

rfhfv/ImageFeed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImageFeed

iOS app for browsing Unsplash images with OAuth authentication. Features include infinite image feed with like/favorites functionality, full-screen viewing with zoom and share, and user profile. Built with Swift + UIKit and MVP architecture.

Screenshots

Image

Features

  • OAuth Authentication: Secure login via Unsplash OAuth
  • Infinite Image Feed: Endless scrolling through Unsplash Editorial images
  • Like/Favorites: Add and remove images from favorites
  • Full-Screen Viewing: Zoom, pan, and rotate images
  • Share Images: Share image links outside the app
  • User Profile: View user info, avatar, and favorite images
  • Offline Support: Basic error handling with retry option

Tech Stack

  • UIKit with programmatic layout
  • MVP architecture
  • URLSession for networking
  • Unsplash API integration
  • OAuth 2.0 authentication
  • GCD (Grand Central Dispatch) for background threading

Architecture

The project follows MVP (Model-View-Presenter) architecture:

  • View: UIKit views and ViewControllers. Passes user actions to Presenter
  • Presenter: Contains business logic, prepares data for View
  • Model: Data models and API service layer
  • Helpers: OAuth token storage (Keychain), image caching

Key Implementation Details

  • OAuth Flow: WebView-based authentication with token storage in Keychain
  • Image Loading: Async image loading with caching for smooth scrolling
  • Pagination: Infinite scrolling with offset-based pagination
  • Like/Unlike: API requests to add or remove favorites
  • Full-Screen Gestures: Pinch to zoom and pan support

Installation

About

UIKit (Storyboards and Auto Layout), MVP, URLSession, OAuth

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages