Open source Github iOS client written in RxSwift and MVVM architecture.
- Basic authentication
- View trendings, search repositories and users, filter by language
- View repository and user details, events, issues, commits, pull requests, contributors, etc...
- Source file viewer and syntax highlighting (Highlightr)
- Color themes in Light and Dark modes (RxTheme)
- In-app language switching (en, zh, ru, hy) (Localize-Swift)
- Whats New functionality (WhatsNewKit)
- Invite friends functionality
- Support iPhone and iPad (Split View)
- OAuth2 authentication
- Advanced searching and sorting repositories
- Clone repository directly to app (SwiftGit2)
- Clean architecture (RxSwift and MVVM)
- Networking REST API v3 (Moya)
- Flow coordinators (Realm demo)
- Custom transition animations (Hero)
- Programmatically UI (SnapKit)
- Mixpanel and Firebase analytics events (Umbrella)
- Crash reporting (Crashlytics)
- Logging (CocoaLumberjack)
- Google ads implementation, can be enabled/disabled from settings (Firebase AdMob)
- Dependency injection (Swinject)
- Add tests
You'll need a few things before we get started. Make sure you have Xcode installed from the App Store. Then run the following two commands to install Xcode's command line tools and bundler
, if you don't have that yet.
[sudo] gem install bundler
xcode-select --install
The following commands will set up SwiftHub.
cd SwiftHub
bundle install
bundle exec fastlane setup
Try pod update
if you got some errors.
Alrighty! We're ready to go!
Flex debugging tool has been integrated in this application. To enable it, just swipe right anywhere in the application. There are also included debugging Hero animations. To use it, swipe right with two fingers. Repeat this to disable.
Fastlane automates common development tasks - for example bumping version numbers, running tests on multiple configurations, or submitting to the App Store. You can list the available lanes (our project-specific scripts) using bundle exec fastlane lanes
. You can list available actions (all actions available to be scripted via lanes) using bundle exec fastlane actions
. The fastlane configuration and scripts are in the fastlane
folder.
All icons used in the application are taken from the Feather. Thanks to them for the beautiful open source icons.
- Moya - Network abstraction layer
- github-trending-api - The missing APIs for GitHub trending projects and developers
- R.swift - Get strong typed, autocompleted resources like images, fonts and segues in Swift projects
- JSONExport - Export JSON objects as model classes
- CleanArchitectureRxSwift - Clean architecture with RxSwift
- View Model in RxSwift - Good article
MIT License. See LICENSE.