Hi, I'm Craig Will.

I do design and development for tablet and mobile phone applications, mostly iPads and iPhones.

See some of my papers below on both iOS programming and usability design for tablets:

Understanding Optional Values in Swift. This paper describes how optional values are used to increase safety in Swift. The paper covers optionals basics, unwrapping, optional binding, implicitly unwrapped optionals, optional chaining, and multiple optional binding in Swift 1.2. PDF Version (10 pages)

What's Different About Swift. This paper describes in detail what is different about Apple's new programming language for iOS and Mac. It also discusses the claims made about Swift and assesses whether they are true. PDF Version (30 pages)

How to Get High Precision on a Tablet with a Drawing-Like App. This paper analyzes why drawing with a finger on a touchscreen is less precise than using a mouse on a PC. A method for drawing with a finger with high precision is suggested based on a virtual touch pad, and the application of the method is described for an app that draws maps for a tourism guide app. PDF Version (7 pages)

Understanding Blocks in iOS. This paper provides a description of what blocks are, how to use them, how to create methods using blocks as parameters, how to avoid retain cycles with blocks, and how blocks are affecting the design of new iOS APIs. PDF Version (15 pages)

Engagement Styles: Beyond "Lean Forward" and "Lean Back". This paper challenges the idea, seen often today, that the tablet is necessarily a "lean forward" device, or that such an engagement style, as I call it, is necessarily linked to a particular device except by habit. This was published in March 2012 on the online design magazine Johnny Holland.

Understanding Delegation in iOS. Delegation is a sometimes difficult programming concept for those learning iOS and Objective-C. This paper introduces delegation, shows how it is used in a diversity of cases, describes how to create custom protocols and delegate methods, describes how to do the same thing with blocks, and discusses the difference between delegation and blocks. PDF Version (21 pages)

Here's a fun cartoon animation that shows a flying squirrel gliding and then landing on a tree. It's also very realistic--it's based on a real video of a flying squirrel coming in for a landing.
Flying Squirrel animation.