Coding Productivity in a World of Distractions

Software development takes focus. Distractions can derail productivity. Interruptions come from every direction and are hard to avoid. In my time at Raizlabs, I’ve come up with a few techniques that help me hit my commitments and still fulfill my responsibilities of being a good teammate. Getting In/Out of the Zone Being “in the zone” is a […]

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

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

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

Cleaner Credit Card Detection in Swift

When developing in Swift, I will often find myself wondering, “is there a better way to express this?” More often than not, there is a Swift language feature that allows for clearer expression. I encountered this recently when working on credit card type detection and validation. Rather than making your users enter their card number […]

Read More

A table showing a summary of the interactions between reference types and modifiers and their effect on Swift method dispatch.

Method Dispatch in Swift

Method Dispatch is how a program selects which instructions to execute when invoking a method. It’s something that happens every time a method is called, and not something that you tend to think a lot about. Knowing how method dispatch works is vital when writing performant code, and can illuminate some of the confusing behavior […]

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

Avoiding N+1 Queries with Rails Virtual Attributes

Virtual attributes in Rails can be useful for eliminating N+1 queries, which often lead to slower requests and increase the need for premature scaling. What Are N+1 Queries? N+1 queries can occur whenever we have records with has_many associations that we lazy load in our application. When loading a set of records and then loading each […]

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