⚠️ Luogo is beta software! I've done my best to build a functional app, but if you run into any issues please file an issue.
A Simple & Secure Group Location Sharing App
Luogo is a cross-platform mobile app that allows groups of people to easily share their location without it being sold. Fully open source, writing in dart & rust, and utilizing modern MLS & encryption tech. You no longer have to trust a large corporatoin with your data.
-
Cross Compatible: No more worrying about walled gardens. All of your friends can join regardless of platform. (iOS/Android)
-
Batteries Included: No configuration required to get started. (Though you still can configure your S5 Node if you wish).
-
MLS: Utilizes modern encryption to make sure no one can read your location data unless you want them to.
-
Groups: Granular group sharing so you can control who knows where you are.
-
One Time Send: If you just want someone to have your location once, just send it with the one time button! No need to constantly send updates.
In Beta Period: For now the best way to try the app is to go to the Releases page and download the Android APK file. This will be updated when the app gets pushed to the App/Play Stores.
To get started with local development do the following:
git clone --recursive https://github.com/lukehmcc/luogo.git # make sure to recuse submodules
# If you forgot to recurse and already cloned you can do this
# git submodule init && git submodule update
cd luogo/
./flutterw run --flavor dev # Make sure to run with the flutter wrapper so everyone is on the same flutter versionTo build a production apk:
./flutterw build appbundle --flavor prodFeel free to submit an issue or PR if you run into any issues. I'm here to collaborate and make the best app possible!
Backend: Utilizes the s5_messenger library to handle messaging between users. The users location is grabed from the geolocator, parsed into a message format, then s5_messenger uses openmls to create the message in the respecitve group, and this message is relayed through the s5 network via a streams message. This is then done in reverse by the other clients in the room.
Front End: Utilizes Flutter to handle cross-platform compling with a single codebase. Cubits are used to handle state and seperate out buisness logic from the UI. The state code can be found in lib/cubit and the UI code is in in lib/view.
Luogo is an Italian word for Place. Just thought it sounded nice (and no one had an app called that yet :p)
Th work is supported by a Sia Foundation grant.
