Simple and reliable location sharing.
Warning
This app is still under heavy development and not ready for production use!
Location Share is a simple app that allows you to share your location with your friends and family. It is designed to be easy to use, yet open and reliable. The app is built with Jetpack Compose and uses a self-hostable server written in Go for the backend.
![A mockup of the location share app](https://private-user-images.githubusercontent.com/48018197/404515950-cb62a59b-1635-47ef-b3d3-ff629df05677.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MDI0ODMsIm5iZiI6MTczOTUwMjE4MywicGF0aCI6Ii80ODAxODE5Ny80MDQ1MTU5NTAtY2I2MmE1OWItMTYzNS00N2VmLWIzZDMtZmY2MjlkZjA1Njc3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDAzMDMwM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJmY2Y1ODcxZDU1NzBhN2Q0NjBlMWYwMDA3MDg2NTViMDU0ZmZmMTE4OWMyMGRmN2E4OWExOTZkYWNkODQxZDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.IGe_XyrhLqBO0V8Yek2LKlYZQQzd68N1Em_HbDJXRb8)
Your location is among your most sensitive data and you should be in control of it. Existing location sharing apps often require you to create an account and share your data with a third party. Location Share is designed to be self-hosted, meaning you can run your own server and be in control of your data.
Being in control of your own data also means that you can do with it whatever you want. The API is open and easy to use, so you can build your own clients, dashboards, run data analysis on your location data, or even integrate it with your smart home.
As this is just a side project and I am the only developer, I can't guarantee that the app will be updated regularly or be bug-free. However, by reliable, I mean that when you share your location with someone, you want them to always have the latest location. This is why I use the same trick as Google Maps: The app sends a push notification to the device to wake it up and fetch the latest location.
When you want to create a new release, follow these steps:
- Update the
versionName
(e.g. 1.2.3) and increase theversionCode
(e.g. 3) inapp/build.gradle.kts
- Commit that change (
git commit -am v1.2.3
) - Tag the commit (
git tag v1.2.3
). Make sure your tag name's format isv*.*.*
- Push the changes to GitHub (
git push && git push --tags
) - Edit and publish the release draft created by the workflow in GitHub
After building successfully, the action will publish the release artifacts in a new release draft that will be created on GitHub with download links for the app.
I am happy about every contribution to this project. If you have an idea for a new feature, found a bug, or just want to help out, feel free to open an issue or a pull request. Please make sure to use the gitmoji convention for your commit messages.
This project would not be possible without the following projects:
- Ramani Maps for the just simple enough compose-wrapper around Maplibre
- Versatiles for the best tile server (and much more) out there
- Lucide for the beautiful icons