21
Building a Modern Mac OS X App Scott Stevenson

Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

  • Upload
    tranbao

  • View
    220

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Building a Modern Mac OS X AppScott Stevenson

Page 2: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

The Deal

80% Solution

Point you in the right direction

Give some practical starting points

You research as it applies to your app

Some sample code to work with

Page 3: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

The Basics

Page 4: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Layers of a Mac OS X App

data

architecture

behavior

appearance

Page 5: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

The Basics

Take advantage of the frameworks: 82!

Good UI is essential, not a “nice to have”

Use highest-possible abstractions

In features, less is more

Essential features out in open

Secondary features discoverable

Be gutsy

Page 6: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Specific Examples

Objective-C Frameworks

Core Data

Cocoa Bindings

QuickTime Kit

PDF Kit

WebKit

Core Image

Page 7: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Design

User Experience can be the tiebreaker

A fresh approach can redefine a category

Good design exposes functionality

Functionality becomes part of workflow

Establish a long-term relationship

Page 8: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Little Things

Page 9: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Leopard

Page 10: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Key Points for Leopard

Objective-C 2.0

View Improvements

Model and Controller Improvements

User Interface

System Integration: Services, Artwork

New and Updated Tools

Future: 64-bit and High Resolution

Page 11: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Objective-C 2.0

Properties

Dot Syntax

Loops

Synthesized Properties

Garbage Collection

Page 12: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

View Improvements

Layer Backing

See if new views fit your needs

PDF Kit

ImageKit

Page 13: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Model Improvements

Data Migration

NSRuleEditor + NSPredicateEditor

NSAtomicStore

Fetch Requests

NSManagedObjects with @dynamic

Page 14: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

User Interface

Drawers are gone. Source Lists

Unified Look: contentBorderThickness

Subtle animations. Use carefully

New buttons styles: Simple Gradients

Fuzzy: Less rigid look

Page 15: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

System Integration

Calendar Store

QuickLook

Spotlight

Large Icons

iChat Theatre

Page 16: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Standard Artwork

+[NSImage imageNamed]

NSImageNameAddTemplate

NSImageNameRemoveTemplate

NSImageNameStopProgressTemplate

NSImageNameBonjour

NSImageNameDotMac

NSImageNameComputer

NSImageNameFolderSmart

NSImageNameNetwork

Page 17: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

New and Updated Tools

Xcode

Refactoring

Snapshots

IB3 Integration

Interface Builder 3: Complete Revamp

Dashcode

Instruments

Page 18: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Future: 64-bit and High Resolution

NSInteger

NSUInteger

CGFloat

Carbon UI

QuickTime

Page 19: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Wrap Up

Page 20: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Take Home Points

Use the frameworks

Design is not an afterthought

Start with highest-level abstractions

Start with something simple

Be gutsy and have fun

Page 21: Building a Modern Mac OS X App - Theocacaotheocacao.com/downloads/Building-a-Modern-Mac-OS-X-App.pdfSpecific Examples Objective-C Frameworks Core Data Cocoa Bindings QuickTime Kit

Contact

http://theocacao.com/