What's different in Coding for the iPhone/iPad
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/4s, which has
a resolution of 960 x 640, or the 5/5s, which has a resolution of 1136 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, dual-core A5 Processor 1GHz 512 MB RAM for the iPhone 4S; A6 Processor 1.3 GHz, 1GB RAM for iPhone 5; A7 64-bit Processor 1.3GHz 1GB RAM for the iPhone 5s. Still, iPhone often needs to do graphics heavy stuff. This compares with quad or more-core processors running at a few GHz and gigabytes of RAM for most modern Desktops.
- The iPad has larger dimensions (9in), but still small, and either an A4 (iPad) or A5 (iPad 2) processor A6X (iPad 4), A7 (iPad Air). 256 or 512 MB RAM or 1Gb (since 3rd gen).
- Some things in Cocoa like garbage collection are not in Cocoa Touch.
- iPhone does support multi-touch events, locations, and a built-in accelerometer.