What's different in Coding for the iPhone
Several things about the iPhone environment are different from a traditional personal computer environment.
Many of these also apply to Android.
- Multi-tasking model is different from on a PC.
- Only one Window at a time.
- Limited Access - only can touch file system that was created for your app. Can't access low numbered network ports. Etc.
- Your application needs to be snappier -- you need to get things loaded and displayed as quickly as possible. Pressing the home button
should exit your app as quick as possible.
- Limited Screen size. 480 x 320 pixels (Quarter VGA) on 3GS and earlier models is a lot less than most desktops. Even for iPhone 4, which has
a resolution of 960 x 640, the physical dimensions of the screen are much smaller so you need to do things different than on a Desktop.
- Limited Resources: ARM Processor 412 MHz with 128MB RAM for iPhone 3G and earlier; 256MB, ARM Processor 620 MHz for iPhone 3GS (often a lot of which is used by the OS); A4 Processor 1GHz with 512 MB RAM for iPhone 4. Still, iPhone often needs to do graphics heavy stuff. This compares with multi-core processors running at a few GHz and gigabytes of RAM for most modern Desktops.
- Some things in Cocoa like garbage collection are not in Cocoa Touch.
- iPhone does support multi-touch events, locations, and a built-in accelerometer.