Project Overview:
GitHub Followers lets you see who you're following and who's following you.
What I’ve done in Swift
- Built API connections for pulling data like images, usernames, number of account followers, & more
- Cached images from API calls to eliminate unnecessary network calls with NSCache
- Custom Error message displays based on individual network errors
- Maintained professional internal organization with proper folder structures
- Managed updates to Collection View’s dataSource and UI in a simple, efficient way with the UICollectionViewDiffableDataSource class
- Handled error messages using the efficient switch / case .success, .failure method
- Designed UI layouts with NSLayoutConstraint that are considerate of view.safeAreaLayoutGuide
- Used mathematical procedures for designing NSLayoutConstraint
- Implemented Pagination using UIScrollView and UIRefreshControl within the UICollectionViewDelegate extension for infinite scrolling, but only when content exceeds threshold to avoid unnecessary network calls for app efficiency
- Generated loading screen when making network calls using activityIndicator.startAnimating()
- Designed and created Empty State View Controller
- Created search functionality using the UISearchController() protocol
- Eliminated undesired native design options, such as the tinted x when activating search: .obscuresBackgroundDuringPresentation = false
- Used the W?T:F method for checking which array to search
- Used Child View Controllers to take advantage of Lifecycle Methods, Self Contained, Flexible Context, and for Reusability
Objectives:
Allow user to quickly see who their GitHub followers are with an intuitive UI.
Learn API calls, custom design error messages, and appropriate handling
Scope of Work:
- API integration for user data (images, usernames, follower counts).
- Caching with NSCache.
- UI design using NSLayoutConstraint.
- Loading screens and Empty State View Controller.
- Search functionality with UISearchController.
- Data management with UICollectionViewDiffableDataSource.
- Pagination and infinite scrolling.
- Custom error messages and structured error handling.
- Clean project structure and use of Child View Controllers.
Timeline: 2 weeks total (1 week development, 1 week testing and launch).
Success Criteria: Smooth navigation, efficient network usage, and positive user feedback.