building a modern mac os x app

21
Building a Modern Mac OS X App Scott Stevenson

Upload: others

Post on 03-Feb-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building a Modern Mac OS X App

Building a Modern Mac OS X AppScott Stevenson

Page 2: Building a Modern Mac OS X App

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

The Basics

Page 4: Building a Modern Mac OS X App

Layers of a Mac OS X App

data

architecture

behavior

appearance

Page 5: Building a Modern Mac OS X App

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

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

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

Little Things

Page 9: Building a Modern Mac OS X App

Leopard

Page 10: Building a Modern Mac OS X App

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

Objective-C 2.0

Properties

Dot Syntax

Loops

Synthesized Properties

Garbage Collection

Page 12: Building a Modern Mac OS X App

View Improvements

Layer Backing

See if new views fit your needs

PDF Kit

ImageKit

Page 13: Building a Modern Mac OS X App

Model Improvements

Data Migration

NSRuleEditor + NSPredicateEditor

NSAtomicStore

Fetch Requests

NSManagedObjects with @dynamic

Page 14: Building a Modern Mac OS X App

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

System Integration

Calendar Store

QuickLook

Spotlight

Large Icons

iChat Theatre

Page 16: Building a Modern Mac OS X App

Standard Artwork

+[NSImage imageNamed]

NSImageNameAddTemplate

NSImageNameRemoveTemplate

NSImageNameStopProgressTemplate

NSImageNameBonjour

NSImageNameDotMac

NSImageNameComputer

NSImageNameFolderSmart

NSImageNameNetwork

Page 17: Building a Modern Mac OS X App

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

Future: 64-bit and High Resolution

NSInteger

NSUInteger

CGFloat

Carbon UI

QuickTime

Page 19: Building a Modern Mac OS X App

Wrap Up

Page 20: Building a Modern Mac OS X App

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

Contact

http://theocacao.com/