Cryptography in Colors

A math-light explanation of one of the core technologies of the internet: public key cryptography. We’ll use visual aides and metaphors from Brit Cruise’s Art of the Problem video series on YouTube to explore this topic in-depth. As software developers we rely on some truly amazing computer science concepts to do our day-to-day work, and oftentimes we […]

Read More

john-robert-marasigan-238147 image of 2 silhouettes walking on a blue ceiling

Overlapping Fragments with VideoViews

Recently, in a client project, I ran into an issue with VideoViews overlapping each other, even though they were part of different Fragments. As is the case with most Views, when adding a Fragment on top of another, the top Fragment will have its Views drawn on top of the bottom Fragment. This however, is […]

Read More

image from Unsplash.com by Ludde Lorentz, pictures a downward view of a winding staircase

Wrapping a Legacy Library in Rx

Using an AWS S3 Upload as an Example The Rx Universe is vast and by me largely unexplored, so there is an opportunity to learn something new every day. The AWS S3 Android SDK does not support Rx so I decided to Rx-ify it. In this example we will add a call uploading a file […]

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

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

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