– 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 »

Automating UI testing on the iOS

February 26, 2012

A couple of weeks ago I gave a talk about automating UI testing on the iOS at the Second Tel Aviv iOS Developers Meetup. In the lecture I introduced importance of performing automated UI testing, and discussed in details the two most significant tools in this area – Apple’s UIAutomation framework, and Gorilla Logic’s FoneMonkey framework – maybe the greatest testing tool in the universe.

Gorilla Logic - FoneMonkey

Unfortunately, The lecture was not video taped, but the presentation is very elaborate. You can find the presentation on SlideShare, and a project with all the code examples I showed in the presentation can be found on github.

In my opinion, an organized testing culture is one of the key parameters to a successful iOS project, and if you ever wondered what is the best way to automate testing on the iOS – this presentation is a good starting point.


The best iOS open source libraries you never heard about

January 12, 2012

iOS developers have a very rich and dynamic community of open source projects, but most developers only use a fraction of it.
Being the lazy developer that I am, I love finding new and useful open source projects to use (why waste time building something that some one else already made?).
Most of you probably already know some of the famous open source projects such as Three20, ASIHttpRequest, ShareKit, etc. (If not, you have some homework to do) – I will not talk about them today. Instead, in this post I will share with you some of the best, and lesser known, projects that I found.
Read the rest of this entry »

DreamZ – A lucid dreams inducing iPhone app

November 30, 2011

I recently release a new app that I was working on the last couple of months. This is my first paid app, and in my unbiased opinion, it’s one of the most interesting apps on the market today 🙂

DreamZ is a revolutionary new app that allows you to realize that you are     dreaming and control your dream, otherwise known as a Lucid Dream.

How does it work?

As you sleep you go through different phases, ranging from deep sleep to light sleep. The most interesting phase is the REM (Rapid Eye Movement) phase, in which most dreams occur.

Based on your body movements while you’re asleep, DreamZ is able to know the exact sleep phase you are in, using the built-in iPhone’s sensors.
Read the rest of this entry »