A comprehensive iOS application demonstrating Senior iOS Developer skills, built with modern SwiftUI, Clean Architecture, and best practices.
GitHub Users is a feature-rich iOS application for searching and exploring GitHub users and repositories. The app showcases professional iOS development practices including Clean Architecture, MVVM pattern, async/await, Combine, localization, widgets, and comprehensive testing.
- User Search - Search GitHub users by username with debouncing and pagination
- User Profiles - Detailed user information with statistics and bio
- Repositories - View user repositories with sorting, filtering, and search
- Repository Details - Comprehensive repository information with metadata
- Global Repository Search - Search across all GitHub repositories
- Favorites - Save favorite users and repositories locally
- Search History - Quick access to recent searches
- Offline Support - Two-level caching (memory + disk) for offline access
- Internationalization - Full support for English and Russian
- Theming - Light, dark, and system theme support
- Widgets - Home screen widgets showing favorite users
- Deep Linking - Custom URL schemes and Universal Links support
- Accessibility - VoiceOver and Dynamic Type support
- Haptic Feedback - Tactile feedback for user actions
- Image Caching - Optimized image loading and caching
- Network Monitoring - Real-time network status indicator
- Charts - Visual statistics using SwiftUI Charts
- Performance Monitoring - Built-in performance tracking
The app follows Clean Architecture principles with MVVM pattern for the presentation layer.
GitHubUsers/
├── Models/ # Domain models
├── Services/ # Business logic and services
├── Repositories/ # Data layer abstraction
├── ViewModels/ # Presentation logic (MVVM)
├── Views/ # SwiftUI views
├── Utilities/ # Helper classes and managers
└── Constants/ # App constants
- Domain Layer - Models and business entities
- Data Layer - Services, repositories, and data sources
- Presentation Layer - ViewModels and Views
- SwiftUI - Modern declarative UI framework
- Async/Await - Asynchronous operations
- Combine - Reactive programming
- MVVM - Presentation pattern
- Clean Architecture - Layered architecture
- WidgetKit - Home screen widgets
- SwiftUI Charts - Data visualization
- iOS 15.0+
- Xcode 14.0+
- Swift 5.7+
- Clone the repository:
git clone <repository-url>
cd GitHubUsers- Open the project in Xcode:
open GitHubUsers.xcodeprojOr simply double-click GitHubUsers.xcodeproj in Finder.
-
Configure App Groups (for widgets):
- Select the project → Targets → GitHubUsers
- Signing & Capabilities → Add "App Groups"
- Create/select:
group.com.githubusers.shared - Repeat for GitHubUsersWidgetExtension target
-
Build and run (⌘R)
The project includes comprehensive unit tests:
# Run tests
⌘U in XcodeTest coverage:
- ViewModels (UserList, UserDetail, RepositoryList)
- Services (Favorites, SearchHistory)
- Repositories (UserRepository)
This project is licensed under the MIT License - see the LICENSE file for details.
This project is created for portfolio demonstration purposes.
Rafael Mukhametov - Senior iOS Developer
Built with ❤️ using SwiftUI and modern iOS development practices.
