Float Remapping Header 2

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 is 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

IB Free In Practice Logo

IB Free in Practice 1: Managing a Modal

This series of blog posts will provide examples of how we develop Swift applications without IB and demonstrate some general strategies for app architecture. For this first post, I’m going to cover presenting and dismissing a modal view controller over a home view controller. Even though the example is relatively simple, I am going to […]

Read More

computer code and notebooks

Localized Pluralization with Stringsdict

It’s harder to create user-facing strings that contain numbers than it should be. This post should make it easier, with tips on localization and pluralization. This post is not about all the good reasons to do localization (l10n) and internationalization (i18n). For that, I recommend the following excellent posts: Mattt Thompson on NSHipster Josh Johnson on Objective […]

Read More

computer with typing image

XCTest and Optional Unwrapping

XCTest is the default test harness on iOS and Apple’s other platforms. It provides support for organizing test cases and asserting expectations in your application code, and reporting the status of those expectations. It’s not as fancy as some of the BDD frameworks like Quick and Cedar, but it has gotten much better than it used to be, and is my […]

Read More

A desk with a computer, pen, and other tools.

Tools We Love – iOS and Android

This time of year is often associated with greeting cards and chocolate, but the team at Raizlabs is showing the love by opting out of flowers and into sharing our favorite tools. We love developing impactful products that change lives. Our favorite tools help us spend more time writing code, and less time in the […]

Read More

ai_assistant

Tutorial: Build an AI Assistant with API.ai and Amazon Lambda

Tech giants are betting big on conversational interfaces; Facebook acquired wit.ai, Google acquired api.ai, and Amazon announced Lex. These services all make it easy to parse user intention from natural language. In this tutorial, we’ll demonstrate how to connect a conversational interface with a third-party API. These steps will enable you to build rich experiences for the Google […]

Read More

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