Category: iOS

KVO and Data Binding in iOS Made Simple

It is said that All problems in computer science can be solved by another level of indirection. -David Wheeler The same is often said about levels of abstraction. But with abstraction comes the problem of how the different layers interact with each other. They are inherently linked, but how do changes at one layer affect […]

Read More

Firebase: The Good, Bad, and the Ugly

As part of our work as software developers at Raizlabs, we are constantly evaluating the latest development tools used around the industry. It is always fun to see what other people are working on, and sometimes we find a tool that changes how our entire company works. Unfortunately, that’s not the case with Firebase, but it is a […]

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

Protocol Extensions in Swift 2.0

At this year’s WWDC, Swift 2.0 featured prominently. The announcement of Apple’s plans to make Swift open source grabbed plenty of attention, but the most exciting change to the language itself has to be protocol extensions. What are Protocol Extensions? In Objective-C (and in Swift prior to 2.0) protocols contain only method and property declarations. […]

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

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

SIGTRAP: Decoding A Cryptic Objective-C + Swift Crash

In 2015, Raizlabs switched over to Swift for all iOS development. The move has been rewarding; Swift’s commitment to type safety and optional handling decreased our overall defect and crash rates (and increased developer happiness.) While this increased safety is awesome for Swift-only apps, it can introduce some hiccups in legacy Objective-C + Swift hybrid […]

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

Introducing RIGImageGallery

RIGImageGallery is a component from the Raizlabs Interface Guidelines, which is a set of UI components that offer sensible defaults to help a project get off the ground quickly and feel native to the platform, and with easy-to-use customization options. RIGImageGallery is designed to display a gallery of images with the expected behaviors established by […]

Read More