If you’re a regular Mac.AppStorm visitor, then you probably love apps as much as we do. You might even have some ideas floating around in your head for an app that you’d like to build whether for your own purposes or to strike it rich on the Mac App Store.
The biggest hurdle to many would-be developers is a complete lack of knowledge of where to even start! How are Mac apps created? What skills are required? Where do I go to learn these skills? Today we’ll find out!
Be Ready to Learn a Lot
Mac applications are complicated beasts made up of many elements and thus require many different skill sets. Just take a look at any great application and you can see right away that a certain level of interface design proficiency will be necessary. You’ll be able to leverage core UI features but those will only take you so far, to accomplish anything fancy and custom-looking you’ll have to venture out on your own. Even with the core UI, interface layout is a complex science. If you screw up the usability component of your app, you’ll fall short on one of the main criteria for judging apps.
Further, the interface is just what sits on top, under that is the real heart of the application: the code. Learning to program is incredibly intimidating for most people. Fortunately, though it’s difficult, many people underestimate themselves and find that it’s not quite as impossible as they had imagined. You don’t need to be a genius to program a basic Mac app, only time and practice coupled with the right knowledge and set of tools.
With this in mind, let’s take a look at two of the main things that you’ll need to learn to create your own Mac applications and some resources that you can check out for learning them.
Cocoa and Objective-C
Cocoa’s Model-View-Controller Design Pattern
This is going to get pretty technical pretty fast so bear with me. Most Mac applications are built using Objective-C, an object-oriented programming language. Objective-C is the primary way to leverage one of Apple’s primary OS X APIs (Application Programming Interface): Cocoa.
So, just to make sure we’re clear: Cocoa is the API, which is a set of rules, standards, frameworks, etc. to help you build Mac applications, and Objective-C is the language that you use for that API.
One other thing that you should know about Objective-C is that it is basically an extension of C, another popular programming language. If you already know C, you are primed to learn Objective-C.
Online Resources for Learning Objective-C
There are quite a few sites that will teach you Objective-C completely free. If you are a self-driven person, these resources are definitely the place to start.
Cocoa Dev Central: Intro to C
Before you dive into Objective-C, it’s helpful to get a solid understanding of C. Cocoa Dev Central has an awesome walkthrough that will teach you the specific areas of C that are relevant to working with Cocoa. In other words, this tutorial is specifically targeted for people looking to take their first step in learning to program Mac applications.
Apple’s Intro to Objective-C
It’s always a good idea to go straight to the source. Apple has a ton of support for both new and experienced developers and really seeks to make the entire process as easy as possible. This guide will serve as a basic introduction to Objective-C and Cocoa application frameworks. Also be sure to check out Apple’s thorough Getting Started Guides, which cover a range of topics for new developers.
Cocoa Dev Central: Learn Objective-C
Cocoa Dev Central, the same folks who wrote the intro to C above also have a super basic introduction to Objective-C. If you’re already familiar with other programming languages, this might be a good place to start.
Books for Learning Objective-C
If you really want to get into Mac programming, you often can’t beat the in-depth instruction that you’ll get from a good old printed book. Here are a couple that we recommend.
Cocoa and Objective-C: Up and Running: Foundations of Mac, iPhone, and iPod Touch programming
O’Reilly is one of the first publishers I look to for any technical topic, be it web design or programming. As you would expect, they have an awesome book for those looking to get started in Mac and iPhone development that covers the basics of both Cocoa and Objective-C.
Learn Objective-C on the Mac
This book serves as a solid starting point for anyone completely new to programming. Other manuals tend to assume that you’re already a developer who is picking up a new language but this guide starts from scratch and will help you learn the basics of development in general.
Xcode
Xcode
As I mentioned above, the good folks at Apple are all about providing developers with the tools that they need to create amazing applications. Xcode is the main focus of this venture and serves as a suite of tools and utilities that you will use through every step of the application-building process, from planning interface layouts to writing and compiling code.
Xcode is a free download, but you have to join the Developer Program to get it, which will run you $99 per year. Alternatively, you can grab it in the Mac App Store for only $4.99.
Online Resources for Learning Xcode
Xcode 4 User Guide
One of the main components of the Xcode suite is the Xcode IDE, where you will do much of your programming. This is Apple’s official guide for getting started with the newest iteration, Xcode 4.
Lynda.com
Lynda.com is my absolute favorite resource for online video training. They have in-depth tutorials for just about every creative and technical topic you can name. The subscriptions don’t come cheap, but they’re worth every penny. Lynda has a complete series on developing for the Mac and iPhone. It covers, Objective-C, Xcode, getting your app to the App Store and more. If you’re looking for one place to go and learn it all, this is it.
Books for Learning Xcode
You’ll find that most of the Objective-C books actually cover Xcode so this section might be a little redundant, but there are in fact several dedicated Xcode books. Here are a couple you can check out.
Xcode 4 (Developer Reference)
When learning anything technical, it’s crucial to make sure that you’re using an up-to-date guide. Unfortunately, there aren’t that many books out yet dedicated to the new Xcode 4. This book is freshly released and takes you step-by-step through the process of developing for OS X with Xcode.
Xcode 4 Unleashed (Coming Soon)
The “Unleashed” series is quite popular and the books are well-known for their excellent coverage of their topics. This book hasn’t hit shelves yet but it’s available for pre-orders right now.
Conclusion
Utilizing Cocoa, Objective-C and Xcode are what you would consider the main-stream path to developing custom Mac applications. Most of the applications that really have that famous “Mac feel” have been developed using these tools.
However, it’s important to keep in mind that there are in fact several methods for developing Mac applications so if these just aren’t resonating with you, keep looking. For instance, if you’re looking to build something that works well across several platforms, check out Titanium, which enables rapid development of native mobile, desktop, and tablet applications using web technologies like HTML, CSS and JavaScript.
Leave a comment below and let us know whether or not you’re interested in developing Mac applications or are already a developer. What resources have you found to be helpful for beginners?