GitHub-User is an iOS native application, written in Swift programming language.

Overview

#GitHub-User

GitHub-User is an iOS native application, written in Swift programming language. This project is an interview take home project. The architecture design pattern used in this application is MVC (Model-View-Controller), with the use of SOLID principles.

The main functionality of this app is to search for GitHub users, show basic information about those users, their repositories and commits for those repositories.

The first screen to show up is the search screen, where you can type in the GitHub user who you want to search for, and by pressing the "Search" button the HTTP request to the GitHub API is being sent. If search field is left empty or a username which does not exist is being request the error is being handled properly and the custom alert is being shown.

drawing

Having fetched the data from GitHub API, it is being decoded using JSONDecoder and the decoded data is being shown in separated child view controllers (each of sections is a separate child view controller). Avatar user image is being cached so that only the first time the image is actually fetched from the HTTP request, and every other time is fetched from the cache, which optimizes the application performance.

drawing

Selecting the "GitHub Profile" button will present SafariViewController and the user's profile.

drawing

However, selecting the "Repositories" button will take the user to the separate View Controller which displays the data about the requested user's repositories. If the user does not have any repositories, a proper empty state view is being shown.

drawing

For each repository, list of all commits can be displayed. Information which is being presented for each commit includes commit message, user avatar image and name along the message which refers to the time period (number of days from the current date) when this change was commited.

drawing

This application also supports both light and dark mode.

drawing

drawing

drawing

drawing

drawing

You might also like...
Desafio final em grupo do treinamento em desenvolvimento iOS
Desafio final em grupo do treinamento em desenvolvimento iOS "go!dev by Idwall". O projeto consiste em um aplicativo de busca e visualização de repositórios do Github e a possibilidade de favoritá-los.

StarRepo 🎯 Objetivo O objetivo deste projeto é criar um aplicativo iOS, proposto como desafio final do treinamento "go!dev by Idwall", para busca e v

macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application.
macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application.

Download Full Installer This is a Swift UI implementation of my fetch-installer-pkg script. It will list the full macOS Big Sur (and later) installer

Github repo search with using mvvm-c and clean architecture and using combine swift

GitSearchWithMVVM-C-CleanArchitecture Github repo search with using mvvm-c and clean architecture and using combine swift. Content Overview How To Run

Swift Language Weather is an iOS weather app developed in Swift
Swift Language Weather is an iOS weather app developed in Swift

Swift Language Weather SwiftWeather has renamed to Swift Language Weather. Because this repo is ranked number one in Google when we search "Swift Weat

This is an example project of SwiftUI and Combine using GitHub API.
This is an example project of SwiftUI and Combine using GitHub API.

SwiftUI-Combine-Example This is an example project of SwiftUI and Combine using GitHub GET /search/users API. 📋 Requirements Swift5.1 Beta Xcode11.0

 catchPikatcuApp - My first app on GitHub.
catchPikatcuApp - My first app on GitHub.

catchPikatcuApp My first app on GitHub. import UIKit class ViewController: UIViewController

This is an example project of SwiftUI and Combine using GitHub API.
This is an example project of SwiftUI and Combine using GitHub API.

SwiftUI-Combine-Example This is an example project of SwiftUI and Combine using GitHub GET /search/users API. 📋 Requirements Swift5.1 Beta Xcode11.0

GitHub Notifications in your pocket.
GitHub Notifications in your pocket.

Gitify Mobile If you are looking for the desktop version - manosim/gitify. Download Available for free on iOS & Android. App Store Google Play Store P

Show off your GitHub contributions from your lock screen 📱
Show off your GitHub contributions from your lock screen 📱

GitHubContributionsiOS V2 NOTICE: V2 is published. It is a complete rewrite using SwiftUI and Catalyst. Source code are now hosted on the version/2.x

Owner
Zeljko Lucic
I am a Computer Engineering and Information Theory student at the University of Belgrade, School of Electrical Engineering.
Zeljko Lucic
Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

null 1 Jan 17, 2022
Native iOS app built in SwiftUI, displays a collection of user's books.

Native iOS app built in SwiftUI, displays a collection of user's books.

Matthew Eilar 1 May 23, 2022
LeitnerBox is an iOS application which help language learners to memorize words faster.

Leitner-Box Leitner-Box is an iOS application to memorize word forever. Features Memorize words and phrases. Ability to export the database and import

hamed 5 Dec 22, 2022
A weather app developed in React Native. It is the React Native version of SwiftWeather.

ReactNativeWeather A weather app developed in React Native. It is the React Native version of SwiftWeather How to run the app Install react-native If

Jake Lin 22 Jun 7, 2022
A mobile application that presents the news received via NewsAPI to the user. Built with SwiftUI.

?? SwiftUI News App with NewsAPI A mobile application that presents the news received via NewsAPI to the user. Built with SwiftUI. ✅ Features The data

Doğancan Mavideniz 5 Nov 15, 2021
MovieAppSwiftUI - The Application is using TMDB API and Server API to reduce user searching movies resources time with search engine

MovieAppSwiftUI The Application is using TMDB API and Server API to reduce user searching movies resources time with search engine.This Application is

JackSon_tm.m 5 Oct 29, 2022
Sample iOS project built by SwiftUI + Flux and Combine framework using GitHub API

SwiftUI-Flux Flux enables us to have unidirectional data flow and make it testable. It's used to be implemented using RxSwift or ReactiveSwift in the

Yusuke Kita 87 Nov 25, 2022
Sample iOS project built by SwiftUI + MVVM and Combine framework using GitHub API

SwiftUI-MVVM One of the biggest idea for having MVVM is that most of data flow can be testable. Data binding in view layer by SwiftUI is awesome. Howe

Yusuke Kita 592 Jan 2, 2023
Green-grass-ios - GitHub Gardener? Start with Green Grass

Green Grass ?? Introduction GitHub Gardener? Start with Green Grass! This app ma

Kim Ain 9 Jul 9, 2022
Small app trying to recreate the Github's repos section from the iOS app with RxSwift and .nibs

Github Profile Repos Small app trying to recreate the Github's repos section from the iOS app with RxSwift and .nibs. This project is currently in pro

Leonardo 1 Apr 5, 2022