038 iPhreaks Show – OS X

    0
    89

    Panel

    Jaim Zuber (twitter Sharp Five Software)
    Ben Scheirman (twitter github blog NSSreencast)
    Andrew Madsen (twitter github blog)
    Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up)

    Discussion
    00:45 – iOS vs OS X

    UIViewController
    NSViewController

    06:09 – NSWindowController
    08:18 – Layered Views
    09:48 – Bindings

    Cocoa Programming for Mac OS X by Aaron Hillegass
    Debugging

    14:51 – Navigation

    NSPathView
    NSTableView
    NSScrollView
    NSCell

    18:52 – Auto Layout
    19:44 – Carbon
    22:32 – Objective-C
    24:44 – NS Classes

    Next Step

    25:54 – Customization

    The Hit List
    Things
    NSOutlineView
    NSSplitView
    NSTabView

    30:12 – Mac vs iOS Development

    Picks

    Mastering Modern Payments Using Stripe with Rails (Ben)
    The Doomsday Key: A Sigma Force Novel by James Rollins (Ben)
    The Art of the Screenshake (Ben)
    objc.io Issue #7: Communication Patterns (Jaim)
    The Snow Shark (Jaim)
    FastSpring (Andrew)
    objc-run (Andrew)
    Andrew's CocoaSlopes2013 Slides (Andrew)
    Disneyland (Chuck)
    New Media Expo (Chuck)

    Next Week
    Subscription APIs for Recurring Revenue with Manton Reece
    Transcript
    CHUCK: I’ll turn this podcast right around.

    CHUCK: Hey everybody and welcome to episode 38 of the iPhreaks Show. This week on our panel we have Jaim Zuber.

    JAIM: It’s 10 below, my car won’t start, and I'm not even mad.

    CHUCK: Ben Scheirman.

    BEN: It’s 35° and I'm also cold, but not quite as cold. [Chuckles]

    CHUCK: Andrew Madsen.

    ANDREW: 25° in Salt Lake City.

    CHUCK: I'm Charles Max Wood from DevChat.tv. Last week it was like 70-something degrees where I was at, so, very nice. This week we’re gonna be talking to Andrew; he’s kind of our guest, I guess. We’re gonna be talking about OSX programming. It’s kind of interesting after learning some of the techniques and tools for building things for iOS, I haven’t really looked at what's different with OSX. Do you want to kind of get us started on some of the things we have to know or do differently?

    ANDREW: Sure. Well I think the first thing to know is that iOS and OSX are sort of siblings, or you might even say that iOS is OSX’s kid, but iOS was obviously Apple’s chance to sort of do-over things that they wanted to do differently without the whole legacy baggage that kept them from doing that on OSX. In many ways, iOS is the more modern of the two – I wouldn’t say ‘operating systems,’ but the APIs are certainly more modern in a lot of places. There are things on OSX that are just more difficult if your coming from an iOS background you're sometimes left thinking, “Man, if I were in iOS this would be super easy, but it’s not so easy on OSX.” Fortunately there are also a few places where the opposite is true. OSX still makes things easier than they are on iOS. I'm not exactly sure where to start ‘cause there are quite a few differences.

    BEN: How about just the, maybe the [inaudible] example. The first thing I notice when I create a new Mac app is I'm used to just getting a view controller for free and that is kind of absent. You got a .NIB and that gives you a main window but there's really nothing else it gives you, right?

    ANDREW: Right. Well that's actually a great place to start. So on iOS, if you’ve done iOS programming, you know that UIViewControllers are sort of like the main class, almost, in iOS. Every single time you have a view onscreen, it has a UIViewController controlling it. On OSX, there is actually an NSViewController class, but that was introduced in 10.5, so relatively recently in the history of OSX, and what that means is that you can write an entire app without using NSViewController. It’s not sort of the vital class the UIViewController is on iOS, and that sort of gives you a lot more flexibility in terms of how you structure your application, but these days I've actually started using NSViewController more like UIViewControllers used on iOS.