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

Update: on October 3, 2017, the Firebase suite added Firestore, a new database service to go alongside their existing Realtime Database. While Firestore does not outperform the Realtime Database in every scenario, it definitely addresses some of the issues listed below – mainly, the ability to perform complex queries and paginate query results. This post […]

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

AWS S3 setup with Django-storages and Boto

We use many technologies on the Web & backend team here at Raizlabs. Like most projects that involve a user-facing website, we have static files and assets that get served with the page. In cases where Django (and associated libraries) are the basis for the web portion of the project, we like to ensure that […]

Read More

Prepping for the PM Interview

Being a Product Manager has a certain set of challenges, but getting a job as one is a whole other ballgame. You need to pick the right positions to apply for, perform well during the interview process, and leave a lasting positive impression. I’ve cobbled together a collection of information that I frequently share with […]

Read More

Preparing Your iOS App for Extensions

iOS 10 and watchOS 3 are bringing a number of exciting new system extension points to developers. From Siri to Messages, the number of ways an app can integrate with the system is ever increasing. These new integrations, as well as the large number of existing integrations, typically come in the form of app extensions. […]

Read More