by Collin Ruffenach

iOS, Open Source, and Simple


Open source software is a part of our DNA here at Simple. Our product is realized because we stand on the shoulders of giants who came before us. As an organization we believe it’s vital to not just be a consumer of the open source communities’ work, but also to be active contributors to it. In our iOS app we use AFNetworking and were able to help develop the original SSL Pinning Feature. Over the last year we also started using CocoaPods in our build process. It was the perfect mechanism to release some of the reusable components we’ve developed in house.

In the spirit of continuing to give back to the open source community, I want to share four projects that came out of our work on Simple 2.0 for iOS.


Simple 2.0 features a brand new interface for notifications. We needed inline notifications that could display images, titles, subtitles, and have a variety of styling options. Ideally, these notifications would be accessible from anywhere within the codebase. From the seed of another open source project came CRToast.

Animated gif of Simple's header

CRToast allows iOS application developers to present timed or persistent notifications in their applications with very little effort. They can be presented with all sorts of animations and timing options, and also can be configured to react to swipe and tap gestures. The project has already been used by lots of people and has had some great contributions on GitHub. We’re really excited to keep on developing it.


Calendar interfaces for iOS apps are an unsolved problem. Calendar math is hard and UIKit’s default date selector isn’t very stylish, not to mention expensive. We use calendars for several of our features here at Simple and couldn’t find an existing one that fit our needs. As a result, Michael DiStefano, one of our iOS developers, built a date-picker interface that he recently released as MDCalendar.

MDCalendar is the set-it-and-forget-it calendar you have been looking for. It has a host of great features to get that clunky date picker view in your app replaced with something you can customize to fit your style. Folks on GitHub have already started helping us out by adding features to it and we’re thrilled to bring a new solution to this difficult problem.

Screenshot of Simple's calendar


The Simple iOS app uses Apple’s Core Data technology for its database. In the 1.x iterations of the app we interacted with Core Data exclusively on the main thread. As we built Simple 2.0 for iOS we really wanted to develop some technology that would allow us to move these sometimes costly operations off the main thread. This change would allow the interface to remain snappy, even while importing all of your account data.

Out of this desire I created CRLoom. CRLoom is a thin layer on Core Data that provides a template for phrasing your model construction. With this template in place for your models, you can use what is essentially boilerplate code to spin up a threaded NSManagedObjectImportOperation and ingest as much data as you like while keeping your main thread free to keep those pixels moving.


I love our logo here at Simple. That’s why I’m super happy to release one of the first pieces of code I wrote when I started here at Simple in December 2011. During my first week I decided to implement the algorithmic generation of our logo and wrap it up as an iOS UI component. After a lot more tinkering through the years the final product has taken form as LogoFunhouse.

LogoFunhouse comes preset to show the Simple logo, but the shape it presents is a dynamic product of several constants. These constants can be tweaked to create all sorts of shapes. As another enhancement, a custom UIView called SFSimpleLogoAnimationView has been provided with the ability to style the outline of the shape you’ve generated. You can also set some values to move the tail’s start and end around and create the effect of the logo chasing its tail.

As an extra exercise I implemented the project in both Objective-C and Swift. If geometry, drawing, and animations are things you’re into, you should check it out!

Animated gif of the Simple logo


Simple 2.0 represents a new foundation for the mobile team to build upon here at Simple. We are so excited to keep on delivering a best-in-class mobile banking experience for our customers. As we take on new challenges and build new experiences, we look forward to continuing to be active members in the open source community.

Disclaimer: Hey! Welcome to our disclaimer. Here’s what you need to know to safely consume this blog post: Any outbound links in this post will take you away from, to external sites in the wilds of the internet; neither Simple or our partner bank, BBVA USA, endorse any linked-to websites; and we didn’t pay/barter with/bribe anyone to appear in this post. And as much as we wish we could control the cost of things, any prices in this article are just estimates. Actual prices are up to retailers, manufacturers, and other people who’ve been granted magical powers over digits and dollar signs.

Important! This account is for your personal use only

An increasing number of customers are being targeted by fraud scams. Before you apply, review these guidelines to help prevent you from being involved in fraudulent activity.

Do not open an account on behalf of someone else
If anyone asks you to open a Simple Account to receive funds, it is an attempt at fraud. Common fraud attempts include requesting that you open an account to receive a gift or bonus offer, obtain a job or job training, or help someone else receive funds (such as unemployment benefits).

Do not share your login or account information with anyone
Neither Simple nor any other legitimate institution will ever ask for your account information. If any third party requests your Simple Account login information, it is an attempt at fraud. Sharing your account information with another person or allowing someone else to use your account to receive funds is a violation of the Simple Deposit Account Agreement terms and conditions and can expose you to fraud.

Actions we may take if fraud is suspected

We take fraud and security very seriously at Simple, and take rapid action in the instance of suspected fraud attempts.

We may freeze and close accounts
We may freeze and close accounts if fraudulent activity is suspected, including the following circumstances:

We will report fraud attempts
We are responsible for reporting fraud attempts to authorities, including attempted unemployment fraud. There are state and federal penalties for unemployment insurance fraud (including potential fines and incarceration). If you suspect you are a victim of unemployment fraud, contact the appropriate state fraud hotline listed here.

I acknowledge that I have read this notice Continue Application