works

GitHub Followers

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.

No items found.