I Can Has Cheezburger ad free 1.5.1 (actually 1.5.2, which I replaced while 1.5.1 was still in review) is now ready for sale. The free version, which I submitted at the same time, is still in review, although the old version 1.5 is available again.

You can download ICHC (ad-free) here, or if you prefer the free version, download it here.

New features in this version:

  • Shake to shuffle
  • Movies show web page immediately instead of click to play graphic
  • Action sheet no longer shows ‘save to photos’ for movies
  • Can now email images rather than just links in OS 3.0
  • Allows you to log into ICHC (pro version only)
  • Supports movies from Viddler at FAILblog and other sites

Note that not all Viddler movies are playable; the person who created it has to specifically enable downloading for it to work.

ICHC Premium Edition

I’m planning to release a 99¢ ad free version of I Can Has Cheezburger as well as the free ad supported version. I’m debating whether it should also have any pro features not in the free version.

In particular, I’m adding support for the Cheezburger Authentication API, which would allow LOLs submitted by registered users of ICanHasCheezburger.com to be attributed to them rather than being attributed to “dunno source”.

I suspect the ad-supported version will most likely be more profitable than the 99¢ version thanks to the amount of time people spend in the application, so I’m not really too anxious to encourage people to upgrade, but I’m providing that option for people who’d rather not have the ads.

I Can Has Version 1.5 Coming Soon

I Can Has Cheezburger 1.5 is now feature complete, with only a few cosmetic issues to fix before I submit it in the next few days.

New in this version:

  • Use Cheezburger API to submit LOLs to ICanHasCheezburger.com
  • Fixed non-working movies by embdding them in a web page, which can be clicked, rather than opening the URL directly
  • It now remembers current item for all sites rather than the only last site opened.
  • Rewrote XML code to use NSXMLParser rather than a document-based browser. I was already using NSXMLParser for the Cheezburger API result handling.
  • Massive code cleanup.
  • Images are cached for faster viewing. If we’re low on memory, cached images will be released.
  • Added the new site, Once Upon A Win
  • The app now shows ads from Collider. They’re hidden when the toolbar is hidden, though.

I can has an API

I’ve finally had a chance to get back to work on I Can Has Cheezburger and I’ve now implemented the Cheezburger API for submitting LOLs to the site. Here is the very first LOL created from the app.

I’m still not satisfied with the submission window, which I think looks too cluttered. I haven’t decided where to add a login button, so it currently sends all LOLs anonymously.

I’ve also added a work-around for the problem with playing videos for this update, which I’ll most likely submit in the next week. I’ve kept the old user interface for this version rather than the navigation-based interface I’m working on.

Can Not Has Cheezburger

Site changes at I Can Has Cheezburger and the related sites have affected the feeds I use in the iPhone application. We’re all working on a fix, which hopefully will be up soon.

UPDATE: It’s working again

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

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