Joris Kluivers

I like to build software.

Quartz Composer for iOS

While not nearly completed I decided to publish my implementation of Quartz Composer for iOS. This project intends to provide a rendering & interaction framework for .qtz on your iPhone or iPad. Similar to what the Quartz Composer framework provides on OS X.

Composition rendered in Quartz Composer and iPhone simulator

Animation Easing Functions

Animating things from A to B using linear motion is easy, but boring. Much more interesting and realistic animations are created using different easing curves. Core Animation and UIKit have nice API’s to do this, but when interpolating yourself you’ll have to resort to some math.

A quick search (goog, duck) returns a set of animation curves implemented by Jeff LaMarche. However as I found out some of those functions are incorrect. The comments for that post provide a few corrections, but not for all functions.

For this reason I implemented my own set of interpolation functions.

Require a Call to Super in Overwritten Methods

Learned about a useful LLVM feature recently, which I tweeted about yesterday:

When trying this out for the first time in one of my projects it immediately warned me about a potential bug, where I forgot to call super.

Code for My UIKonf Demos

Earlier this month I was in Berlin to present at the first edition of UIKonf. This turned out to be a really well organized conference with a lot of interesting technical iOS related talks.

The video of my talk on Bluetooth Smart in iOS and Mac apps will be posted online soon. However because the demos in my talk are not easily reproduced from video I published the code for the projects online.

Quartz Composer

This is a call to action for anyone with the ability to file radars. My goal is to send some kind of signal indicating there are still people out there that love Quartz Composer. Which in my opinion is an amazing tool, but unfortunately didn’t receive an update since 2011.

Hidden Shortcuts Through Gestures

As Gruber wrote last year; on iOS the highest priority is obviousness. While gestures are used more often in apps they are the opposite of obviousness. In most iOS software there is a default way of doing things using buttons. Gestures merely act as shortcuts for advanced users, and remain invisible to the regular user.

While I consider myself a power user I was pointed to two for me previously unknown shortcuts in apps I use regularly. Reason enough for a new blog post.

PARStore: A Key-Value Store Created With Syncing in Mind

Last week at NSConf 5 my colleague Charles Parnot presented a 15 minute blitz talk titled Rethinking Syncing. In this talk he details PARStore: a key value store designed to work on top of syncing mechanisms like iCloud and DropBox.

To make syncing as transparent as possible this store’s functionality is kept as limited as possible. It is definitely not a fits all solution but works well in our use-case.

Custom View Controller Transitions Using UIStoryboardSegue

In this post I’ll show how to create a custom segue that animates an image to a new full screen view controller when tapped. This effect is similar to what you see when the Facebook iOS app makes a photo fullscreen.

Segues make it easy to abstract view controller transitions into reusable objects. Instead of having all the animation logic in your view controller the segue is now responsible for that. The view controller its role is reduced to configuring the segue and view controllers involved in the transition.

When done right this usually results in cleaner and more reusable code.