A simple Hacker News client built in Flutter using MobX for state management.

The goal of this project were to utilize MobX as a state management solution.


  • The HomePage consists of three tabs, each rendering the first page feed of latest, top and job items.
  • FeedList observes HackerNewsStore and renders a list of FeedItemTiles once the store loads the relevant feed. These items are cached once loaded, pull-to-refresh can be used to update these items.
  • Clicking on an item in the list will open up the relevant article in the browser.


  • The store part can be generated using
    flutter packages pub run build_runner build
  • Instead of manually generated this file anytime the store is updated, we can automatically generated if need using
    flutter packages pub run build_runner watch
  • Sometimes there may be conflicts between an updated store and the previous build part file, thus I generally supply the delete parameter also:
    flutter packages pub run build_runner watch --delete-conflicting-outputs
  • MobX seems like a solid state management solution with minimal boiler plate code. Is it the best way to separate business logic and UI for small projects? Hard to say. In a future project I will investigate MVVM using Provider and ChangeNotifier.


MobX - Getting Started


This post was generated from a GitHub repository.