Curt Clifton is a software developer with the Omni Group, where he primarily works on OmniFocus for Mac and iOS. Curt came to the Omni Group from Rose-Hulman Institute of Technology, where he was an associate professor of Computer Science and Software Engineering. Curt once procrastinated for three months on his PhD dissertation by scripting OmniOutliner to work as a task management system. Being a bright guy, the irony was not lost on him.
Curt blogs occasionally at curtclifton.net. When not programming or writing, Curt can be found on the roads and trails around Seattle wearing out another pair of running shoes or hiking boots.
Apple’s initial WatchKit SDK is limited and powerful at the same time. Most of the processing for a third-party Watch app happens on a paired iPhone with data sent to and from the watch via Bluetooth Low Energy. This design leads to an API that emphasizes compile-time configuration and uses an interesting proxy-based approach to run-time user interaction. The design also requires most apps to implement some form of data syncing between the Watch app and its host iPhone app.
In this talk I’ll cover the basic architecture of the WatchKit SDK and share the code for an Watch app that uses many of the SDK’s features. I’ll also discuss some options for syncing data with an Watch app.
Functional reactive programming is a much promoted technique for building apps structured around data flow, asynchronous events, and value types. There are several popular frameworks for reactive programming in the Apple ecosystem, including Reactive Cocoa, RxSwift, and Bond. These powerful tools can be intimidating when first trying to learn the concepts. In this talk I'll implement a simple reactive programming library “from scratch”, live coding the interesting bits, and using them in a small demonstration app. The talk is intended for people new to reactive programming and should help demystify the concepts so you can approach one of the more powerful frameworks with confidence.