Acknowledgements

locationjoystick is built on the shoulders of many excellent open-source projects. Every library and data source listed here is used directly in the production app. Thank you to every contributor behind them.

Map & location data

ProjectUsed forLicense
MapLibre Android SDK GPU-accelerated map rendering throughout the app. Powers all interactive map screens and the floating map overlay. BSD 2-Clause
OpenStreetMap Map tile data displayed on every map screen. Tiles are fetched from tile.openstreetmap.org as you navigate. ODbL (© OpenStreetMap contributors)
OSRM — Open Source Routing Machine Road-following route generation, guided route creation, and roaming with "Follow roads" enabled. The public demo server at router.project-osrm.org is used; waypoint coordinates are sent per request. BSD 2-Clause
Nominatim (OpenStreetMap Foundation) Place-name geocoding used in the route creator search and the favorites map picker. The public OSMF instance is used; only the search string is sent. Data: ODbL · Software: GPL-2.0

Language & async

ProjectUsed forLicense
Kotlin (JetBrains) Primary language for the entire codebase. Apache 2.0
Kotlin Coroutines (JetBrains) All asynchronous operations, background service coordination, and StateFlow/SharedFlow reactive streams. Apache 2.0
Kotlin Serialization (JetBrains) JSON serialization for import/export, QR transfer payloads, and OSRM API responses. Apache 2.0

UI & design

ProjectUsed forLicense
Jetpack Compose (Google) Entire UI layer. Every screen, dialog, and bottom sheet is written in Compose. Apache 2.0
Material 3 (Google) Design system tokens, components (cards, bottom sheets, FABs, dialogs), and theming. Apache 2.0
AndroidX Navigation Compose (Google) In-app navigation between screens and the navigation drawer. Apache 2.0
AndroidX CameraX (Google) Camera preview and frame capture used by the QR code scanner during config import. Apache 2.0

Architecture & storage

ProjectUsed forLicense
Hilt (Dagger) (Google) Dependency injection throughout all modules. Provides ViewModels, repositories, and services. Apache 2.0
AndroidX Room (Google) On-device SQL database (v2) storing routes, waypoints, and favorites. Apache 2.0
AndroidX DataStore (Google) Persistent key-value preferences for settings, speed profiles, GPS realism toggles, and widget configuration. Apache 2.0
AndroidX Lifecycle (Google) ViewModel lifecycle management and collectAsStateWithLifecycle() for safe Compose state collection. Apache 2.0

Networking

ProjectUsed forLicense
Retrofit (Square) HTTP client for OSRM routing requests and Nominatim geocoding queries. Apache 2.0
OkHttp (Square) HTTP engine underlying Retrofit. Handles connection pooling, timeouts, and TLS. Apache 2.0

QR codes

ProjectUsed forLicense
ZXing — Zebra Crossing (Google) QR code encoding (export) and decoding (import) for the device-to-device config transfer feature. Apache 2.0

Build & tooling

These tools are used at build time and are not bundled in the released APK.

ProjectUsed forLicense
KSP — Kotlin Symbol Processing (Google) Annotation processing for Hilt and Room code generation. Apache 2.0
Kover (JetBrains) Test coverage reporting. Aggregates coverage across all modules into a single HTML/XML report. Apache 2.0
JUnit 5 Unit test runner for all :core:* and :feature:* module tests. EPL 2.0
MockK Kotlin-native mocking library used in unit tests for repositories, services, and ViewModels. Apache 2.0
Turbine (Cash App) Testing utility for Kotlin Flows. Used to assert emission sequences in ViewModel and repository tests. Apache 2.0
Robolectric Android JVM test environment for tests that depend on Android framework classes without a device. MIT