iTouch/iPhone SDK A study using Cognitive Dimensions
The Good
Interface Builder
Can layout elements (visibility & juxtaposability) Can sketch out UI without code (provisionality) UI Design and object modeling are separate (no premature commitments)
Interface Builder Closeness of mapping Widget selections are easy to make. Icons look like iPhone widgets Readable names instead of NSScrollView Short and long docs
Interface Builder Hidden Dependencies are easy to see
Interface Builder Hidden Dependencies are easy to see
Interface Builder Hidden Dependencies are easy to see Hidden Dependencies are easy to see. (See File’s Owner)
iPhone Simulator Progressive Evaluation Layout widgets first Add handlers and actions later. Supports some multi-touch
The Bad
Premature Commitment Need to decide your application type when creating a new project
Memory Management Hard mental operations Only 64 MB of memory, view are hogs No garbage collection Have memory leak, get killed Consistency alloc, dealloc, retain
Headers and Implementation
Separate Headers and Implementation Hidden Consistencies name & builds getters and setters. Still need to deallocate.
Reflections on CD Hard to know real problems without experience of use. (viscosity) iPhone programming seems easy. Easy to find good things. Hard to find bad things Notation is mostly visual. More depth needed to understand APIs.
Otherwise lots of fun!