> Proprietary use, commercial redistribution, or publishing modified versions with ads or tracking is strictly prohibited under GPLv3 or later.
These all sound to me like "Further restrictions" which the GPL says:
> If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.
It seems like if you want those clauses that GPL doesn't seem like the license you want?
The reason I included that note is that, as an open-source developer, I’ve seen many projects that weren’t actively maintained get picked up by bad actors as they modify the code and publish it on Google Play with ads or IAPs. I wanted to discourage that.
Other than this notice, MBCompass is fully licensed under GPLv3 or later.
The sum of the note and the gpl doesn't behave as though the notice has any precedence over the gpl. It behaves as additional restrictions and a license that allows you to ignore the additional restrictions. I'm no lawyer but it seems like it isn't achieving what you want.
Just installed. It looks very neat, but I wonder how accurate the compass is. I am in a train now on a completely straight track and I get compass deviation of >60° as if the train is making curves all the time. OpenStreetmap places me in New York instead of Netherlands.
MBCompass uses sensor fusion for accuracy, combining sensor data from the accelerometer, gyroscope, and magnetometer.
It is one of the most accurate compass apps. Don't trust my words, try it with different apps on Google Play and with some FOSS options like Compass by Philip Bobek: https://f-droid.org/en/packages/com.bobek.compass
And importantly, for true compass accuracy, I'd recommend you use the "true north" (magnetic declination) function, which requires location access. It takes some time to lock GNSS hold (the same goes for the current location button on the map view, default map location is Paris, France), but if you're moving, it locks pretty quickly and shows your current location with tracking (if you're moving.)
As a FOSS maintainer myself, I recommend you to charge (a small amount of) money for the app. People could always compile and run the app themselves still, so paying for the app is a clear way to support the project. I see that you have donation on your page, but it rarely happens that people donate. Just my 2 cents.
Thanks for the suggestion. I do plan to publish the app on Google Play as well. While much of the audience is FOSS-oriented, there are also users who aren’t familiar with open source or compiling apps themselves, like here: https://github.com/CompassMB/MBCompass/issues/48.
For them, donations are a simple way to support the project, and they’re definitely appreciated.
Thanks! MBCompass will stay fully FOSS and free. Donations are extremely rare (tbh, I've not received a single one), especially from the Foss Android community, but they’re still very helpful for long-term sustainability (given Google's non-sense Play monthly policies) and greatly appreciated, especially for users new to open source.
Not true anymore! \o/ I don't use Android anymore, but I agree a lot with the principles you've shared here, so it's a thank you for sharing that. And I know how difficult it is to get the first donations, and after you get the first, it's much easier to get the later ones. So best of luck, and I hope you'll remain steadfast with your principles when it'll matter! :)
Thank you, that really means a lot. Consistency has been important to me, whether it’s shipping regular releases with real improvements (https://github.com/CompassMB/MBCompass/releases) or writing about Android development and FOSS alongside the project. I really appreciate the encouragement and support.
I found MB Compass a few weeks ago and it's been very helpful for everyday things. For example, I just moved to a new apartment and I used the app to identify which room would get the best sunlight for my office. Works great!
This is a wonderful app. Thanks for making builds available via Obtainium. You will be getting a donation shortly. I will assuredly use this when I go hiking and fishing.
Beyond donating, the best way to support MBCompass is simply spreading the word. That helps more people discover it, contribute to it, and make it better for everyone.
I would like to say that an in app way of purchasing the app would be great.
Something like what FUTO software does.
Just add the card details and click pay button, easy two step process.
If you want to receive compensation for the work you put into making the app, then you need to start treating it as work and call it a payment and not donation.
Yep, I’m aware that many FOSS projects use in-app payments, but for MBCompass, I want to keep it free on every platform, regardless of the audience. Without funding or community contributions, it’s hard to maintain a FOSS project with meaningful features and improvements, rather than just vague “bug fixes/version bumps.”
As a FOSS advocate, I started this project as a community contribution to address the gap between user needs and available apps.
I can maintain it long-term without major contributions, but support really helps (especially maintaining in different apps stores). I’m planning a non-intrusive in-app prompt to remind users about donations something subtle, because many users forget once they start using the app, rather than only seeing the donation info in the README.
Neat. If you want to make it more practically useful you will need to include some kind of magnetic compensation map. That's one of the reason navigation apps usually are a bit larger, they require a lot of data to function well world wide. Best of luck with this, it looks very promising!
Thanks! Currently, MBCompass can show both magnetic north using Android’s sensor fusion and true north (based on WGS84 geodetic coordinates).
Adding a magnetic compensation map sounds like a great fit for improving global accuracy without changing the app’s core goals. Thanks for the suggestion.
Currently, the app shows the user’s live location with real-time tracking on an OpenStreetMap-based map. It does not calculate routes or provide turn-by-turn navigation instead, it focuses on orientation and situational awareness.
I’m actively working on features like waypoint tracking, offline maps, and a GPS speedometer. The goal is to keep MBCompass a useful navigation utility, not a full routing app.
Routing isn’t planned at the moment (maybe with plugins later), since adding it would shift the app away from its core purpose and increase complexity. The main priority is to remain fully functional offline-friendly and extremely lightweight (currently under 1.5 MB).
Good question! “Offline-friendly” mainly refers to the core compass and sensor features, which work fully offline.
For maps, it’s a bit different users initially see an online basemap (requires internet). Instead of forcing them to download an entire map upfront like some libraries (e.g., MapsForge), they can crop or select specific areas to download.
This makes it convenient to get only the map they need.
Of course, if they prefer online maps, the app will cache tiles automatically. In remote areas, offline maps can be used as planned.
TBH, that’s a great idea! It’s actually on my roadmap for MBCompass, something like waypoint tracking, where you can mark a location and get a directional arrow to it. Appreciate the suggestion!
It's incredible how small apps get when you throw away all the bullshit: useless frameworks, ads, third party libraries that require you to include a huge binary.
People are always amazed when i show them my apps are 2-5 megs, and that's because there's 2-5 megs of assets.
Exactly! That’s exactly the philosophy behind MBCompass keeping the core functionality focused and lightweight, without unnecessary frameworks or bloat.
People are often surprised by how much you can do in under 2 MB.
There are also frameworks that don't bring in anything unless required. I use B4X for most of my apps.
It has a fundamental issue, which is being single threaded (with exceptions), but it's truly lightweight and easy to extend, and the team behind it really know their business.
These all sound to me like "Further restrictions" which the GPL says:
> If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.
It seems like if you want those clauses that GPL doesn't seem like the license you want?
Other than this notice, MBCompass is fully licensed under GPLv3 or later.
MBCompass uses sensor fusion for accuracy, combining sensor data from the accelerometer, gyroscope, and magnetometer.
It is one of the most accurate compass apps. Don't trust my words, try it with different apps on Google Play and with some FOSS options like Compass by Philip Bobek: https://f-droid.org/en/packages/com.bobek.compass
And importantly, for true compass accuracy, I'd recommend you use the "true north" (magnetic declination) function, which requires location access. It takes some time to lock GNSS hold (the same goes for the current location button on the map view, default map location is Paris, France), but if you're moving, it locks pretty quickly and shows your current location with tracking (if you're moving.)
For them, donations are a simple way to support the project, and they’re definitely appreciated.
Not true anymore! \o/ I don't use Android anymore, but I agree a lot with the principles you've shared here, so it's a thank you for sharing that. And I know how difficult it is to get the first donations, and after you get the first, it's much easier to get the later ones. So best of luck, and I hope you'll remain steadfast with your principles when it'll matter! :)
- Waypoint tracking (with GPX import/export support)
- GPS speedometer
- Offline maps with offline POI search using GeoPackage (an OGC-compliant standard supporting spatial queries)
I’d love to hear your thoughts or suggestions your feedback is really appreciated!
Beyond donating, the best way to support MBCompass is simply spreading the word. That helps more people discover it, contribute to it, and make it better for everyone.
If you want to receive compensation for the work you put into making the app, then you need to start treating it as work and call it a payment and not donation.
As a FOSS advocate, I started this project as a community contribution to address the gap between user needs and available apps.
I can maintain it long-term without major contributions, but support really helps (especially maintaining in different apps stores). I’m planning a non-intrusive in-app prompt to remind users about donations something subtle, because many users forget once they start using the app, rather than only seeing the donation info in the README.
Adding a magnetic compensation map sounds like a great fit for improving global accuracy without changing the app’s core goals. Thanks for the suggestion.
https://www.ncei.noaa.gov/products/earth-magnetic-model-anom...
Is a good starting point.
Are you calculating the route or just pointing the user in the general direction?
I’m actively working on features like waypoint tracking, offline maps, and a GPS speedometer. The goal is to keep MBCompass a useful navigation utility, not a full routing app.
Routing isn’t planned at the moment (maybe with plugins later), since adding it would shift the app away from its core purpose and increase complexity. The main priority is to remain fully functional offline-friendly and extremely lightweight (currently under 1.5 MB).
By offline-friendly you're referring to the compass part only, right?
Otherwise users would have to download the map in advance which would take more that 2MB. Am I reading this right?
For maps, it’s a bit different users initially see an online basemap (requires internet). Instead of forcing them to download an entire map upfront like some libraries (e.g., MapsForge), they can crop or select specific areas to download.
This makes it convenient to get only the map they need. Of course, if they prefer online maps, the app will cache tiles automatically. In remote areas, offline maps can be used as planned.
Let me indicate a location and point an arrow at it!
People are always amazed when i show them my apps are 2-5 megs, and that's because there's 2-5 megs of assets.
People are often surprised by how much you can do in under 2 MB.
It has a fundamental issue, which is being single threaded (with exceptions), but it's truly lightweight and easy to extend, and the team behind it really know their business.