– my new game UI inspiration site

February 23, 2014

A couple of days ago I released my first game (Brain Maze) to the app store, and I will tell you all about it in the next post.

Being a newbie in game development, when I was working on the game I searched for a UI inspiration site to help me design different parts of the game (especially the level selection screen and the in-app purchases store screen).
I really like UI inspiration sites. There are dozens of them and I use them a lot to get design ideas for my app (my favorites are Inspired-UI and pttrns.

To My surprise, I found out that there was not a single UI inspiration site targeting mobile games – so naturally I decided to build one🙂

The site is called and me and a good friend of mine, Eldad (A.K.A Dutzi) launched the site yesterday.

I think this is going to be a very valuable resource for game developers, and I’ll love to hear what you think about it.

Any thing can be a dictionary key? Yes, but with a price

January 14, 2014

I like to talk about the difference between different NSDictionary keys. I know it’s cliché.[1]

We all know that building a dictionary is slower than querying it, and that the time it takes to insert or update values depends on the hash function of the key – the interesting part is how incredibly inefficient the hashes of built in objective-c components can be.

Read the rest of this entry »

Custom easing animations with auto layouts

December 22, 2013

Our rock star designer Jonathan Saragousi has a fetish for beautiful easing transitions in our animations. The correct easing method can make the difference between a plain animation and a jaw-dropping one.
In Cal for instance, most of the animations use EaseOutQuart transitions. (You can find a nice demonstration of the different transitions here)
We implement the custom animations using a very cool project called NSBKeyframeAnimation.

A while ago we moved Cal to using Auto layouts, and of course – auto layout does not behave well at all with custom animations.
Read the rest of this entry »

Auto growing UITextView Using Auto Layout

November 9, 2013

Hi everyone,

A few weeks ago we decided to use iOS7 as an excuse to move Cal to using Auto layout. I initially intended to transform only small parts of the app, but auto layout is just so easy and intuitive that I found myself changing the entire app to support auto layout. And after I finished, I decided to change some 3rd party libraries as well🙂

I’ve been using HPGrowingTextView for a while now, and it’s a really nice library, but it’s very complicated and has more than a few positioning bugs, so I decided that it’s a great candidate to be replaced by simple auto layout constraints.

Here’s how you implement an Auto Growing Text View with auto layouts:
Read the rest of this entry »

In-app localization

December 9, 2012

Hi guys!

It’s been a LONG time since my last post – I was busy lately getting married to the lovely Einat🙂

This time I wanted to tell you about how we added in-app localization to Any.DO

Since we added localization to Any.DO a few months ago, we got a lot of feedback asking us to add the option to change the language from inside the app.
As you all know, the common localization method is to simply use NSLocalizedString(key, comment) – a macro for [[NSBundle mainBundle] localizedStringForKey:(key) value:@”” table:nil].

Read the rest of this entry »

Any.DO and WWDC – Unrelated except for coolness

June 13, 2012

This week we have two reasons to celebrate.


The first reason is that Any.DO, my baby, was finally released to the App Store with great success (Over 100K downloads in the first 24 hours)

For those of you who haven’t heard of it – Any.DO is a wonderful Task management tool that was released to the Android market a few months ago and is considered one of the most elegant and popular apps on the Android market, and has been named on many lists of top apps for Android (including the New york times).

Read the rest of this entry »

Selective layer borders

March 4, 2012

I always though that the most annoying problems are the ones that should have been trivial. Those pesky problems that happen all the time, and for some reason apple didn’t take the time to fix them.

One such problem is the fact that there is no easy way to draw “selective” borders – i.e draw borders only on the left and top side of the view.

This problem keeps popping up for me, the last time was when I was trying to draw a grid view with custom cells. I wanted the cells to have a 1px border, but since all cell had both top and bottom borders, the borders seemed to be 2px wide.

This time I decided to solve this problem the right way and make a simple drop-in class that provides flexible border abilities – something that I could use like this:

myView.borderDirection = AUIFlexibleBordersDirectionRight | AUIFlexibleBordersDirectionTop;

Read the rest of this entry »