Ios
11 Nov 2013
Custom View Controller Transitions in Landscape
iOS 7’s custom transitions are great — until you rotate the device. A breakdown of the landscape bugs, the hacky workarounds that don’t quite hold up, and why we went back to view controller containment.
13 Sep 2013
Announcing Compares, our side-by-side photo sharing app. Built from scratch with a custom backend, onion-skinning camera, and a social layer for sharing before-and-after shots.
12 Sep 2013
How To Support Old iOS SDK’s in Xcode 5
Xcode 5 dropped the iOS 6 SDK, but you can just copy it back in. Here’s where the SDKs live and how to grab them if you already nuked your old Xcode.
2 Jul 2013
Bringing cartoon-style squash and stretch to iOS views, automatically. The layer tracks its own velocity and distorts along the direction of travel — no configuration needed, volume stays constant.
4 Mar 2013
Shipping a kids’ storybook app with rich animation and a custom framework under the hood. Built on top of our Goodnight Safari codebase, with artist-driven XML animation specs and a parent-facing progress dashboard.
30 Jan 2013
SMPageControl, Meet UIAccessibility
Adding VoiceOver support to our UIPageControl replacement — and naming pages too. With per-page names and full accessibility parity, SMPageControl finally earns its 1.0 and lands on CocoaPods.
5 Nov 2012
Mistakes Were Made: Audio and ARC
ARC silently kills your AVAudioPlayer mid-playback. Here’s why and how to fix it. Spoiler: make it an ivar, and maybe file a radar while you’re at it.
15 Oct 2012
SMPageControl: UIPageControl’s Fancy One-Upping Cousin
A drop-in UIPageControl replacement with custom dots, images, and per-page indicators. Swap class names, tweak diameters and margins, or go full Dribbble with per-page custom indicator images.
27 Aug 2012
Premature Completion: An Embarrassing Problem
Core Animation runs your completion block early if it doesn’t find any animations. Rude. Includes a sample project to poke at the behavior yourself and avoid hours of confused debugging.
16 Mar 2012
A CALayer subclass that fakes realistic lighting and shadows during Core Animation. Uses Lambert illumination math and a custom animatable property to keep shading correct mid-transform, specular highlights included.
9 Jan 2012
A drag-and-drop tool for getting simulator builds to non-developers. It even supports a custom URL scheme so distributing a new build is as simple as sending someone a link.
12 Dec 2011
A simple wrapper to cancel delayed blocks, because GCD won’t let you. Includes the open-source code on GitHub and a look under the hood at the block-juggling trick that makes it work.
5 Oct 2011
Mistakes Were Made: Integral Bounds
Non-integral CALayer bounds don’t just look blurry — they actually chop off pixels. A forensic look at CATextLayer backing stores, with screenshots and sample code to prove it.
21 Sep 2011
All in the Timing: Keeping Track of Time Passed on iOS
Why your freemium game’s clock is so easy to cheat, and what you can (maybe) do about it. A deep dive into absolute vs. relative time on iOS, and a hybrid server-based approach to keep cheaters honest.