GHFollowers is an iOS app that allows a user to search for github users, and browse their followers.
- Introduced the MVVM-C architecture, Combine for view-viewModel bindings
- Utilized the async events and functions with async/await concurrency and
- Refactored the original layer to the generic one
- Implemented image caching for SwiftUI View
- Programmatic UI, No storyboard used, UIKit based, with a SwiftUI View
FollowerView - MVVM-C architecture is used
- Combine framework is used for binding between view and viewModel
- Coordinators are for the navigation between scenes
- Error Handling
GFErrorenum is used for representing difference errors in the app
- Generic NetworkManager
Endpointenum is used for configure thehost,path,methodTypeandqueryItemsfor each API endpoint (getFollower, getUserInfo)
- Image Caching with NSCache for remote image
- Using local persistence
UserDefaultto store the users to favorites - Custom Views (
GFTitleLabel,GFTextField,GFButton...) - Using delegates and protocol
- Searching for user
- Listing followers for an user
- Filtering followers with text
- Showing the user information of an user
- Opening an Github Profile URL in app
- Showing favorited users
- Adding users to favorites
- Dark mode supported
- iOS 17.0+
- XCode 15.2+
This is originally an example take-home project from Sean Allen's Take Home Project Course. Thanks.



