A modern iOS application that allows users to browse GitHub users and their repositories. Built with SwiftUI and following MVVM architecture.
- Browse GitHub users with infinite scrolling
- View detailed user profiles
- Explore user repositories
- Offline support with caching
- Error handling with retry mechanism
- Analytics tracking
- Accessibility support
- iOS 15.0+
- Xcode 14.0+
- Swift 5.7+
- SwiftUI
- Combine
The project follows MVVM (Model-View-ViewModel) architecture with Coordinator pattern for navigation:
- Views: SwiftUI views for the user interface
- ViewModels: Business logic and state management
- Models: Data models and entities
- Services: Network, Analytics, and Cache services
- Coordinators: Navigation and flow management
- Configuration: App configuration and environment settings
- Dependency Injection: Using
DependencyContainer
for service management - Protocol-Oriented Design: Clear interfaces and abstractions
- Reactive Programming: Using Combine for data flow
- Error Handling: Comprehensive error handling with retry mechanism
- Caching: Local storage for offline support
- Analytics: Event tracking and error reporting
To run tests:
- Open the project in Xcode
- Press ⌘U to run all tests
- Or use the Test Navigator to run specific test cases
The app supports different environments:
- Development
- Staging
- Production
Configuration can be modified in AppConfiguration.swift
.
This project is licensed under the MIT License - see the LICENSE file for details.