Justin began the mobile efforts at Mapbox in 2010 and today helps lead development of the iOS and Android SDKs, works on experimental prototyping, and assists with teambuilding efforts. He’s been working in Apple's programming environments for fifteen years, programming professionally for twenty, and has a background in systems administration, web development, and building startups. He ran a solo consultancy for five years during the early days of the app stores, creating apps for clients and for himself. In his free time, Justin enjoys world travel, photography, hiking, and baking pies.
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.
The animation foundations in iOS are well-designed, intuitive, and powerful. What can we learn about how they are built, the capabilities that they give, and the assumptions that they are built upon, that we can bring to our own software design? Whether we are building apps or SDKs or doing frontend or backend, good framework and API design is universal. Let's learn together from one of the best examples.