Skip to content

Repository files navigation

StockTracker — Mobile

The iOS and Android companion to StockTracker Web. Same portfolio data, optimised for your phone — with biometric unlock, push notifications, and an Android home screen widget showing your portfolio balance at a glance.

This app connects to the StockTracker backend. You need the web app running (or deployed) before the mobile app will work.


Features

  • Full portfolio overview — holdings, P&L, cost basis
  • Performance charts with period comparison
  • Fundamentals and analysis for each holding
  • Watchlist for stocks you're keeping an eye on
  • Cash flow tracking
  • Community leaderboard
  • Biometric unlock (Face ID / fingerprint)
  • Push notifications
  • Android home screen widget — live portfolio balance, updated every 30 min
  • Dark and light mode (follows system)
  • Google OAuth login via the web backend

Tech stack

Layer What
Framework Expo 57 / React Native 0.86
Routing Expo Router (file-based, same feel as the web)
Data fetching TanStack React Query
Auth Better Auth + @better-auth/expo
Animations React Native Reanimated
Charts D3 (d3-scale, d3-shape)
Icons Lucide React Native
Widget react-native-android-widget
Builds EAS Build (Expo's cloud CI)

Getting started

Prerequisites

  • Node.js 20+
  • Bun or npm
  • Expo Go on your phone for development, or Android Studio / Xcode for a local build
  • The StockTracker web app running locally or deployed — the mobile app points to its API

1. Install dependencies

From this directory:

npm install

2. Set up environment

cp .env.example .env.local

Set EXPO_PUBLIC_API_URL to wherever the web backend is running:

# Local dev (physical Android device via adb reverse)
EXPO_PUBLIC_API_URL=http://localhost:8080

# Production
EXPO_PUBLIC_API_URL=https://stocktracker.derekyuan.co.uk

Physical Android device over USB: run adb reverse tcp:8080 tcp:8080 first so the device can reach localhost. Don't use your LAN IP — Google OAuth won't accept it as a redirect URI.

3. Start the dev server

npm start

Scan the QR code with Expo Go (Android) or the Camera app (iOS). For a full native build (widgets, biometrics, push notifications), use a dev client build instead — see EAS below.


Building with EAS

EAS Build is Expo's cloud build service. It handles signing, native compilation, and distribution without needing Xcode or Android Studio locally.

# Install EAS CLI
npm install -g eas-cli

# Log in
eas login

# Development build (runs on device, includes native modules)
eas build --profile development --platform android
eas build --profile development --platform ios

# Preview build (internal testing)
eas build --profile preview --platform all

# Production build
eas build --profile production --platform all

Build profiles are defined in eas.json.


Project structure

app/
  (tabs)/         # Main tab screens (dashboard, holdings, analysis, etc.)
  _layout.tsx     # Root layout and auth guard
src/
  components/     # Shared UI components
  theme/          # Design tokens and colours
  widget/         # Android home screen widget
assets/           # Icons, splash screen, fonts

Related


Contributing

See CONTRIBUTING.md for code style, commit format, and PR guidelines.


License

MIT

About

Android companion to Stocktracker

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages