AGS Touch: ArcGIS Server browser for iPhone/iPod Touch
I had been trying to get into iPhone / iPod Touch application development for some time, but I was just too lazy until I bought a few weeks ago an iPod Touch (which I really like - I am playing the Sudoku game from Mighty Mighty Good Games all the time).
As my first app and to learn how it works, I have developed an opensource browser for the ArcGIS Server 9.3 REST API, which I have called AGS Touch. It is quite bare-boned right now : It is possible to browse the folders of a REST endpoint (something like http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/), look at the details of a map service (such as its description, extent, layers…) and navigate the corresponding map. That’s basically it (and the map service details are not even completely filled yet). Still I have released version 0.1 with the limited functionality. Hopefully, I will make it better in the near future. Something I would like to have in the end is some kind of ArcGIS Server iPhone API (like what exists in Flex or SilverLight), although it is not quite ready yet…
There has been some effort to bring ArcGIS Server to the iPhone by using a UIWebView and include an existing JavaScript library (modified to respond to touches) such as OpenLayers (this is the approach taken for IOL.js) or the ArcGIS Server JavaScript API (like what is shown there).
I went instead with RouteMe, which is a native Objective-C library to display slippy maps on the iPhone. It works very well with OpenStreetMap and is being used in the GPS Mission client for the iPhone (see Make article). The main RouteMe library has many features, like Proj4 integration, marker overlays or multiple layers. For my purpose, I actually adapted a subproject currently in the SVN trunk called freemap-iphone (to display FreeMap tiles) since it looked simpler and easier to adapt to get something quickly. To make it event simpler, I actually dropped the tile rendrering completely : The map viewier in AGS Touch has a load-a-complete-image-for-the-extent kind of scheme, although I intend to allow tiles as well in the future.