May 2013
2 posts
iOS Apps: Keeping data over re-installs
I took my own advice and decided to create a Freemium version of Drive Mode and call it Speak and Drive. The app will allow users to dictate 20 destinations to their favorie navigation app. After these 20 free uses, the user has the option to unlock the app for unlimited use with an In-App Purchase. Where should I store this “uses” counter? The easiest place to store this data is the...
May 18th
1 note
I suck at marketing
I have a lot of ideas for products. Some are really bad, others are quite good. Once in a while a really good idea comes along. This is the product I build. The last good idea turned into Drive Mode. A good product that solves a real pain for users. I also know that people are actively looking to solve this pain. I created two versions of the app: A localized version for my own country...
May 3rd
1 note
April 2013
2 posts
Remote control your iOS app
If you’re in the business of developing iPhone apps, you probably already  know that app version upgrades are a pain. Each app upgrade must go through Apple’s app review process which takes 5-14 days. That’s the reason why I always add remote configuration to my Apps. I call it a “Remote control” for apps. Remote Control for apps What I do is include a JSON file as...
Apr 27th
My [disappointing] experience with AppLaunch.us
I used the services of AppLaunch.us exactly twice: for the first time and the last time. I first heard about AppLaunch from the popular weekly newsletter curated by Dave Verwer (@daveverwer), the iOS Dev Weekly. It was a sponsored item and as I truly respect Dave’s work, I concluded that AppLaunch.us could help me market Drive Mode, my latest iPhone app. AppLaunch.us is a tool for easily...
Apr 12th
March 2013
1 post
The part-time indie developer
I’m a “Full-time software developer” for a startup company. I wake up everyday and drive to work where they pay me to work on my hobby. I develop iOS and web applications that lots of people use everyday. It’s a great job and I consider myself to be very fortunate. When my work day ends, I go home and become a “Part-time indie developer”. So what is a...
Mar 16th
February 2013
1 post
New iPhone app - Drive Mode
Here’s a peek at my newest iPhone app: The iPhone app I use the most is Waze, a turn-by-turn navigation app. Without it, I would probably never get anywhere. Google Maps is great when I travel abroad, it really is becoming a great navigation app with tons of cool features. There’s one problem both these navigation apps have, they lack the ability to enter a new destination during...
Feb 25th
December 2012
2 posts
2 tags
NSBackbone - Porting Backbone.js concepts to...
We all want to write better code. One that is easy to read, understand and extend. Finding the path to good code might not be trivial and is sometime achieved by searching out side of the box. This is the case with NSBackbone. It’s a sample project that takes inspiration from the successful javascript library Backbone.js. Building web apps with javascript and backbone.js can teach us a lot...
Dec 22nd
1 note
1 tag
4 Changes in Backbone.Events you should know about
I really liked the latest update of Backbone to version 0.9.9 which will probably be the last one before 1.0. There are a lot of changes and tweaks, but what I really like are the changes/additions made to the Backbone.Events. 1. Global Notifications Backbone now supports a global Pub/Sub notification system. The implementation is very similar to what I’ve suggest at a previous blog post...
Dec 15th
2 notes
September 2012
1 post
8 Reasons why real men DO use Interface Builder
I remember when my team leader asked me if I think it’s possible to compile our C libraries for a new platform called “iPhone OS”. I said yes and my programming career took a 180 degree turn that day. A new platform was born for learning, hacking and building cool stuff that could run on my super sleek new phone. When the iPhone SDK came out, I sat to write the first iPhone app...
Sep 30th
2 notes
June 2012
1 post
Handling handlebars.js like a pro
When I was looking for a javascript templating engine, I initially wanted to pick mustache.js for all templating needs. The syntax is ridiculously simple and it takes less than 5 minutes to integrate it. Then I heard about handlebars.js and the precompilation feature won me over. This should speed loading times for the end users. After playing with handlebars for a while, I wondered what’s...
Jun 9th
6 notes
May 2012
2 posts
The Android developer who made me a better iOS...
The iOS app I’ve been working on lately was given a hugh feature redesign, making it beautiful but a bit more complex. I was happy with the result and how I overcame all the hurdles along the way. A few days later, right when the entire team was about to leave the office and head home for a long weekend break, the Android developer showed off the same redesign on his Android device. It all...
May 27th
Booleans are free. Use them.
Last week a co-worker asked me how I implemented a certain feature in our product. I couldn’t really remember all the fine details of the implementation so I loaded the file into the editor and we sat to read it together. The code was actually good and I didn’t feel I had to “protect” it by saying it was done under pressure and other excuses I use often. He read the code...
May 4th
March 2012
1 post
1 tag
Backbone.js global notifications
I was looking for a way to allow two Backbone.Views to exchange information between them. Here are some solutions to this problem: 1. The bad idea We could just let them reference each other. Then view1 could say this.view2.doSomething() and it’s the easiest way to solve this. However simple it may be, this will lead to a very tight coupling and a very bad design for our web app. If we...
Mar 15th
February 2012
1 post
3 tags
Adding custom Getters and Setters to Backbone...
I started using Backbone.js for web development. It’s a really great framework for structuring your javascript code. After digging in further, I figured out Backbone models are missing one important feature: custom Setters and Getters. [[MORE]]Sure, you can add functions like “getFullName”, but Backbone internal functions (like .sync and the defaults hash) will never know about...
Feb 23rd
January 2012
1 post
Export your AppAnnie data
I love AppAnnie. If you don’t know them, you should. Here’s what AppAnnie say: More than 75,000 Apple App Store apps trust App Annie Analytics to track their downloads, sales and reviews completely for free.  I am one of those 75,000 App owners who trust them with my data. And if it is in fact my data, then I should have the ability to export it to my computer, right? Well,...
Jan 16th
1 note
December 2011
4 posts
Don't be a liar! and 4 other tips for iOS graphic...
As an iOS developer I had the pleasure of teaming up with awesome graphic designers to create iPhone and iPad apps. I try not waste their time, and make sure they don’t waste mine. So I came up with a list of tips that will keep us productive and happy. If you’re a designing for iOS, the following tips I shared with them will probably save you hours of work as well. 1. Don’t...
Dec 23rd
Don't call yourself an iOS developer if you don't...
Here are 4 tools out of my iOS development toolbox. They’re all free and great! Unretiner Are you developing retina aware software? If so, you probably know that you should use two versions of each image resource in your app. An high-resolution version with a name of image@2x.png and a low-resolution with a name of image.png. Unretiner will take an high-resolution image and create the...
Dec 11th
Learning is not (just) reading blogs
I spend a lot of time on the web reading great blogs. I like to read anything about technology, from founder’s stories for inspiration to low-level technical articles. That’s a good way to learn about new trends and get new ideas, but the only way to learn a new skill is by doing. I also believe that the best way to learn anything is to actually create something useful and not just...
Dec 6th
Breaking the rules is allowed
If you’re not into programming, stop reading this post now. A few weeks ago I showed my code to a colleague and as always, I knew exactly where my code was great and when it was a complete mess. My friend shared some programming tips and I enjoyed the code-review and learned from it. However, we got into one disagreement: every method in my code tries to “Fail fast” and exit as...
Dec 3rd
November 2011
1 post
Not having fun? You probably need a new job
I remember creating my first computer game at the age of 11. The game was an *amazing* simulated football game, programmed in Basic on my beloved Atari. Essentially, it was a black screen with a timer running up to 90 (simulated) minutes. Footy events like goals, free kicks and red cards were randomly plotted to the screen. I was the only one to ever play it, but even so, I was very excited. I...
Nov 26th