Skip to content

lukehmcc/luogo

Repository files navigation

⚠️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.

Luogo

A Simple & Secure Group Location Sharing App

Google Play badge App Store badge

3screenshots

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.


Features

  • 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.

Getting Started

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.

Development

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 version

To build a production apk:

./flutterw build appbundle --flavor prod

Feel free to submit an issue or PR if you run into any issues. I'm here to collaborate and make the best app possible!

Architecture

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.

Etimology

Luogo is an Italian word for Place. Just thought it sounded nice (and no one had an app called that yet :p)

Acknowledgement

Th work is supported by a Sia Foundation grant.

About

Group location sharing app that prioritizes simplicity & privacy.

Resources

License

Stars

Watchers

Forks

Packages

No packages published