Twitter recently updated its iOS app with a really cool startup animation that transitions from the Default.png to the timeline view. The animation uses the Twitter bird as a window into the timeline view, and then zooms it in. Here’s a demo:

Earlier this week Ole Begemann wrote a really great tutorial on how UIScrollViews work, and to explain it effectively, he even created a really simple scroll view, written from scratch.

The setup was quite simple: Use a UIPanGestureRecognizer, and change the boundsorigin in response to translation of the pan gesture.

Extending Ole’s custom scroll view to incorporate UIScrollView’s inertial scrolling seemed like a natural extension, and with Facebook’s recent release of Pop, I thought it writing a decelerating custom scroll view would be an interesting weekend project.

Facebook today open sourced its highly-anticipated animation framework called Pop that powers the animations in the Paper for iOS app.

Pop’s methods for defining animations resemble Apple’s Core Animation API, so it should be quite easy to pick up if you’ve worked with CoreAnimation before. Even if you haven’t, writing a basic animation with Pop is quite easy.

Xcode got updated to version 5.1.1 today. Release notes say there are a lot of bug and crash fixes. Hoping Xcode crashes lesser with this update.

There are a lot of Xcode plugins to augment the IDE with additional features, conveniences etc., but it is a pain to discover and install such plugins. Alcatraz is a really great package manager that makes it a breeze to install Xcode plugins. Here’s how it looks:

In Alcatraz, you’ll find plugins, color schemes and templates for code fragments. You can install it by visiting alcatraz.io.

Here are some of the best Xcode plugins available in Alcatraz to boost your productivity:

I’m slightly familiar with key value coding, but never really used it in any project. But I think I’ve found a good use for KVC, which I didn’t know about:

Calling valueForKey on a collections like NSArray or NSSet calls valueForKey on each member of the array or set.

What’s the use of this, you ask? Read on.

An example use case from our Dribbble app Design Shots — I have a User object and a Comment object. Each comment has a user property, and I have an array of such comments.

To get all the users who’ve commented, I’d normally have to do this:

NSMutableArray *users = [NSMutableArray array];
for (Comment *comment in self.comments) {
    [users addObject:comment.user];
}

But with KVC, I can do this in just one line:

NSArray *users = [self.comments valueForKey:@"user”];

Internally, valueForKey is called on each comment with the @“user” key, which returns a User object. These objects are then returned as an array in the users variable.

Have any feedback about this topic? I’m @r0unak on Twitter

One of the main reasons why Reveal is so useful is that it lets you see UIViews objects that are not visible on the screen. Xcode 5 added support for previewing UIImage objects, and Apple has extended QuickLook preview to UIViews as well, with Xcode 5.1.

To see this in action, just fire up any project, put a breakpoint at any line that has a UIView, and click on the eye icon, either in the debugger after clicking on a variable, or by hovering over a UIView object in your editor:

And this is what you see when you click:

This is going to be really great for one of those debugging sessions where the UIView exists, but it isn’t partially or fully visible on the screen.

(Screenshot of Design Shots, a Dribbble iPhone app you should try!)

Have any feedback about this topic? I’m @r0unak on Twitter

Ever wanted to have your own custom loader view instead of iOS’ default spinning circle?

If what you want isn’t very complicated, you could probably achieve it very easily using UIImageView's animationImages property. The catch is that your animation should be easily expressible with images. If so, you do:

Update: We’ve released Design Shots v2.0. You can see what’s new here.

So me and my friend shipped this app called Design Shots for scrolling through great designs on Dribbble. Total development time was 2 days, so it isn’t very feature rich, but we hope to make it more awesome over time:

Download it here.

Working on a project with multiple people and discovered a glaring bug? There’s an easy way to see who was responsible for committing it using Xcode’s advanced source control features.

Just right click on the line and click on “Show Blame for Line”

Once you click that, you should see the person who committed the line along with the commit message for further context:

From here you can see the diff between your working copy and the revision when that particular change was committed or see the “blame” for the entire file.

You can access the same view by long clicking the “Version Editor” button at the top-right in Xcode.