Create a gist now

Instantly share code, notes, and snippets.

Embed

Native OS X OpenStreetMap editing app

Reasoning

Prompted by:

Who wants to write a Mac-native OSM editor with me?

— Ian Dees (@iandees) February 9, 2014
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

And a few more key followups:

@iandees Uh, that could be awesome. Why exactly? I know it’d be fun/great but iD is pretty great too.

— Justin Miller (@incanus77) February 9, 2014
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

@incanus77 cuz JOSM is buggy and bloated nowadays, on top of Java-in-OSX's problems.

— Ian Dees (@iandees) February 9, 2014
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

@incanus77 maybe @jfire has an idea for what could be offloaded, but i think most of the time is spent in SVG rendering?

— Ian Dees (@iandees) February 9, 2014
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

@iandees @incanus77 I pan a lot. It’s annoying when, tho, that JOSM is really sensitive to mouse scroller & zooms out so far so fast

— Steven Vance (@stevevance) February 9, 2014
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

Possible approach

Seems like a good approach might be:

  1. Fork iD.

  2. Profile 2-3 performance bottlenecks or identify other reasons to develop a native app in the issue queue.

  3. Work through and, if possible, fix performance issues & contribute code back upstream to iD via pull requests.

  4. See where things stand & if making a native client still makes sense.

  5. Start prototyping a TileMill-style WebKit/Chromium/whatever browser-based hybrid app and begin offloading portions to native code.

iD notes

Within reason, it might make sense to somehow introduce pluggable architecture into iD itself to better facilitate such native chrome. This might benefit other platforms like Windows, Linux, and even eventually mobile.

Some reasons that working with iD makes sense are:

  • It's widely used, benefitting UI familiarity and use patterns.

  • It's well-architected and documented

  • It has significant work applied and mindshare already

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment