Station Mobile

Introduction

Many people will discover Station through mobile apps like Twitter (X). However, there is a UX chasm to cross to go from a Tweet to downloading the Station desktop app. A Station mobile app will offer a straight forward UX flow from each person’s Station discovery moment to being a Station “user”.

A design challenge bringing Station to mobile devices is that phones do not let processes run fully in the background as this can eat through users’ data and battery.

Iphone: Iphone apps go into standby mode when they are not open.

Android: IIUC, you can configure an Android app to run in the background but I doubt many users will be happy to do this.

Therefore, the Station mobile app will be very limited in what jobs it can do. However, it can still act as a dashboard and control panel for a user’s other Station nodes!

Initial Work Plan

We hire a Mobile app development contractor to build a mobile app that can achieve the first flow described below: Scan QR code on Station Desktop / Station core node to get Station stats.

Requirements

  • The user can download the Station App from the main App Stores on Iphone and Android.
  • The user is onboarded to Station and learns what it is, in very simple terms.
  • The user can rediscover information about what Station does in the app after onboarding.
  • The user can scan a QR code on the desktop app that allows it to read the stats of the desktop app. These stats are then updated every minute or so.
  • The user can see where they stand on the Station Operator leaderboard.
  • Unless good reasons to the contrary, the app will be built using React Native to reduce # of code bases and align with the Station team’s JS knowledge.

Dependencies

  • Scheduled rewards and wallet balance is available publicly. Operator job count must be made publicly available, so that the phone can keep getting an updated number.
  • Leaderboard must be built and made public.
  • Desktop app shows QR code, encoding the Station’s public key
  • Station Core opens website displaying the QR code for its public key

Flows

Phase 1: Scan QR code on Station Desktop / Station core node to get Station stats

UX Flow

  1. User sees Station on Twitter and feels compelled to download the mobile app
  1. User downloads mobile app, which explains Station with the onboarding and then asks for the user to download Station desktop
  1. User downloads Station desktop if they don’t already have it.
  1. In the Station desktop settings, there is a QR code to scan. Station core can also generate one in the CLI or in a web browser page.
  1. User scans QR code with phone app.
  1. User can see scheduled rewards, wallet balance and job count on their phone.
  1. Whenever the user opens the app they can see these values updated.
  1. User can see where they are on the leaderboard.

Considerations

  • Job count would need to be retrievable remotely. Currently job count is just stored locally on people’s devices so the phone would be unable to access it apart from when it scans the QR code.
  • Station needs an operator leaderboard.
  • Station desktop needs somewhere to put this QR code without harming the slick UI/UX experience of the app.

Phase 2: Transfer funds out of Station Wallet

UX Flow

  1. When a user has earned more than 0.5FIL, fund will be sent to their Station Wallet.
  1. The user is able to send these funds to a destination wallet from their phone app.

Considerations

  • This will require the phone to have access to the Station private key which is on the desktop/server machine.
    • Apple key chain or other secret stores could be used?
    • The private key could be transferred via the QR code scan but this seems very insecure.
    • Airdrop or other p2p protocol could be used, such as Diffie Hellman.

Phase 3: Change settings or trigger active changes

Once more features become available in Station, such a multiple modules which can be turned on and off, or the ability to stake, users can do all these actions from their phone instead of their desktop or laptop.

Considerations

  • This will also require the phone to have access to the Station private key which is on the desktop machine.