GitHub Followers lets you see who you're following and who's following you.
Client •
Portfolio
Category •
Design
Date •
January 2, 2024
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.