Search VG Five
History

Entries in iphonedev (8)

Wednesday
Mar092011

iOS Resources for Migrating to Foursquare API v2

Alkatracks is truly my first foray into a "socially connected" iOS app. While I have dealt with webservice feeds and XML before with iGoozex, for Alkatracks I not only had to write my own backend webservice but also connect the app and its users to Facebook's and Twitter's OAuth-enabled services. While I spent plenty of time working through the authentication process for those two services, I only needed rudimentary support for Foursquare in order to access the nearby venues for sharing them while drinking.

This caused the first "Whoops!" moment that I encountered with Alkatracks being live. Yesterday morning, Foursquare was unavailable for a few hours, but the only notification I had was that users were not able to list nearby venues. A little digging revealed that they were receiving a rate limiting error from Foursquare. I investigated further and realized that while there was nothing I could do to reduce occurances of this without pushing an updated version to the App Store approval chain, there were quite a few changes over at Foursquare's API since I had last touched it in mid-2010.

Foursquare has moved to what they dub "v2" of their API recently, and there is no better time than the present for me to move Alkatrack's codebase up to their current API. Alkatracks v1.0.1 is currently in the App Store review queue, and with it will come a much more reliable implementation of the Foursquare venue search.

For those of you out there in dev-land that want to use these new features in your own iOS apps, it's as simple as cloning the (official?) foursquare-api-v2 repo from github [github.com]. You may also be interested in foursquare-oauth-iPhone [github.com]. If you'd be interested in a quick tutorial on getting an app up-and-running with Foursquare authentication and checkins, etc., please leave a comment and let me know!

Wednesday
May062009

NSString - Comparing two strings in Objective-C

Comparing strings in Obj-C is not done the same way as comparing two integers, bools, or even characters. For example, the following code will fail to get the desired results:

if (someString == @"someText") { // do stuff }

This will never run, because you are comparing pointers and not the content of the two strings. Instead, use this:

if ([someString isEqualToString:@"someText"]) { // do stuff }

 

Wednesday
Apr292009

App Store Roundtable: The Gold Rush

Gavin Bowman has posted the first App Store Roundtable summary on the topic of "The Gold Rush." You can find it over at The Apple Blog.

I recently joined the Rountable and look forward to contributing to it. I think it's an excellent idea and a way to spur discussion between devs.

Wednesday
Apr292009

The iPhone penny rush

I'm sure by now that most independent developers on the iPhone have realized a basic fact: Unless you're insanely lucky or well connected, the "Gold Rush" is much like its San Francisco cousin, circa 1849. Most devs are not going to become overnight millionaires from their iPhone apps.

However, this does not mean that the independent developer should give up. Afterall, there are more than 30 million iPhone OS users out there. If 10 percent of them use the App store (surely a conservative estimate), that means 3 million people will potentially be exposed to your app. If one percent of those people buy your app, that's 30,000 sales. These aren't the kind of numbers we see most apps move, but anyone can see the logic in developing for the platform. With a good idea, a solid plan, enough time, and a bit of luck, anyone can see some generous income from iPhone development.

Now, in the real world, let's imagine that Joe the Dev has written his first iPhone application. Joe is 25 and works full-time at Mr. Finance, a job that pays him $30,000 a year. Joe doesn't mind his job, but sadly he never went to college and he's unable to find a better paying one. Seeing the amount of money that the media is showing some iPhone developers as making, Joe saves up some money and buys a refurbished Mac Mini along with some iPhone dev books and a $99 developer's account. Joe spends about $600 to get into iPhone development.

For a few weeks, Joe studies and codes and finishes his first iPhone app. It's not a game (Joe knows notihng about graphics), but "Joe's App" seems to Joe like something that people would be willing to purchase for $0.99. He sends it off to Apple and 20 days later (and after one rejection from Apple... Joe should have read the Human Interface Guidelines more carefully) it appears on the App Store. Having done his homework, Joe knows to update his release date to appear on the top of the Release List in his category.

Joe anxiously awaits his sales results. As he downloads and opens his first daily report, Joe is saddened to see that only 10 copies of his app sold. He's made a mere $7. As more days go by, his app drops down to no daily sales after selling 20 copies in the first week. Joe contemplates quitting iPhone development.

However, Joe stumbles upon some simple math:

If Joe spends a few hours a week to develop and keep updating a handful of apps (along with a little word of mouth), he stands a reasonable chance of selling an average of 10 copies combined between them all each day. If he can do that for a year, he'll bring in pre-tax (post-Apple) earnings of around US$2500. Not bad for someone with a full-time job to supplement their income. If Joe commits himself even more, he can raise that number by developing more apps and spreading the word about his projects.

Joe's story is the perfect example of what I call the penny rush. Much like any other market, not everyone is going to  be the big dog on the pile. There's plenty of room for a lot of smaller dogs to gnaw on the collective chew toy.

Tuesday
Apr282009

Easy custom UITableView drawing (via Cocoa with Love)

Matt Galagher of Cocoa With Love has a great tutorial posted on how to draw custom UITableViews without spending as much time on them as I myself am guilty of. He lays everything out very well and even provides the project source for reference. Perfect timing for this as I'm working to expand the features of my Go series of apps and this is exactly what I am looking to do.