Skip to content

Repository files navigation

Shuttle Tracker - Android

Shuttle Tracker is the Android app for RPI's real-time shuttle tracking system. It's the Android client for Shubble and talks to the same backend API, showing live shuttle locations, routes, ETAs, and schedules in a native Android app.

Screenshots

Click to open

Map Screen ETAs Screen Schedule Screen Widgets Screen

Features

  • Real-time tracking - live shuttle locations on the map, polled every 5 seconds
  • Route visualization - Google Map with route polylines and stops
  • ETAs - live arrival time predictions per stop
  • Schedule - browse the shuttle schedule by day and route
  • Push notifications - Firebase Cloud Messaging for service announcements
  • Home screen widget - live arrivals for all stops, or configure one stop for its full status, resizable from 2x2 up to 5x5

Tech Stack

  • Language: Kotlin
  • UI: Jetpack Compose (Material 3)
  • Architecture: MVVM with Hilt dependency injection
  • Networking: Retrofit + kotlinx.serialization, talking to the Shubble API
  • Maps: Google Maps Compose
  • Local storage: Jetpack DataStore (user preferences)
  • Widget: Jetpack Glance + WorkManager

New here?

  • Installation - set up Android Studio, clone the repo, and get the app running on an emulator.
  • Architecture - how the codebase is organized, so you know where to look (and where to add) code.
  • Notifications - how to test push notifications, and how to swap in your own Firebase project if you need one.

Related Projects

Links