Author: Zev Eisenberg

How to Script macOS Keyboard Shortcuts

When I set up a new computer, the first thing I do (after installing Dropbox and 1Password, of course) is to run a script that installs my favorite command line tools and configures my shell the way I like it. I also go into System Preferences and twiddle various settings. I’ve done it enough times that […]

Read More

Spicing up xcode

Spicing Up Xcode

At the third Raizlabs Lightning Talks, I ate a Scotch bonnet pepper and presented 13 tips and tricks about Xcode. If you missed the talk, or wanted to know about one of the slides in more detail, here’s a video and a written version of everything I mentioned, plus a few extras. Spicing Up Xcode was inspired by […]

Read More

iOS Typography: Stop Saying “No” to Designers

Update – November 2016 BonMot, the library mentioned in this post, has received a significant update, and the code samples presented here are no longer valid. Check out the blog post introducing BonMot 4, which includes a link to the migration guide. Original Post: At the fourth Raizlabs Lightning Talks, I described how you can stop […]

Read More

RZAssert – iOS Assert Logging

Wrong assumptions are the bane of every programmer’s existence. Oh, you thought that number was always going to be non-zero? Guess again. What’s that? You never expected that conditional to fail? It just did. You expected that Core Data query to always return exactly one item? Why would you assume that? A great way to […]

Read More

Smarter Animated Row Deselection on iOS

It’s always a good idea to give your users context: at a glance, they should be able to figure out where they are, how they got there, and how to get back where they were before. One subtle but important way to give these cues is with animated deselection. If you’d like, download the sample […]

Read More

Styling Localized Strings with BonMot

Update – November 2016 BonMot, the library mentioned in this post, has received a significant update, and the code samples presented here are no longer valid. Check out the blog post introducing BonMot 4, which includes a link to the migration guide. Original Post: Correct use of localized strings is one of those things, like testing, accessibility, […]

Read More

Introducing BonMot 4: Now With Dynamic Type

I wrote BonMot quite by accident. I just wanted to document some typographic tips and tricks that I had learned. NSAttributedString and TextKit are powerful, but they can be impenetrable, and I wanted to shed some light on the situation. However, as I collected my thoughts, I realized that a unified interface for accessing disparate typographic features […]

Read More

Fixing Controls in Scroll Views on iOS

Buttons in scroll views have a subtly broken behavior. In this post, we show you a simple workaround to keep your UI feeling smooth and consistent with the design language of iOS. You can download the sample project for this article if you’d like to try it for yourself. Buttons on iOS change color when […]

Read More

Linear Interpolation and Fading Hairlines

Linear interpolation is a simple method of finding intermediate values between two endpoints. It has numerous applications in computer graphics, where it is known as lerp, but we are going to use a tidy Swift implementation to add some subtle polish to an iOS app. You can download the source code for the example app […]

Read More