/HackrNews

A simple iOS client for Y Combinator's Hacker News.

Primary LanguageSwiftMIT LicenseMIT

HackrNews

macOS iOS


GitHub last commit issues GitHub license GitHub forks

About Hackr/News

A simple iOS client for Y Combinator's Hacker News.

App Architecture

Core modules

The core Hackr News Feature and API's modules are platform agnostic, so they can be reused.

MVC

We started with a simple MVC approach, delegating responsabilities for refreshing, displaying cell information and managing cell controllers to its own components.

App Architecture MVC Diagram

You can check the diff here

MVVM

In this approach we create a new platform agnostic Stories Presentation module, so they now can be reused by any platform.

App Architecture MVVM Diagram

You can check the diff here

UX goals for the New Stories UI experience

  • Load stories automatically when view is presented
  • Allow customer to manually reload stories (pull to refresh)
  • Show a loading indicator while loading stories

Stories loading experience

  • Render all loaded stories items (Title, Author, score, created at, total comments, url)
  • Load story when is near to be visible (on screen)
  • Cancel load story when is out of screen
  • Show a loading indicator while loading story (shimmer)
  • Option to retry load story in download error
  • Preload when story view is near visible