We’ve just released version 0.4.0 of the MapBox iOS SDK, a major update to our open source alternative to Apple’s MapKit for iPhone and iPad applications. We’ve made big improvements to the install process, the documentation, and of course the code-level features and functionality, and I’d like to take a moment to discuss all three in this post.

Easier install process

Aside from continuing to provide a prebuilt binary as mentioned in our last major release, we are happy to announce that the SDK is also now available on CocoaPods. This system, designed to make it easier to manage required libraries and their dependencies when building apps, makes it incredibly simple to include MapBox in your app:

  1. Add a Podfile to your app containing the following:

     platform :ios, '5.0'
      pod 'MapBox'
  2. Run pod install in the Terminal.
  3. You’re done!

CocoaPods takes care of managing the dependent libraries, building the entire SDK from source, and installing documentation for the SDK into Xcode. Which brings me to…

Improved documentation

Piggybacking on Tom’s overview last week of our improved developer documentation for all of our libraries, we’re also releasing full iOS SDK documentation built right into Xcode. While you can always browse the API documentation on the web, you can now also subscribe to an Atom feed of the reference library, keeping things up to date and available for offline use locally.

Available contextually when coding, this documentation fits right in with all of Apple’s Foundation and UIKit reference, allowing in-place hinting when typing out classes and methods. The name, type, and other details about all variables are suggested in the IDE, making it much easier to add custom mapping functionality to your app.

New features and functionality

We’ve been hard at work on new features, improved performance, and fixes and tweaks to the SDK as well. Here’s a list with the major changes since version 0.3.0:

  • Improved the performance of network tile fetching and drawing.
  • Added retina support for MapBox markers.
  • Added the ability to reload individual composited tile sources.
  • The map view background now behaves more like MapKit when loading tiles.
  • Added a single, unified header file for easier project inclusion.
  • The map view is no longer recreated on tile source reordering or hiding.
  • Improvements to map rotation when tracking user compass heading and when rotating the application orientation.
  • Annotations are now ordered in the third dimension according to relative screen position, including during map rotation.
  • Improved the map view delegate protocol to indicate direct user actions that change the map.
  • Reduced the amount of code necessary at map view initialization in order to behave more like MapKit.
  • Added an option to disable compass heading calibration display.
  • Map view delegate can now be set graphically in a XIB.
  • Added the ability to interact with the user location annotation.
  • Stability improvements when applications lose and regain location services permissions.
  • Improved ability to debug UTFGrid interactivity in Xcode.

As always, we’d love your feedback on our install processes, documentation, or improvements to and plans for the SDK. You can use the support forum for questions on getting setup, the issue tracker for reporting problems or requesting features, or contact me on Twitter at @incanus77.