Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Users

A SwiftUI iOS app for exploring GitHub users and their repositories. Built with modern Apple technologies and best practices for async data loading and UI responsiveness.


🌞 Light Mode


🌙 Dark Mode


🛠 Technologies Used

  • Xcode 16.4
  • SwiftUI
  • Alamofire – for handling HTTP networking
  • Combine – for reactive data flow
  • SDWebImageSwiftUI – for efficient image loading and caching
  • Swift Concurrency + Combine – used together for reactive flow and async bindings in SwiftUI

🧩 Compatibility Notes

This project uses Swift Concurrency features including Sendable protocol conformance.

  • Swift Concurrency is available since Xcode 13 (Swift 5.5)
  • Sendable support and strict enforcement is more mature and stable in Xcode 16.4
  • Using older Xcode versions (14 or 15) may not able to run this project properly

🚀 Features

  • 🔍 Browse GitHub users with avatar, login, and ID
  • 👤 View user details, including their public repositories
  • 🌐 Open repositories directly in a WebView
  • 🔄 Implements GitHub paging:
    • Different paging strategies for users (based on since) and repositories (pagination)
  • ♻️ Smooth continuous loading (infinite scroll) for both:
    • User list screen
    • User detail screen with repositories

🏗 Architecture & Project Structure

This project is designed following Clean Architecture principles as outlined by Uncle Bob:

Modules are organized as Swift Packages, modeled after Apple’s Backyard Birds sample:


⚠️ Simulator Issue (Known Limitation)

While running Unit tests, I encountered an issue on the iPhone 16 simulator. I would suggest to change to other simulators. In my case, it worked with iPhone 16 Pro simulator.

About

SwiftUI with Clean Architecture

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages