I Can Has Cheezburger App Redesign

I have been working on implementing the new Cheezburger API in the ICHC app, but I’m starting to become unhappy with the user interface. In particular, the bottom toolbar is too cluttered and I don’t really like the action sheet I use for creating LOLs.

I’ve started redesigning it to use a navigation based user interface, where the top level lists the sites, and each site opens a view similar to the current app. Like the current version, you’ll be able to swipe back & forth or use arrow buttons to switch images and tap to toggle the toolbars on or off. When the application starts up, it will go directly to the last site viewed rather than the top level. Unlike the current version, it will save the last image viewed for each site.

Before I commit to this, I’d like some feedback.

This is the top level view, where you choose the site:

iPhone Simulator-3.jpg

This is the image view (still not complete):

iPhone Simulator-2.jpg

free polls Which user interface do you prefer?
Current – 1 screen & Action sheets
Navigation Controller


iPhone vs. Original Macintosh

Comparing the specs of an iPhone to the original Macintosh shows just how far we’ve come in the last 25 years.

Mac 128 iPhone
CPU Speed 8 MHz 412 MHz
Storage 128k RAM, 400k floppy up to 16GB RAM
Display 512×348 B&W CRT 320×480 color LCD
Networking Internet? what’s that Wi-Fi, 3G

I Can Has an update

I submitted I Can Has Cheezburger 1.1.1 to the app store. It has two fixes and no new features. I’ve changed the swipe action to work the way it did in the original version: I only detect horizontal movement.

In version 1.1 I also checked that vertical motion is less than a minimum amount. As a side effect, it prevented a swipe from being recognized if the swipe is done at an angle, and I got a lot of reports that swiping no longer worked.

I also fixed another bug which could cause the picture to be positioned and sized incorrectly if you rotate the screen while zoomed in. I now reset to normal size before rotating.

I Can Has swipe action

I’ve had several reports that swiping no longer works in I Can Has Cheezburger 1.1. A small part of it is that when the image is zoomed, it will not let you swipe to switch images since that same gesture will reposition the enlarged image. Double-tapping to un-zoom will once again let you switch images by swiping.

The real reason is because of how I was detecting a swipe gesture.

In the original version I simply tested for a movement larger than the minimum swipe distance (which was 24 pixels).


float deltaX = fabsf(startTouchPosition.x - currentTouchPosition.x);
float deltaY = fabsf(startTouchPosition.y - currentTouchPosition.y);
// If the swipe tracks correctly.
if (deltaX >= HORIZ_SWIPE_DRAG_MIN)
.... handle swipe action

However, in version 1.1 I also check that the vertical movement is less than the minimum distance.


float deltaX = fabsf(startTouchPosition.x - currentTouchPosition.x);
float deltaY = fabsf(startTouchPosition.y - currentTouchPosition.y);
if (!zoomed && (deltaX >= HORIZ_SWIPE_DRAG_MIN) && (deltaY < = VERT_SWIPE_DRAG_MAX)) .... handle swipe action

I've reverted to the old behavior for the next update, which will support the Cheezburger submission API that isn't ready yet. I may release a small update just for this and a few other tiny fixes rather than wait for the API.

New iPhone

As I blogged a few days ago, my iPhone was unable to make outgoing calls although I could receive calls, even with 5 bars of signal. After restoring, resetting network settings, and making sure the SIM card was properly seated, I made an appointment and brought it into the Apple store today.

After the Genius did some tests and tried restoring the iPhone, he determined it was a hardware problem and gave me a new iPhone.

Getting a new iPhone meant I had to add the device ID and create a new development provisioning profile before I could use it for development in XCode.

Renewing iPhone signing certificates

My iPhone development signing certificate expired yesterday. Thankfully I found that creating a new certificate is quick and painless. Luckily I still have my Certificate Signing Request (CSR).

All you really have to do is upload the CSR. If you don’t have it, you’ll have to create a new one by following the instructions in the certificates tab in ADC’s iPhone center.

After uploading the CSR, you’ll have to approve it by clicking the ‘approve’ button in the certificates tab. In a few minutes, the certificate is ready to download.

iPhone Developer Certificates are expiring

Thanks to Craig Hockenberry for pointing out that iPhone developer & distribution certificates are beginning to expire. I checked my keychain and found that my developer certificate expires tomorrow and my distribution certificate expires on the 25th. I’m not sure if I still have my original certificate signing request (CSR), so I’ll probably have more work to do.

For any other iPhone developers reading this, open Keychain Access, do a search for ‘iPhone’ and note the expiration dates. Don’t be caught by surprise.

iPhone FAIL

Since yesterday I’ve been unable to make calls with my iPhone. As soon as I dial any number, I get CALL ENDED followed immediately by CALL FAILED. I’m able to receive calls and send SMS, though.

I completely restored my iPhone, made sure the time zone & caller ID are correct as suggested in Apple’s support forums, and even reset network settings and the problem still persists. If nothing else works, I’ll probably be taking a trip to the Apple store.

I Can Has an Update

I Can Has Cheezburger 1.1 has been approved and is now available for sale in the app store. I’m now working on the submission API (which is still preliminary) for version 1.2.