Skip to main content
StepByStep — LSMO High Distinction - 1 of 4
1 / 4
AcademicHigh Distinction

StepByStep — LSMO High Distinction

Android/Kotlin walking-route app developed as the final project for LSMO. StepByStep records routes in real time, imports GPX files, persists route data, calculates distance, time, elevation and gain metrics, and presents profile statistics with light and dark themes.

Project narrative

StepByStep was my final project for LSMO, a mobile and ubiquitous systems course focused on Android development. Unlike AST, this was not a project grown through many separate mini-projects: the goal was to deliver a complete mobile application for walking routes, from route creation and GPX import to live tracking, metrics, persistence, profile statistics, and theme support.

The core of the app is real-time route recording. A ForegroundService keeps tracking active while the app can move to the background, using FusedLocationProviderClient for high-accuracy updates, a persistent notification so the user can return to the active route, START_STICKY behavior, and a PARTIAL_WAKE_LOCK to keep the CPU available during recording. The service calculates distance from consecutive location points, elapsed time, current elevation, and positive elevation gain, then broadcasts updates to the recording screen.

The project also includes GPX import through a custom parser that reads track points, elevation and timestamps, calculates route statistics, and stores the result with Room. Routes and points are modeled as separate entities with cascade behavior, allowing the app to list recorded/imported routes, show profile-level statistics, and persist the walking history. Visually, the app combines Google Maps, a dark map style, light/dark Android themes, and dedicated screens for route creation, importing, profile metrics, saving, and route detail review.

Role & contributions

Android project developer for the final LSMO assignment. Designed and implemented the Kotlin app structure, Room entities and repositories, GPX parser, route recording service, Google Maps integration, metrics calculation, profile statistics, theme support, and screen flows for listing, importing, recording, saving, and reviewing walking routes.

Versions & milestones

vBRIEFFinal assignment

Walking-route app definition

The project was scoped as a complete Android app for recording, importing, storing, and reviewing walking routes.

vTRACKCore implementation

Background route recording

ForegroundService, Fused Location, notification, broadcasts, and wake lock management kept route metrics active while recording.

vGPXData workflow

GPX import and Room persistence

Custom GPX parsing and Room entities stored routes and points with calculated statistics.

vFINALMay 2025

High Distinction in LSMO

Final delivery with route recording, import, metrics, profile statistics, themes, and map-based screens.

Tech stack

Kotlin
Android
Room
Google Maps
Fused Location Provider
Foreground Service
GPX
MPAndroidChart
MVVM
XML Layouts