Archive for August, 2009

A Tale of App Store Rejection

Aug 22 2009 Published by Bryant under Programming

As my loyal readers know, I recently built my first iPhone app and submitted it to the app store. I’ve been patiently not-so-patiently checking my app’s status on iTunes Connect – the whiz-bang dashboard that Apple gives you to monitor your apps.  Usually it looks like this:

image

Last Tuesday, I checked my status and instead of the cheery yellow “In Review” status, there was big red circle and the word “Rejected” – WTF!!!

I was heartbroken, but had to know why so I checked my email and saw this message:

Dear Bryant,
BragVest cannot be posted to the App Store because the small bundle icon does not match your large icon. This might be confusing to users.


iTunes Connect Developer Guide, pg 35
C) Large Icon (512×512)
The small (57×57) icon that you include inside the binary will be used on the home screen, and the App Store when viewed from the iPod touch and iPhone. The large icon will be used to feature your application on the iTunes App Store.


Please resolve this issue and upload a new binary and correct metadata using iTunes Connect
<http://itunesconnect.apple.com/>
Regards,
iPhone Developer Program

Did you catch that? So the reason I was rejected didn’t have anything to do with a fatal flaw in my application, it was simply the App Store usability team wanting to ensure that my user’s weren’t confused.

You see, when I submitted my app, I included a different icon for display on the user’s iPhone vs the one displayed in iTunes. They were both stylized pictures of a campfire, but I guess this could confuse who might think they were buying one app and got another. Their feedback actually makes sense, but I was surprised that they enforced this level of conformity.

I submitted a new icon and am now waiting for Apple’s blessing.

Microsoft is Protestant and Apple is Catholic

This whole experience reminded me of the classic Umberto Eco piece entitled The Holy War: Mac vs DOS:

The fact is that the world is divided between users of the Macintosh computer and users of MS-DOS compatible computers. I am firmly of the opinion that the Macintosh is Catholic and that DOS is Protestant… It is cheerful, friendly, conciliatory, it tells the faithful how they must proceed step by step to reach – if not the Kingdom of Heaven – the moment in which their document is printed. It is catechistic: the essence of revelation is dealt with via simple formulae and sumptuous icons. Everyone has a right to salvation.

Apple has this very specific set of rules (Objective-C, dev on a Mac, Icon restrictions, etc) that you must follow  to reach the kingdom of heaven (ie – the app store) while in the Microsoft world you are free to interpret the software world as you will. Create whatever kind of app you want using whatever technology you want, and just put it out there to see what converts you pick up.

It also reinforces how important look and feel is to Apple. I’ve heard of developers who had Mac apps get rejected by the Mac user community because their app’s icon was not “dock-worthy” (for non-Mac readers, the dock is a combo of the start-menu and taskbar).

So let my follies be a lesson to future Mac developers. Not only does it have to work, but for goodness sake, make sure it’s dock-worthy!

image

View Comments

5 Steps for Getting Started with iPhone Programming

Aug 08 2009 Published by Bryant under Programming

xcode

Today I uploaded my first iPhone application to the app store!

I’m going to cross my fingers and hopefully in 2 weeks or less, I’ll see my app sitting pretty in the store. Now I can finally catch my breath, and talk about my experience with iPhone programming.

Let me start out by saying it has been a LOT of fun programming on the Mac. It’s hard to say exactly why, but part of the reason is because it is so different from programming on the PC, and it forced me to think different (hmm….someone should trademark that phrase ;)

The IDE is totally different; The programming language was totally different; And, of course, the platform itself is totally different. It was similar to the feeling I got when first learning .NET coming from C and classic VB. There’s a joy in stretching yourself and just diving in.

A lot of other .NET programmers have been asking me what it takes to get started iPhone programming on a Mac, so I thought I’d share the basic steps that I went through:

  1. Get a Mac: With some minor exceptions, you have to have a Mac to code for the iPhone, and it’s a good opportunity to see how the other half lives. I found OS X to be a joy to learn and play with. For those of you switching from windows for the first time, I recommend getting a Mac mini because it makes it easy to inexpensively dip your toes in the Mac world. You can leverage existing monitors, keyboards and mice. Also, it’s perfectly capable for iPhone programming.
  2. Download the iPhone SDK: After getting your shiny new Mac, head out to the apple developer site and download the iPhone SDK. It’s free and it will give you a copy of Xcode (the standard IDE for Mac programming) as well as the API libraries required to code for the iPhone. Once you have all of this, you can write your first iPhone app and test it on the included simulator which runs on your Mac desktop. There is one big gotcha though. If you want to test it on your own phone, you have to pony up $99 and join the apple developer program. Once you do that you get the option to deploy to physical devices.
  3. Learn the Objective-C: Objective-C is Apple’s language of choice for iPhone programming. Apparently it has a long history in the Mac world, but it was totally new to me. I had done C++ programming professionally and it is similar, but there are enough differences that I still had to crack open some books and watch some videos to educate myself. I mainly used Beginning iPhone Development Exploring the iPhone SDK by Mark and LaMarche as well as the free Stanford iPhone Programming videos on iTunes U. Both are excellent.
  4. Learn Xcode: If you are doing iPhone programming, you are going to be spending a lot of time in Xcode. And if you are coming from VS.NET (as I was) it will definitely take some getting used to. While many of the ideas are similar they are implemented in radically different ways. For example, Xcode has a designer surface similar to the designer in VS.NET but in the Mac world it’s a totally separate program called Interface Builder. And you don’t hook up an event handler by double-clicking on a button. Instead you control click and visually drag a line to the event handler. In learning Xcode, I found the pragmatic programmer’s video tutorial to be essential. It was easily worth the $5 because in a short amount of time they illustrated how to move around Xcode with ease.
  5. Find a Project: I’ve always believed that the best way to learn something (especially programming topics), is to jump in with a real-world project. For me, that meant building an app that I would find useful for the iPhone. This would give me the motivation to actually do the iPhone programming and not feel like it was a waste of precious time. I chose to build an app for the cub scout community (which my son is a part of) to help parents track their kid’s progress toward badges. I would recommend that everyone find a similar project to stay motivated.

Hope this helps others who are looking at getting started with iPhone programming, and I’d love to hear about other’s experiences trying out iPhone programming.

View Comments