Archive for the ‘iPhone’ Category

Hey Peanut: A New App for the iPhone

Tuesday, March 2nd, 2010

HeyPeanut-alpha01.pngI have spent the last couple of months working on a new app for the iPhone called Hey Peanut. Hey Peanut is a photo browser app with a twist for toddlers.

A while back my wife took pictures of family members and put them into a small photo album. Our son doesn’t see his extended family as much as we would like so from time to time we sit with him and browse the family photo album. This gives him a chance to learn the faces of his grandparents, aunts, uncles, and cousins. One day I was watching my wife and son browse the photo album and I thought, “There should be an app for that.” Thus the idea for Hey Peanut was born.

Hey Peanut is based on the family photo album but, as I said before, with a twist. The twist is the recorded voice message. Using an iPhone and Hey Peanut a parent takes a picture of a family member then records a voice message from the family member. For instance, I can use Hey Peanut to take a picture of my mother and record a personal message from her like, “Hi Rowan! It’s GranMom. I love you.” My son can then browse the pictures and listen to the messages at any time.

Hey Peanut is a bit more than just a photo browser. It includes colorful “photo mats” with various sounds effects to keep the toddle engaged. Originally I was thinking of making Hey Peanut more game-like but decided it was not necessary.

Development on Hey Peanut is nearing completion. A lot of time has been spent on making a photo browser slash library manager for the parents. This mimics the photo app to some degree. I had hope to use Three20′s photo viewer for this but I ran into problems so I had to write my own. Over the last few weeks I have taken my code and created a new open source photo browser project called KTPhotoBrowser. The latest code is available on GitHub. The open source project is still work in progress but it is useable. I plan to complete KTPhotoBrowser once Hey Peanut is released.

Meanwhile, if you are a parent with a little one between the ages of 1 and 3 and you think he or she would like to play with Hey Peanut then send me a message and join the beta testing team.


NSConference USA was Awesome

Monday, March 1st, 2010

Last week I attended NSConference USA which was the conference’s first visit to the States. I had an awesome time and I will definitely return to NSConference next year. Heck, I might even attend both the USA and UK events.

The sense of community combined with the unique structure of the conference made for a wonderful time. NSConference is different from other developer related conferences in that there are not multiple tracks during the day. Instead all the attendees, called delegates at NSConference, sit in the same room and listen to the same talks. The other difference is the 30 minute break between sessions. This combination makes for a great conference going experience.

Why does the combination work so well? As a delegate I didn’t have to run from room to room to hear different talks and to find a new seat. I’m able to leave my gear in one spot for the entire day, and because I don’t have to run room to room I can spend more time meeting and talking with other delegates. This is were the 30 minute breaks really help out.

At other conferences my chats between sessions are never long enough to really get to know other developers. The 30 minute breaks at NSConference gives you plenty of time to chat with folks you already know and to meet new ones. And because of this I actually met more people at NSConference then I have at the last 3 conferences I have attended.

And meeting other iPhone and Mac developers has never been so easy. I arrived in Atlanta late Saturday afternoon not knowing a single person. Within an hour and a half I was talking with other delegates, having beers, and sharing stories. I feel like I met close to 90 percent of all the delegates by the end of the conference, and I definitely formed new friendships with a good number of those that I met. As someone who works from home, making these connections and feeling apart of a community is very important to me. And this aspect alone makes attending NSConference worth well.

I haven’t said much about the session talks yet. And yes, the talks were great. I found every topic useful and informative. The speakers really know their stuff and I learned tons. If you are seeking knowledge in Mac and iPhone development than there is no better independent developer conference. But more important to me were the connections I made with others in the iPhone and Mac development community. And this includes getting to know the speakers as well.

There are many more good things I can say about NSConference. For instance, the party Monday night was a blast. Eating at the Silver Skillet each morning was a great way to start the day. Dinner and drinks each night with the delegates was so much fun. The only negative part of the conference for me were the lunches, though many folks told me the lunches were better than those offered at WWDC.

Lunches aside, NSConference is a must attend conference for all iPhone and Mac developers.


iPhone Mac Conference Tour 2010

Saturday, February 20th, 2010

Today is the official start of what I am calling iPhone Mac Conference Tour 2010. Between now and June I will be attending 3 iPhone and Mac developer conferences. My tour beings with NSConference, which starts tomorrow, followed by 360iDev San Jose in April and wraps up in June with my first visit to WWDC.

NSConference USA kicks off tomorrow with an iPhone developer workshop followed by 2 days of Mac developer talks and ending Wednesday with 2 additional workshops, one on concurrent programming and the other on insights from Matt “Legend” Gemmell. I’m excited about NSConference, not only for the talks but the chance to finally meet a number of people I follow on Twitter. Plus the conference will likely be the kick in the butt I need to get started on my first commercial Mac desktop app.

360iDev San Jose is April 11 through 14. What can I say about 360iDev that I haven’t already said. It’s a great conference. The last one in Denver was one of the best developer conferences I have ever attended. 360iDev San Jose will be a bit different for me though since I will be one of the speakers. My topic will be on using web services with your iPhone apps. Oh, and if you are planning to attend be sure to register here. You’re registration will help me win suite at the hotel.

And what better way to conclude the iPhone Mac Conference Tour 2010 then by attending Apple’s own Worldwide Developer Conference (WWDC). I’ve never been. This will be my first WWDC. I really wanted to go last year but had a scheduling conflict. Not this year. I have blocked off the entire month of June until the WWDC dates are announced.

So that’s my conference tour for this year. I’m really looking forward to each conference. Speaking of, time to head down to the hotel lobby and meet some folks here for #nsconf.


Switching the Xcode Path using xcode-select

Tuesday, February 2nd, 2010

I currently have two versions of Xcode installed on my primary development machine. One version is the official release from Apple and the other version is a beta version. I install the latest release in the default directory /Developer and I install beta releases in a parallel directory, /Developer-n.n.n where “n.n.n” is the Xcode version number.

I also have a number of different distribution certificates for making adhoc and distribution builds for my iPhone apps and client apps. I use different keychains to manage the multiple certificates. Because of this I rely on bash scripts to make adhoc and distribution builds of the different iPhone apps that I am responsible for.

The latest Xcode beta release does not include iPhone OS SDK 2.2.1. Not really a big deal for me since the SDK is included in Xcode 3.2.1. However, to my surprise when I ran a script for a 2.2.1 app the build failed to find the 2.2.1 SDK. Turns out installing the latest beta release replaces the /usr/bin/xcodebuild command. Oh know! My build script no longer works for 2.2.1 apps.

Thanks to a tip from @joar_at_work on Twitter I was able to solve the problem. The magical command I needed was /usr/bin/xcode-select. This command allows you to change the Xcode directory used by xcodebuild. For instance, in my situation xcodebuild was looking at /Developer-3.2.2 which does not include iPhone OS SDK 2.2.1. By using xcode-select I was able to point xcodebuild to the /Developer directory.

Switching directories is simple with xcode-select. Just use the -switch option. For example: xcode-select -switch /Developer. This did the trick for me and my build scripts were once again working with the correct Xcode environment.


Reviewing Daily iPhone App Sales

Monday, February 1st, 2010

@rsachdeva asked, “How do you know when someone buys the app?” Of course, he is referring to an iPhone. Here is a list of tools I use to reviewing my daily iPhone sales figures:

AppViz: AppViz is a brilliant piece of Mac software that allows iPhone developers to download and review their app sales. It also supports ranking and review downloads. AppViz sells for $29.95 (USD) and is well worth the price in my opinion.

AppDailySales: This is a python script that downloads daily sales reports. It’s open source and written by yours truly. I have the script setup to run daily on a server. This ensures I never miss a daily report even when I’m away from the computer for a few days.

AppSales Mobile: An open source iPhone application that is great for looking at daily sales when on the road.


Coming Soon: NSiPhoneDevs

Friday, January 8th, 2010

Over the last few months I have been inspired by different iPhone developer community events including 360iDev and DrinksOnTap. So much so I have decided to start my own monthly event for Boston area iPhone developers.

The opportunity to meet fellow iPhone developers and form new friendships is very exciting to me and it motivates me to do more with White Peak Software. Working from home is a wonderful perk of being an indie developer but it can be lonely at times. Meetup events, conferences, and so on are great ways for me to feel connected. And it gives my wife a needed break from my geek talk, which she doesn’t always understand but always happily smiles and acts like she is interested.

The Boston area has a number of meetup events but it is not always possible for me to get into Boston. And let’s face it. MBTA ain’t the MTA. I missed the 10:40 pm train to Salem at the last event I attended in Cambridge. This meant waiting until the 12:10 am train. I finally got home at 1 am.

So what’s a North Shore iPhone developer who can’t always make it into Boston to do? Start a monthly gathering in the North Shore of course.

Over the New Year’s weekend I tweeted about a new group I’m creating called NSiPhoneDevs. The NS prefix is a fun play on the prefix for many of the foundation classes from Apple, but the NS prefix also stands for “North Shore”. The North Shore iPhone Developers or NSiPhoneDevs for short.

I’m still working out the details including the exact location. What I do know is the events will be held in downtown Salem, the events will be monthly, and the first event will be this spring. Stay tune for more NSiPhoneDevs news from the official website (http://nsiphonedevs.org/) or follow @NSiPhoneDevs on Twitter.


Selected as a 360iDev San Jose Speaker

Thursday, January 7th, 2010

Yesterday I was having a very good day but around 5:45 pm my day got even better. I received an email from the fine folks at 360iDev that my topic “Building Web Service Powered iPhone Apps” has been selected. Yep, that’s right folks. I will be speaking at the upcoming 360iDev San Jose (April 11-14).

I’m very excited about this opportunity for a number of reasons. First and foremost, speaking at the conference gives me a chance to share what I have learned over the recents months about leveraging web services within iPhone applications. I have worked with web services in some form for over a decade now so it’s only natural that I would gravitate towards using them in iPhone applications. I also plan to blog more on the topic as I prepare my materials for the conference.

Another reason I’m excited about speaking at 360iDev this spring is I get to attend the conference. I was on the fence about going. I’m already registered for NSConference 2010 USA and I plan to attend this year’s WWDC. I actually was planning to email John at 360iDev to ask if there are plans for another event later in the year. 360iDev Denver was such an incredible experience I knew I didn’t want to go the entire year without attending at least one event. But before I got the chance to ask about another event this year I received the email accepting me as a speaker. This of course made my decision easy. Heck yeah I’m going in April!

And the final reason I’m excited about this opportunity, 360iDev events are the best. Granted I have attended only 1 and that was last fall, but it was by far the best developer conference I have attended in recent years. And definitely one of the top conferences I have ever attended. I posted my comments about 360iDev Denver back in October so I will not repeat myself here. What I will say, though, is if you are an iPhone developer then you should attend 360iDev San Jose. I guarantee you will pick up a trick or two or twelve and best of all you will get to meet other awesome iPhone developers.


Labor Mate’s Fail From Grace

Wednesday, January 6th, 2010

Labor Mate was originally release in October 2008. My expectations for it were low. If it sold 100 units in the first year then I would consider it a success. But my expectation were exceeded. Labor Mate sold 4997 units in the first year, and it has sold 9201 units in all as of yesterday.

In January 2009 Labor Mate broke into the Top 100 for the Health and Fitness category in the U.S. store. It stayed in the Top 100 daily for nearly 11 straight months peaking at number 34 in the U.S. store. Labor Mate has also been in the Top 100 for the Health and Fitness category in a number of other stores including the U.K., Japan, Sweden, Netherlands, and Italy among others. All of this changed in mid-November. Labor Mate’s fall from grace had started.

A couple of things happened in November bumping Labor Mate out of the Top 100 in its category. First, it received a couple of ridiculous, negative comments in iTunes. I’m not sure of the real impact but the slide from the Top 100 started at the time of the comments. Second and only a day or two later, BabyBump made the What’s Hot list. I believe it is this second point that has taken the biggest toll on Labor Mate’s Top 100 streak.

BabyBump was released in October 2009, just over a year since the initial release of Labor Mate. BabyBump includes features that I have long planned for Labor Mate but have yet to implement. And honestly it looks better than Labor Mate in my opinion. Creative design has always been a weak skill set of mine.

At the end of the day, BabyBump did it better. This was a major wakeup call for me. I let Labor Mate, the one time market leader in its space, grow stale. I had a top ranking and it was mine to lose. And lose it I did.

A major mistake I made in 2009 was to focus most of my attention on contract work and not enough time on my own company. This lack of focus was a setback but also a major kick in my ass. Unfortunately it took Labor Mate’s fall from grace to light the fire under me (and in me). I have learned from this lesson and will do better going forward. For starters, I have since hired a part-time designer as the “Creative Director” for White Peak Software and the first project we worked on together looks great. It will be in the app store soon.

So what about Labor Mate? Is Labor Mate dead? No, far from it. Just a few weeks before the fall from grace, version 1.5 of Labor Mate was approved. This release added support for 8 additional languages, Dutch, French, German, Italian, Japanese, Spanish, Swedish, and Russian. So while sales in the U.S. have dropped, sales worldwide have improved and Labor Mate continues to sell an average of 31 units per day worldwide. So despite not being in the Top 100 of the Health and Fitness category in the U.S., sales remain steady. Also, I have big plans for Labor Mate 2, which I will start working on soon.


Promo Boost from Matt Martel

Thursday, December 24th, 2009

LaborMate-reMovemTo say Matt Martel is a swell guy is an understatement. He is a super swell guy who does what he can to contribute to the iPhone development community, and he is somewhat a role model for me (though I doubt he knows it…yet). He started and ran a regular iPhone developer meet up group in the Boston metro area, he is willing to share his thoughts and feedback on the business of running an indie shop, and just this week he made a special offer to indie iPhone developers.

I first met Matt, and his wife Trish, in September at 360iDev Denver. Turns out Matt and Trish lived in the Boston area too. I say “lived” because they recently moved to Colorado Springs, but that’s a different story.

Matt and Trish have an indie software company called Mundue, and have published a few casual games for the iPhone and iPod touch. The most popular is reMovem, which I find to be highly addictive. Two favors of reMovem are available, a freeware ad-support version and a $1.99 paid version. The paid version comes with additional play modes which make it well worth the price.

A few days ago Matt made an offer to the indie iPhone development community that was too generous for me to pass up. He offered to include ads for apps in his popular game reMovem, the free edition. I was a little hesitant at first because I have not tried advertising Labor Mate this way before. Past experience with Google Adwords for Killink CSV Editor has turned me off of ad placement to market my products. However, I’m learning this week that might be a mistake.

In the first 24 hours the Labor Mate ad received 112 clickthroughs, and 238 total clickthroughs within the first 48 hours. Admittedly I was surprised by these numbers. First, Labor Mate is very niched app, and second, I thought “Who wants to learn more about a contraction timer while playing a game?” Boy was I wrong. 238 people found out about Labor Mate in a 48 hour time period that probably would have never known about the app. I find this to be great.

Unfortunately it’s hard for me to say if the ad has resulted in additional sells. According to Matt, “Most ads are getting an average of 1% clickthrough (CTR) which means 50-150 clicks per day. That’s really not much, and with conversion (sales) rates of 5% you might not notice any difference.” This is true. I haven’t noticed any change in the normal sales pattern for Labor Mate over the last couple of days. Still, I’m happy to know at least 238 additional people have learned about Labor Mate.

Thank you very much Matt for your generous offer to the indie iPhone development community. This little experiment has been a huge eye opener for me. Thanks for the opportunity to participate.

Now everyone go buy reMovem.


Just Submit It Already

Friday, December 18th, 2009

I have been working feverishly over the last few weeks to finish version 1.0 of a client’s new iPhone app. But it seems like I’ll never be finished. There just so much more we want to add to the app. This is true for most, if not all, software releases. “If I just had another day then I can add this really neat feature.” That one day becomes two days which becomes three days and so on.

One thing to consider with an iPhone app is the review period. The review period is about two weeks for most app. If you are like me then you will think, “Two weeks for review? Then I better spend another few days on the app before submitting.” But my opinion on this is changing.

Apps can be rejected from the App Store for all sorts of reasons. A misuse of an icon. Use of a private API call. Crashes on start up. The list goes on. Even though you may spend a few more days on the app to get that one additional feature in, you don’t know for sure if the app will be accepted or rejected.

My client app has some interesting and unique features that involve having voice and data connections at the same time (I’ll share more about this later). Given its uniqueness there’s a good chance the app will be rejected initially and an even better chance the review process will be longer than the average 14 days. So I’ve decided it’s time to submit the app even though the app isn’t as complete as I would like.

Yes, there are more features planned for the app and there is a known (minor) bug or two, but we don’t plan to “go live” with the app for another couple of months. Submitting now, however, will help eliminate surprises down the road.

My way of thinking about the app review process is changing. I’m starting to think a better approach is to submit early and mark the availability date for the app to some date way into the future. This will give you an idea of what to expect from Apple and the review process earlier in the development process. And you can always submit an update or two before the future availability date.

Of course you want to make sure the early submitted app is usable and stable, and that core functionality is present, but I see know reason for waiting until you have a completed version 1.0 app to submit to Apple. Submitting early should be a part of the development lifecycle process.