Saturday was the second and last day of 360 MacDev in Denver, and it was full of excellent topics from the world of Mac development. Although I was unable to stay for the last three speakers (my apologies, guys!), the morning and lunch sessions were very useful and educational.
To start off the festivities were Dave Wiskus of Double Encore (the sharp-dressed man standing next to the conference poster with legs at right) and Kyle Richter of Dragon Forged Software with a talk titled "iOS: the Gateway Drug." Wiskus and Richter were thinking of possible Mac-related papers for the conference a while back when they got the idea of taking one of the Double Encore "Massively Overrated" iOS apps -- KeyGrinder (free) -- and porting it to Mac OS X and the Mac App Store. TUAW reviewed KeyGrinder earlier this year.
KeyGrinder is a small app -- you get into the app, get a password hash, and then pop back out. The challenge was to turn this into something usable in OS X, so they decided to set the app up with a menu bar icon as a primary user interface element. Users would be able to drag a URL to that icon, then have the app open up with the URL pre-populated and password hash visible. Their usual modus operandi is to draw out ideas for the UI on paper, create a wireframe, then make a mockup and finally look at style guides for additional tweaks.
For the Mac OS X version, any assets required (buttons, gradient fill backgrounds, etc.) were created by the team in Photoshop, and then the rest of the layout work was done in Interface Builder. The two versions were similar in appearance, although the Mac OS X edition has a list view on the right side with recently-used URLs. The OS X app was able to make use of the smaller "delete x" for listed URLs rather than the large red delete button used in iOS, simply because of the pointing accuracy available with a mouse or simliar pointing device.
Kyle's portion of the talk got much deeper into the actual design and coding. The first, major difference is that there are many more objects available in Interface Builder for Mac (128 or so) compared to iOS (33 or so), and that Mac OS X apps must take into account other elements such as menus and fonts. Richter and Wiskus started with a shell, and then looked at the code for the app, which needs to operate identically on any machine and on the Web. The end result of their work was a Mac OS X app that they plan on making available for free in the Mac App Store.
Marcus Zarra gave a fascinating talk about implementing high performance importing using Core Data. Marcus is one of the authors at the Cocoa Is My Girlfriend blog, and he probably knows more about Core Data than anyone outside of Apple. The gist of Zarra's presentation was that with Mac OS X 10.6 and newer Mac hardware, it's possible to make use of multiple cores, queueing, and other methods to take advantage of fast networks pulling down large quantities of data. One developer I talked with admitted to me after Zarra's presentation that several of the tips provided during the talk were going to have a huge impact on an app he is writing, as he'll be able to speed up the importation of data from an online data source.
Saul Mora's presentation on MacRuby gave many devs at the conference a reason to look at this development language, particularly since Ruby and Objective-C are relatively similar, dynamic, and flexible. Mora provided a history of the similarities to Objective-C, discussed how to write a Cocoa UI application with MacRuby and HotCocoa, and pounded home the point that devs can leverage their skills in Objective-C and Cocoa with MacRuby.
The future of selling Mac apps was the point of the next presentation by Michael Simmons of Flexibits. Simmons began by looking at the past and present of selling apps, which primarily consists of working with a proven publisher, getting retail boxes into stores, building your own web store and using an eCommerce partner. For the future, Simmons sees the Mac App Store and independent web stores as the major distribution methods for Mac apps, with retail boxes going away. You can already see this trend taking place; Apple Stores now use a fraction of the space that they used to for selling Mac software.
Simmons enumerated what we currently know about the Mac App Store -- private APIs will be disallowed; previews, trials, and promos can be downloaded from your own website, but not from the Mac App Store, and crossgrades or upgrades will be disallowed as well. In fact, it's pretty unlikely (from experience with the iOS App Store) that all Mac apps will be allowed into the Mac App Store.
What does this mean? As Simmons explained, Mac devs who have their own online stores today should keep them. FastSpring and other eCommerce partners take anywhere from 8.9 to 11.9 percent, much less than the 30 percent that Apple will keep from each transaction. The Mac App Store will, however, be the best user experience for obtaining new software. As with the existing App Store, it may be impossible or very difficult for devs to get their Mac apps noticed in the huge array of applications on sale.
Simmons also noted that the best formula for Mac App Store success will be to continue to make great apps, listen to your customer, and market the applications. Making a demo app available on your own website that then allows the customer to buy the app from within the demo is, and will continue to be, a way to Mac app sales success. Simmons foresees issues and customer confusion between Apple and developer policies on sales, support, and returns.
Regretfully, I had to miss the last three presentations of the day, which discussed the evolution of developers from hackers to "micro-ISVs," dived even deeper into Core Data, and finished up with demos and discussions of two upcoming open source frameworks that will provide even more networking power to future Mac apps.
The event was topped off with a road trip to a local Denver "landmark" known as Casa Bonita, which made for some fascinating Twitter reading on Saturday night and into the early hours of Sunday morning. Given the success of the first 360MacDev, it's likely that we'll see future conferences popping up around the country. Many thanks to John Wilker and the crew from 360Conferences for putting on a great inaugural event.