Skip to content

usman-pucit/SocialFeedApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SocialFeedApp

SocialFeedApp is a lightweight iOS application. It showcases a vertically scrollable video feed similar to TikTok or Instagram Reels, where each video is full-screen and autoplayed when visible.


βœ… Assessment Requirements

The app implements the following functionality as outlined in the task:

  1. Feed UI

    • Displays a scrollable vertical list of short videos.
    • Videos are loaded from a mock API (videos.json file).
    • Supports pagination: videos are fetched in batches of 20.
  2. Each video item includes:

    • πŸ‘€ Creator avatar and name (top-left).
    • 🎞️ Autoplaying video (centered and full-screen).
    • πŸ’¬ Action buttons (like, dislike, comment) using SF Symbols.
    • πŸ“ Video description displayed at the bottom.

πŸš€ Key Features

  • SwiftUI + MVVM + Clean Architecture
    Modular and testable project structure following best practices.

  • Swift Concurrency (async/await)
    Ensures smooth UI updates and scalable data loading.

  • Clear Namespace Structure
    Organized into API, Domain, and UI layers.

  • Local Mock API
    Loads video feed from a videos.json file bundled within the app.

  • Unit Testing
    ViewModel and UseCase layers are covered with unit tests using XCTest.


πŸ“± Requirements

  • Swift 5.9 or later
  • Xcode 16.0 or later
  • iOS 17.0 or later

πŸ“¦ Installation

  1. Clone the repository:

    git clone git@github.com:usman-pucit/SocialFeedApp.git 
    cd SocialFeedApp

    Or download the ZIP file and extract it manually.

  2. Open the project in Xcode:

    open SocialFeedApp.xcodeproj

    (Use SocialFeedApp.xcworkspace instead if you add CocoaPods or SwiftPM later.)

  3. Build and run the project using a simulator or real device.

  4. Make sure your device or simulator is connected to the internet if you later switch from local to remote video URLs.


πŸ§ͺ Testing

Run unit tests by selecting the SocialFeedAppTests scheme and pressing Cmd + U in Xcode.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages