I've worked on a lot of projects. Here are the more interesting ones.

Apps

Bonsai Slice

Download for Android and iOS

Working with my teammates at Playground Theory, we developed Bonsai Slice for Android and iOS. Fun and easy to play, challenging to master. Slice objects as fast as you can, but watch out for bombs.

bonsai slice screenshot 1 bonsai slice screenshot 2 bonsai slice screenshot 3 bonsai slice screenshot 4 bonsai slice screenshot 5 bonsai slice screenshot 6 bonsai slice screenshot 7 bonsai slice screenshot 8

Tech used:
  • Unity3D (C#)
  • Android SDK (Java)
  • iOS SDK (Obj-C)
  • Go (server)
Prayer Book

Download for Android and iOS
Follow Prayer Book on Google+ for news and updates.

Prayer Book was the first mobile app I wrote, and it was for the original iPhone. Since then, I've kept it updated with text corrections, new features, more translations and most recently an Android version. It contains prayers from the Writings of the Bahá'í Faith in English, Spanish, French, Persian, Dutch, Czech and Slovak. Organized into categories, you can find just the right prayer for any occassion, wherever you are.

I've released both of the apps under the GPLv3 license, so anybody can view the source, modify, submit features or bug fixes. Along with the apps, I wrote a helper program to assist me in compiling the prayers into a common database format.

You can find the code on GitHub:

prayer book android screenshot 2 prayer book android screenshot 1 prayer book android screenshot 3 prayer book ios screenshot 1 prayer book ios screenshot 2 prayer book ios screenshot 3 prayer book ios screenshot 4

Tech used:
  • Android SDK (Java)
  • iOS SDK (Obj-C)
Jabeh

Download for iOS and visit the website

Jabeh was the first mobile game I developed. After a few months of design and development, I released the game in January of 2009 to nothing but rave reviews. Jabeh is the most successful Shinro game in the App Store. Its simple and intuitive interface makes playing it an effortless and enjoyable experience, and the original art and soundtrack add a level of appear that's unrivaled by any other.

As with all games, eventually the revenue from sales dried up so I couldn't justify updating it anymore. With the release of iOS 8, a minor bug appeared, but updating the app requires accomodating the new iPhone screen sizes, so I've chosen to make the app free instead.

jabeh screenshot 1 jabeh screenshot 2 jabeh screenshot 3 jabeh screenshot 4 jabeh screenshot 5

Tech used:
  • iOS SDK (Obj-C)

Libraries

Appirater (iOS)

Clone Appirater from GitHub

From the original announcement on my blog:

Like most developers, I’m not thrilled with the way the App Store presents my apps. There are several problems, but in particular, I really don’t like the user review system. It’s biased towards bad reviews, and that ends up hurting sales (there are odd exceptions to this). The only time a user is reminded or asked to rate an app is when you delete it, and you probably don’t care for the app if you’re deleting it. In comparison to the unhappy user, the satisfied user rarely takes the time to review your app. Which leaves you with crummy reviews from uninformed users hurting sales of your app.

Appirater is a library iOS developers can use to remind users to rate the app. With a few lines of code, Appirater enables developers to ask only their most active and satisfied users to rate their app, leading to 4 and 5 star ratings.

Since its release (MIT/X11 license), other developers have contributed translations for Appirater bringing the total number of languages supported to 30+. Appirater has seen widespread adoption across all categories of apps, and it's likely that many of the apps on your iOS device use Appirater.

To start using it in your app, follow the instructions in the project's README.

apns (Go) NO LONGER MAINTAINED

apns on GitHub

While working on a service that needed to deliver push notifications to iOS devices, I was looking for a simple Go package to connect to the Apple Push Notification service and deliver notifications to users. I didn't find anything that met my requirments, so I wrote my own package to handle it. It's very simple to use and is available under the Apache license.

For usage info, check out the apns README.

APTokenField (iOS)

Clone APTokenField from GitHub

From the original announcement on my blog:

Working on Line2, I wanted to emulate the message composition screen Apple uses in iMessage and in the MFMailComposeViewController class. Specifically, I wanted to emulate the ‘To:’ field so I could use it in the SMS message composition screen in Line2. At the time, the only option that met the need was TTPickerTextField (part of Three20). I finally bit the bullet and integrated it into Line2, but it had some drawbacks, the biggest being that you have to integrate all of Three20 to use it.

After awhile, I got an itch to remove my dependency on Three20, so I wrote APTokenField. A lightweight, stand-alone implementation of the TTPickerTextField functionality.

Since iOS 7 came out, the library isn't as useful because of the new flat UI of iOS.