I made a lot of progress on I Can Has Cheezburger 2.0 this weekend, although it’s still far from finished. I was having too much trouble with Three20’s TTPhotoView, in particular extremely slow loading since the ICHC sites don’t have thumbnail sized images, which it uses to load a low-resolution preview, and the inability to include videos in the photo stream.
Instead, I’m now loading images asynchronously using code similar to this (the current version loads images synchronously using PerformSelectorInBackground, which is actually more complex).
I’m still using Three20 for the home screen and launcher view, which even lets you rearrange items.
I now recognize movies that are unplayable (which includes almost all videos at ICanHasCheezburger.com, since Viddler movies need to be specifically download enabled to be playable on an iPhone). For those movies, I’m now displaying a notice rather than just loading the page which will tell you Flash must be installed.
There’s still a lot more that needs to be done before I can release it:
- I still haven’t implemented pinch, zoom, and swipe gestures (which I need get working better than they do in the current version)
- The LOL editor isn’t implemented.
- No saving or sharing LOLs.
I still need to remember the current item for each site.
This will be a free upgrade for all users. I’m thinking of adding in-app purchasing to the free version to allow users to remove ads & unlock other pro features (logging into ICHC and saving favorites) instead of purchasing a separate version. However, I will need to support both versions so owners of the pro version won’t have to download the free version & pay for pro features.
UPDATE: I’m now remembering the current item for each site. I’m doing it in a much better way than I do in the current version. Currently I save a fixed array of offsets which correspond to each site in the same order they appear in the selector. In 2.0 I’m using the site name as the preferences key, which will let me add or rearrange sites without affecting the settings for each site.