Brad is an iOS-focused mobile architect with Y Media Labs. Prior to writing iOS apps he worked on projects involving large-scale behavorial analytics, education, security, haptic 3-D modeling, and medical devices - wherever there were cool problems that someone would pay him to solve, he was there.
When he's not writing software, he might be found making music, or drawing, or exploring the restaurants and museums of the upper Midwest with his wife.
You've seen - and maybe tinkered with - XCUnit. You've heard that automated testing is something you should do. But how do you do it well? How do you keep your tests from becoming a maintenance burden? How do you test asynchronous code? How do you keep outside dependencies like network APIs from making your tests unpredictable? This refocused edition of my Chicago talk will focus on how-to topics that will increase the value of your testing, including: Test-first development, mocking and stubbing, asynchronous testing, and third-party tools that help with the heavy lifting. The goal is to streamline your automated tests and add value to them, while keeping them from becoming a maintenance hassle.
It is assumed for this talk that you know where to find XCUnit, how to write an assertion, and how to hit ?+U to run tests - and that you want to move beyond the obvious into the topics that will make automated testing one of your go-to tools. Code examples in Objective-C and Swift will illustrate the tools and practices covered in the talk.
Even test-driven development veterans sometimes shy away from UI testing, claiming either that it's too difficult or that highly-coupled integration tests can't add value in proportion to their fragility and maintenance effort. This talk will show you how and where to focus your effort - and what pitfalls to avoid - in order to make automated UI testing a valuable practice in your work. The talk will cover basic behavior-driven development principles, how to do UI testing with both XCUnit and third-party tools, how to isolate UI tests from network dependencies, and what aspects of your UI should be tested and what should be left to manual testing or lower-level unit tests.
It is assumed for this talk that you know how to write and run basic (or perhaps advanced) automated unit tests in XCUnit, and that you want to build on that foundation to run automated UI tests that interact with your app as your users would.
Today's mobile apps are rarely just MVC - they're more often MVCN, where the "N" is for the networked service backing your app. It used to be that to have an app backed by a service in the cloud, you either had to teach yourself a web framework like Rails or Django to build your own service, or hire or partner with a web developer to build you an API.
No more! Backend as as Service (BaaS) providers give us a low entry cost solution to the need to store and retrieve data, authenticate users, and even run custom code in the cloud. Come learn about Apple's new BaaS entry, CloudKit, as well as other major players in the field. Different offerings will be compared and contrasted. Working, BaaS-enabled code will be demonstrated and shared.
This is an introductory-level talk for developers investigating their BaaS options.
This talk is all about displaying your collections, and doing it beautifully. With just a little math and ingenuity, you can make UICollectionView jump through all kinds of hoops, and this talk will demonstrate the construction of two collection views (in Swift) that can add eye-catching appeal to your app: a simple table-like view with variable-height cells, and a "roulette wheel" control. As an added bonus, you'll get a preview of iOS 9's UIStackView, which offers a simplified way to lay out a heterogeneous collection of UI elements.
This talk assumes that you know what a UICollectionView is, even if you've never used one, and will cover UICollectionView basics very briefly before diving into the examples. This talk involves some very simple algebra and trigonometry.