Mike Ash has been programming for Apple platforms for over two decades and for Mac OS X since the Public Beta. He is the author of the bi-weekly Friday Q&A blog series on deep technical topics related to Mac and iOS programming, as well as the compilation book The Complete Friday Q&A: Volume I. In between abusing the Objective-C runtime, he flies his glider over the beautiful Shenandoah Valley. When not flying, he holds down a day job at Plausible Labs. Mike's blog can be found at http://mikeash.com/pyblog.
Automatic Reference Counting is Apple's latest addition to Objective-C and promises to greatly reduce programmer workload and the potential for error by automating memory management. ARC represents a middle ground between manual memory management and fully automatic garbage collection, and aims to help out programmers at minimal cost to battery life and performance. This session will discuss how ARC fits into the big picture of memory management and garbage collection, and will present lots of practical information on how to best take advantage of ARC when writing apps.
Take a tour of the Objective-C runtime. You know it’s there, you know it’s important, but you may not know too much else about it. We’ll take a comprehensive look at the many runtime APIs available and how to use them, and wrap up with a play-by-play walkthough of exactly how objc_msgSend does its job.
There are two kinds of developers: those who read the documentation, and those who ask for help from those who read the documentation. Become part of the first group by learning to get inside the head of a tech writer and understand what the documentation truly means, not just what it says. Learn the scary deficiencies of Apple's documentation and how to overcome them. Hear war stories of overcoming great difficulty with nothing but the manual. Discover the instructions within.
Let's get down to bits and bytes! Abstraction is great, but sometimes it's useful to dig down. In this session, we'll explore exactly how Swift lays out data in memory, including both your own variables and Swift's internal data structures. We'll build a program to recursively scan memory at runtime to dump out everything we want to know, then walk through its results and what they mean, and compare and contrast with how C and C++ store their data.
Text and string processing is a subject that looks easy at first, but becomes tremendously complicated the more you look into it. Unicode is the modern standard for computer text processing, and it's full of complexity. In this talk, we'll take a deep look at Unicode's history, design, and structure. You'll learn about code points, code units, combining characters, normalization, emoji, UTF-8, UTF-16, and UTF-32. With this foundation in place, we'll bring it all back to practical applications by seeing how it fits in with Swift's powerful but sometimes complicated String API.
The Objective-C runtime is at the heart of the language, and is still heavily involved in Swift. We'll take a look at exactly what the Objective-C runtime is, how it works, how it ties into Swift, and what you can do with it. We'll finish up with an instruction-by-instruction walkthrough of the objc_msgSend function that drives every square bracket expression you write.