muclemente / GitHubBrowser

Tiny iOS application used to study RX concepts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Application Scope:

GitHubBrowser is an iOS application that you can use to search for GitHub users, their repositories and profile stats;

I've used this project to learn a little about RxSwift and Reactive concepts;

Concepts:

  • XcodeGen project generation to help with conflict mitigation in a team environment;
  • Separate framework modules for isolating code and delitiming responsibilities/property accessors:
    • App: Main target with executable and initialization code;
    • Core: Reusable extensions, constants and mechanisms in the app;
    • Features: Presentation and business layer code;
    • Provider: Network access and abstractions for any data input;
  • View Model/Rx/Coordinator patterns;
  • Dependency injection pattern to help with test dependency mocking;
  • ViewCode practices for better UI componentization;
  • Unit tests using Mockolo to help with boilerplate code in the test project;

Setup:

  • Uses GitHub's Personal Access token to authenticate. Setup this using the Makefile. Example: make user=muclemente token=XXX project

Features:

  • User search screen: lets you search for any GitHub user; You can search for usernames with more than 2 characters;

Search

  • Repository list: lists all public repositories for the selected user; Also lists the watchers, forks and stars from the repo;

Repositories

  • User profile: shows the public profile information from the selected user;

Profile

Things to improve:

  • Implement pagination in searches;
  • Hone in RX skills to make more advanced usage of the RX API (creating reactive components, better error treatment, etc)
  • Add UITests for basic flow;
  • Add cool transition animations ;)
  • Add snapshot tests;

About

Tiny iOS application used to study RX concepts


Languages

Language:Swift 97.7%Language:Objective-C 1.5%Language:Ruby 0.4%Language:Makefile 0.3%