Justin Miller is the mobile lead at Mapbox. He is behind the Mapbox iOS tools like the SDK and Mapbox GL, OS X platform work on TileMill and Mapbox Studio, and overall company mobile strategy. He has been developing in Cocoa since 2004 and formerly provided freelance programming services on the Mac and iOS, as well as having past lives as a web developer and systems administrator. He has been contributing to open source code since the late 90s. Outside of programming, Justin enjoys travel, wildlife photography, and life in sunny Portland.
You may or may not have experience working with Apple's MapKit, but have you ever considered what goes into building it from scratch? I have, because I've helped do just that. This session will go over the high-level components of MapKit -- things like the map view, annotations, annotation views, and user location services -- and talk about what they do, but also how they can be -- and have been -- duplicated. We will compare and contrast with the MapBox iOS SDK, which is a completely open source implementation of MapKit, not a subclass derivative, and see all the complex bits and bobs that go into it, including tile-based layers, annotation recycling, complex interaction delegate callbacks, map tile cache management, and scalable vector drawing, to name a few.
Guys, it's Justin Miller. We'll talk about Maps.
Apple's MapKit has been around since iOS 3 and has steadily been improving through each iOS release. It provides an easy-to-use API for displaying map views, adding points and polygons atop them, and tying into other APIs like Core Location. We'll talk about basic use with things like visuals as well as under-the-hood APIs like geocoding, but also where to turn when you hit edge cases like region interactivity, offline use, and stylistic customizations.
The session will focus on a number of examples of things Swift is particularly good at or designed for, looking at specific problems you might encounter in app development, and contrasting Objective-C and Swift approaches for tackling them. We’ll peel back some of the jargon for folks who aren’t necessarily programming language enthusiasts but rather are looking for ways to apply, or even justify, use of Swift in active projects. From generics to lazy loading to decisions between reference and value types, come prepared to take away tips that you can use in solving the problems you face every day as a Cocoa programmer.