Wikimedia Apps/Team/Android/Nearby

Summary
Android had Nearby/Places in the app several years ago. It was removed due to performance challenges (details can be found here). It is a possibility that open source maps have improved since the feature has been removed, OR the tolerance towards Google Maps may have change (more context can be found here).

Next steps to be done
During March 2023, we will start receiving-here on this page- Android users' views to weigh in on preferred approach to bring the feature again to the app.

Current status
We're presenting the available notes on choosing the best approache to bring the feature back again as follows:


 * Google Maps

➕ Very easy to integrate.

➕ Minimal maintenance and modest increase in total APK size.

➖ Won't work on devices without Google services.

➖ Not open-source, so won't be allowed in F-Droid builds.

➖ Not free to use. Here is Google's pricing structure for Maps.


 * Mapbox

Mapbox is the best-known SDK (outside of Google) for integrating maps into web and native platforms, and this is what we were using previously to hook into our own OpenStreetMap tileserver.

(To clarify a bit: Mapbox is a company that offers components and SDKs for rendering maps on web and native platforms, and they also have their own tile servers, but you can also just take their SDK and point it to your own tile server, which is what we were doing.)

However, there have been some recent changes to Mapbox's licensing model:

➖ We can no longer use the Mapbox library without creating an account with them and using an API key (even if we use our own tile servers).

➖ When we attempted to create/access an account (just for the purpose of trying their latest library), we were greeted with this:

➖ According to recent discussions, it sounds like Mapbox now charges fees for every map-load, even if using your own tile server. For these reasons, we can conclude that Mapbox might no longer be the right fit for our needs.


 * MapLibre

There is now a community-maintained fork of the Mapbox SDK that will remain open-source, but probably won't receive backports from upstream. Nevertheless this is probably closer to what we're looking for. The rough pros and cons of using this SDK will be:

➕ Totally free and usable in all builds, including on devices that don't have Google services.

➕ Relatively easy to resurrect based on our old code since integration will be very similar.

➖ By necessity, less functional than the standard Google Maps app on the device. (e.g., "Can I get directions to this marker from my current location?" "Can I have a satellite view instead of the regular map?" "Is there a traffic overlay?" etc.)

➖ Nearly doubles APK size from the current 14 MB to 25 MB.

➖ Will require more maintenance; Any errors or issues with tiles will be ours to fix.

Here's a quick example of it in action, using raster tiles from the Wikimedia tile server:

As you can see, using raster tiles is suboptimal and comes with quirks: Rotating the map away from true North doesn't keep text labels aligned horizontally; Some tiles have cut-off labels from one tile to the next, etc.