A Question on implementing OSM in Native Mobile App

Hello everyone, new here and pretty desperate to find answers, so I hope this OSM-family can help.

Full disclosure, I barely understand how OSM works with mobile applications as im not a programmer, we have hired an offshore development company to utilise OSM in a native mobile application for both iOS and Android using Swift/Kotlin. We are a small start-up comprised of my brother and I putting our hard-earned money into this project trying our best to bring it to life. I’ll try give the backstory and our issue, whilst keeping it short :laughing:

First I want to say I absolutely love the idea of OSM, getting away from goggle/apple or any 3rd party for that matter that doesn’t care about peoples data and privacy has become a must for me! I respect what has been developed here by keeping it open-source and eventually one day I want to figure out how to contribute back to this. That being said, trying to get a dev company to utilise OSM has been DIFFICULT! I’ll explain:

Our use-case is a bit more complex then others, without giving away our product, we obviously require OSM base layer to load on both native iOS & Android and not look 1996, so some custom tiles to make it sexy. But now the hard part is the ability to select a Custom route is where we are coming unstuck. Basically we need the user to be able to select street-by-street routes on our mobile app. The idea is to put in the start/end point and from there select each street from start to end that the user wants to take. The map will show the progress of the route as the user selects the streets. We have looked into the whole ‘snap to road’ finger tracing function and its a mess. Hence why we just want to be able to select a street at a time until we get to the end point. We do not require an actual route/direction turn by turn function, only the ability to create the route.

The issue is that the development company first pushed us down the line of MapBox for this function :rofl: took me a week to get across to them that we didn’t want to get stuck in their ridiculous eco-system that’s geared to hike the price up exponentially with user interaction, our app is going to be free so we wont have heaps of cash to throw around. Not to mention Mapbox’s privacy policy isnt exactly sound. We care about our users and their data!

This led us to push the Dev company to search for alternative up-to-date solutions for the custom routing creation process that we required. We have given them multiple links to libraries/sdks/api’s for them to investigate to find something we can utilise but they keep coming back to the same thing: “We need to create our own framework SDK in order to implement OSM natively using Kotlin/Swift”. Basically the cost of the app would double! I started talking to a friend of mine who has knowledge of programming and telling him what is going on and he basically said it was complete rubbish what they are suggesting and there are multiple option out there to get the job done.

So now im here, I really need some advice whether the offshore dev company is trying to just get money out of us, or if they have merit in what they are saying. We get the impression they actually dont really know what they are going but honestly cant confirm this. Below is a list of their suggested OSM SDK Framework based off Native iOS development:

  • Open Street Map convert for iOS Map SDK
  • Displays current location and altitude
  • Displays location accuracy
  • Map tapping event recognizer
  • Setup Accessibility
  • Set GPS State
  • GPS State In Background
  • Map ZOOM & Rotation
  • OSM Map Data Load
  • OSM Cache Handling
  • Map App State Handling
  • Map Delegate Protocal
  • Add Annonation/ Marker/ Place Display Support
  • Map Style Layer Changeable
  • Persistent Cache Management
  • KeyChain Storage Management
  • VectorMath
  • Map Marker Customization
  • Displays user heading (Device orientaion)

Any help in either pointing us in the right direction or clarifying what the development company is doing would be greatly appreciated. Please keep the explanation of things basic as im new to OSM and not a mobile app developer lol. Thanks everyone :heart:

1 Like

OpenStreetMap is just data, if you don’t want to rely on a third party you will have to keep a copy of the data yourself and create your own maps (what you intend to do anyway).

There are many options how to do it, depending also on the decision how to present the map (vector tiles or raster tiles). Regarding the privacy concerns, AFAIK if you activate location based services you will unavoidably share your location with either apple or google provided you are on iOS or Android, maybe they say it is just in “anonymous form to improve the service”, would have to analyze the terms of service for this. And you will share your approximate position with your mobile provider regardless of using location based services, as soon as you book into a cell.

Check out MapLibre, which is partially based on an old fork of Mapbox’ SDK when it still had a compactible license and has been developed further ever since. Should come the closest to your needs.

1 Like