https://github.com/edintwi/ghfollowers
Sean Allen's take home project course app
https://github.com/edintwi/ghfollowers
mvc-architecture swift uikit user-defaults
Last synced: 8 months ago
JSON representation
Sean Allen's take home project course app
- Host: GitHub
- URL: https://github.com/edintwi/ghfollowers
- Owner: edintwi
- Created: 2024-12-06T15:12:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-06T15:17:52.000Z (over 1 year ago)
- Last Synced: 2025-02-09T23:33:06.524Z (over 1 year ago)
- Topics: mvc-architecture, swift, uikit, user-defaults
- Language: Swift
- Homepage:
- Size: 1.26 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 📚 Description
This project is an iOS application named `GHFollowers` that allows users to search GitHub profiles and view their followers. It also offers the functionality to add users to a favorites list for quick access. The application is built programmatically without Storyboards, using `UIKit` and `Auto Layout` to create a responsive and dynamic user interface.
**Key Features:**
* **GitHub User Search:** Allows users to input a GitHub username and search for it.
* **Follower List Display:** Shows a list of a GitHub user's followers.
* **Pagination:** Loads more followers as the user scrolls down the list.
* **Detailed User Information:** Tapping on a follower displays detailed information about that user, including:
* Avatar image.
* Username and real name (if available).
* Location (if available).
* Bio (if available).
* Number of public repositories, public gists, followers, and following.
* GitHub account creation date.
* **Safari Integration:** Allows opening a user's GitHub profile in Safari.
* **Favorites List:** Users can add or remove users from a locally persisted favorites list.
* **Custom Alerts:** Uses a custom `UIAlertController` to display error messages and user feedback.
* **Empty States:** Displays a friendly message when there are no followers to show or the favorites list is empty.
* **Image Caching:** Utilizes `NSCache` to cache avatar images, improving performance.
* **Programmatic UI:** The entire user interface is built programmatically using `Auto Layout`.
## 📸 Screenshots
Here are some screenshots of the application in action:
| Search Screen | Followers List | User Info | Favorites List |
| :--------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------: |
|  |  |  |  |