8 karma · joined November 12, 2015
By resolution I mean exactly this - resolution. High-resolution tiles, also known as retina tiles. Low-resolution tiles are not used at all. All of that is not related to zoom.
If this wasn't clearly communicated by me: all zoom levels are rendered by the own servers.
I don't load tiles from the severs other than the own ones. Not only am I aware of the OpenStreetMap's rules about it. It is also an important part of the privacy guarantee. No third party gets information about the loaded map tiles. This information is not stored, not collected, and not shared with anybody.
That's the legal part. I've been also thinking about all the contributors, and had an impression that the attribution shown after a single tap would be okay for them too.
I might be wrong, but here's how I see it.
I'm using the standard Apple framework called MapKit. It allows displaying your own map tiles. The "Legal" link is part of the framework UI and the framework API doesn't allow changing or hiding it. So doing so (changing or hiding it) is the way to risk not passing through the App Store review. I suspect that also Apple's own maps use OpenStreetMap data and Apple thinks it's legal and even obligatory to have this "Legal" link.
In my opinion, the "Legal" link is not just Apple's attribution that doesn't apply to third-party apps. It's specifically there, in the map framework MapKit, for the third-party apps on Apple platforms to display maps. The fact that the web page is technically located on Apple's web server doesn't automatically mean it's Apple's own attribution. It's all Apple's platform. The iOS apps are downloaded from the App Store, they use Apple APIs for interacting with the OS, they use Apple frameworks. By default, Apple's standard Licensed Application End User License Agreement applies for app distribution and usage.
And last and not least, it's not that the attribution is hidden or unreachable for the people using the app. It's right there, shown on tap, first line in bold text, the link to it is always visible on the map.
Contains map data © OpenStreetMap contributors, www.openstreetmap.org/copyright
I thought it complied to the OSM license. Does it not?
What I wanted to show here among other things and why optional chaining would not help is if we wanted to have a special case handling on failure. Optional chaining fails silently. So if we wanted to log an error or to terminate the app every time the request fails, we'd have to do it on every function call.