Acknowledgements
locationjoystick is built using a number of open-source projects. Every library and data source listed here is used directly in the app you install. Thanks to everyone who works on them.
Map & location data
The map you see and the routes it can follow come from these projects.
| Project | Used for | License |
|---|---|---|
| MapLibre Android SDK | Renders the interactive map throughout the app, including the floating map overlay. | BSD 2-Clause |
| OpenStreetMap | Default map tile data displayed on every map screen. Tiles are fetched from tile.openstreetmap.org as you navigate. | ODbL (© OpenStreetMap contributors) |
| Amap (高德地图) | Optional map tiles when "Map source" is set to Amap in Settings. Tiles are fetched from webrd0*.is.autonavi.com as you navigate; only the tile position and zoom level are sent. | © AutoNavi · GCJ-02 coordinate system |
| 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 search used in the route creator and the favorites map picker. See Settings → External services for what's shared with it. | Data: ODbL · Software: GPL-2.0 |
Language & async
These tools form the programming foundation the app is written and run on.
| Project | Used for | License |
|---|---|---|
| Kotlin (JetBrains) | The programming language the entire app is written in. | Apache 2.0 |
| Kotlin Coroutines (JetBrains) | Handles all background tasks and real-time location updates inside the app. | Apache 2.0 |
| Kotlin Serialization (JetBrains) | Reads and writes data for export, import, and QR transfer. | Apache 2.0 |
UI & design
These libraries shape how every screen looks and how you move between them.
| Project | Used for | License |
|---|---|---|
| Jetpack Compose (Google) | The toolkit used to build every screen and interface element in the app. | Apache 2.0 |
| Material 3 (Google) | Provides the visual design system: buttons, cards, dialogs, and colors used throughout the app. | Apache 2.0 |
| AndroidX Navigation Compose (Google) | In-app navigation between screens and the navigation drawer. | Apache 2.0 |
| AndroidX CameraX (Google) | Provides camera access for the QR code scanner when importing a configuration. | Apache 2.0 |
Architecture & storage
These libraries wire the app's internals together and store your data on-device.
| Project | Used for | License |
|---|---|---|
| Hilt (Dagger) (Google) | Internal framework that connects the app's components together. | Apache 2.0 |
| AndroidX Room (Google) | The on-device database that stores your routes, favorites, and settings. | Apache 2.0 |
| AndroidX DataStore (Google) | Saves your settings and preferences on the device. | Apache 2.0 |
| AndroidX Lifecycle (Google) | Manages how the app responds to screen rotation, backgrounding, and other Android lifecycle events. | Apache 2.0 |
Networking
These libraries send and receive the app's network requests.
| Project | Used for | License |
|---|---|---|
| Retrofit (Square) | Handles network requests for place search and road-following routes. | Apache 2.0 |
| OkHttp (Square) | The networking layer that powers all outbound requests from the app. | Apache 2.0 |
QR codes
This library reads and generates the QR codes used for config transfer.
| Project | Used for | License |
|---|---|---|
| ZXing (Zebra Crossing) (Google) | QR code encoding (export) and decoding (import) for the device-to-device config transfer feature. | Apache 2.0 |