HNHacker News
TopNewBestAskShowJobs

eofster

8 karma · joined November 12, 2015

submissionscomments
eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
Released a new version with a proper attribution that is always shown on the map.
eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
Absolutely! What exactly do you want to know? The rendering pipeline is the most standard one: Mapnik, Postgres, openstreetmap-carto, renderd. Everything is hosted on the own servers.

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.

eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
Yep, thank you and habi for bringing this up. Now, after learning the Attribution Guidelines more thoroughly, I'm updating the app to show the attribution directly on a map and fading it as specified by the guidelines.
eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
The app doesn't use the low-resolution tiles. The app only works on the high-resolution displays.

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.

eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
All those points - credit, link to the license, and suggested text - are right there, as the very first line of the page that opens on tap. So the difference is if all of that must be directly on a map itself or a link to the attribution, especially when there's little space on the screen, is also in compliance with the license. I've just been thinking that it's in compliance.

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.

eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
First of all I want to emphasize that I want to comply with the license. This is my goal. And thank you for helping me to find the right solution for this.

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.

eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
No worries, you're not wrong. By default on the App Store the standard Apple's Licensed Application EULA applies. Optionally, Apple allows you to have your own license agreement instead of the standard one. And there is a special field for it on Apple's website where you edit your App Store app metadata. However, if you do not use your own agreement (you use the standard one) and also offer subscriptions, Apple wants the link to the standard agreement be explicitly specified in the app description. And in iOS UI it's called 'Terms of Use'.
eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
I am. The high-resolution ones.
eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
Well, this is the license the app is distributed under, the standard App Store app EULA.
eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
The linked webpage shows the attribution to OSM in the very first line:

Contains map data © OpenStreetMap contributors, www.openstreetmap.org/copyright

I thought it complied to the OSM license. Does it not?

eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
Oh, thanks for the heads-up, updated the title.
eofster··on Show HN: Private Maps for iOS – Minimalist OpenStreetMap
Hey, I've created a maps app for iOS that I always wanted to have: private, minimalist, easy on the battery, and in standard OpenStreetMap style.
eofster··on Null Object Pattern in Swift
I now see that my examples are oversimplified. I also don’t think that the Null Object pattern is the ultimate solution for handling nulls. I just found it useful in certain cases.

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.