19
Apr
2008
 

From Hacker To microISV: App Names And Icons

by Matt Long

For the past five or six months, I have been developing an application for the Mac that I intend to release for sale in the near future. Though you could probably call me a switcher, to my credit I was a Mac user all through college and would have remained so had the job market been a bit more supportive of that desire when I finished school, but all along I’ve wanted to become a Macintosh developer. That time has finally come.

In June of 2007, I was in a position both financially and career wise to buy my MacBook Pro with this long intended, not yet realized pursuit of becoming a Macintosh developer.

Since that time I have been hacking my way through example after example trying to learn Objective-C and the Cocoa framework. I’ve been watching and contributing on the different Apple mailing lists, and I’ve been writing what I’ve been learning here at Cocoa Is My Girlfriend. If everything goes right, I will have my application in the wild within the next few months. The ambition will finally pay off and become realized.

As I am finishing the application, I am faced with the stark reality that the work of building the app is a small fraction of the entire work load. Once the code is finished, the list of what is left to do before being able to release the application seems to be growing rather than shrinking. In this series of posts, I intend to examine these hurdles and provide information not only about my experiences, but how I’ve overcome these hurdles and turned them into success.

(Re) Naming Your Application

I won’t go into any long dissertation on how to choose an application name. Frankly, you can probably name it whatever you want. Just make a quality app and I don’t think that will matter so much. You can use everything from the practical such as Movie Maker (nice little gem from Microsoft) down to the nonsensical Web 2.0 names that lack vowels like flckr or meebo. You can even give the Web 2.0 Name Generator a try if you can’t think of anything cool on your own. You make the call.

Sometimes, maybe even often, the first name you think of isn’t the one you end up using, or, as in my case, you decide you want to put a space in between two words of the app name. If you go into Interface Builder with your MainMenu.nib, you’ll try to change the name of the application that shows up there and then build the app again only to find that the changes didn’t take. That’s because the application name is stored elsewhere. If you need to change your application name in your project, use the following steps.

  1. With your application project open in xcode, click on Project | Edit Active Target “App Name” (where App Name is the name of your application).
  2. In the ensuing window, select the Build tab.
  3. In the search field, type Product Name. This is the name you will see when your application runs. Make changes to the Product Name by double clicking the value. Once you are finished, click ok.
  4. Rebuild your application and run it again. You should see the application name as you specified in the Product Name field.

Lickable Application Icons

I’m no graphic artist. This has always been the case and probably always will be. One of the first keys to being successful with any venture is to realize your limitations and weaknesses and be prepared to pay the professionals who can do the work and provide what you need.

While watching the macsb mailing list, the name Jordan Langille came up several times as a graphic artist who could provide the shiny candy coated Macintosh icons and logos that people expecct. I contacted Jordan at One Toad Design and within a couple of weeks he provided me with this icon for my application.

Icon

You can see Jordan’s portfolio at his site. I’m quite pleased with the results and highly recommend his work. This is not a paid endorsement. I just like to see good work rewarded, so send him your business. You won’t be disappointed.

As a first time Macintosh application developer, I was thrilled when I received the .icns file from Jordan and the first thing I wanted to do was plug it into my application. How do you do that? Is it obvious in the project settings? This should be easy, but I don’t see where to do it in Interface Builder. What is going on?? Help!!

Oh Google….

After a quick search, I found that adding the icon to my app was as simple as the following steps.

  1. Right-click the Resources folder in your project tree and select Add Existing Files….
  2. In the ensuing dialog box, navigate to the .icns file that holds your icon and select it. When prompted, select the checkbox labeled Copy items into destination group’s folder (if needed).

    This will add the file to your project.

  3. Look in your Resource folder in your project tree for the file Info.plist. Open this file
  4. Look through the file for the key called CFBundleTypeIconFile. Simply specify the name of the .icns file you just added to the project like this:
    CFBundleTypeIconFile
    MyIcon.icns
    

Save the Info.plist file. Clean, re-build, and run your application and you should now see your icon display in the Dock. Pretty cool.

Conclusion

As I finish my application, I continue to learn new aspects of becoming a microISV for the Macintosh. It has frustrating and challenging aspects, but I hope that with my experiences I can document those things and help others who also aspire to become Macintosh software developers. Watch this site for more of my experiences.

Comments

stevenhuey says:

Matt,

Deja-Vu here. I left my job in September of last year, learned Cocoa, just released my first app last month (http://hamiltonapp.com), and also worked with Jordan Langille – who I’d also highly recommend. I’m closing in a 1.1 release and just started working on some code and reading up on some new APIs for my second app. The articles & tutorials you guys have been writing here have been great! Thanks and good luck getting to 1.0!

– Steve

nevyn says:

You can just drag the icon file to your project, you don’t have to go through a context menu.

Also, you can set the icon from the Properties pane (type the icon file name into the “Icon File” field) in the app’s target (cmd-opt-E), you don’t have to mess with XML.

[…] blog “Cocoa Is My Girlfriend” includes a shout-out to Jordan Languille who did the graphics for Rickshaw and web imagery for Infurious recently. “You can see […]

Marcus Zarra says:

Nevyn,

There are multiple ways to do just about everything in XCode. Some people prefer to lift the curtain and understand what the preference dialogs are doing. Yes, you can change the icon in the dialog but knowing what that change does to the underlying file structure is valuable.

Far too many “programmers” only understand how to manipulate things via the dialogs and have no clue what those dialogs are doing. We should all understand what is going on under the hood. The more we understand the better our code lest we fall into the trap that some other languages suffer from.

[…] From Hacker To microISV: App Names And Icons …I can document those things and help others who also aspire to become Macintosh software developers. Watch this site for more of my experiences (tags: cocoa applications) […]

[…] blog “Cocoa Is My Girlfriend” includes a shout-out to Jordan Languille who did the graphics for Rickshaw and web imagery for Infurious recently. “You can see […]