Apple iPhone
Raycomm are a UK based, custom software and electronics design and development service
company creating bespoke electronic products, mobile device software applications, backend
web server software and e-commerce database software.
Apple's iPhone is a global success story. Where
as its initial appeal lay in its attractive design, intuitive interface and
well-considered features, it is now its capability as a platform that is driving adoption.
The iPhone’s OS is based on Mac OS X, leveraging Apple’s massive development experience and
utilising the rich, object-oriented frameworks that underpin the desktop OS. For the first
time, a mobile device is offering comparable developmental possibilities to a PC.
At the iPhone’s core is a highly customised BSD Unix environment. Although stripped down
and optimised, it nevertheless has many of the system libraries and facilities like the
standard C libraries, POSIX threads and BSD sockets found in the
typical UNIX implementation. On top of this (and providing an abstraction layer to it) are
the core services. These include:
- Core Foundation, providing a range
of vital services to applications including file handling,
low-level data types, basic networking, memory management (although
it does not support garbage collection for performance reasons),
localisation support and control of the application run loop.
- CFNetwork, which provides a range of networking services and protocols (e.g. sockets,
HTTP, FTP, bonjour, DNS). The iPhone now features both Wi-Fi and 3G connectivity.
- Database and XML support.
- Security framework, which provides certificate and key
management , as well as encryption services
Next is the media layer. Until quite recently, the presentation and manipulation of
content was limited with mobile devices, but this is not the case with the iPhone. It offers
a wide range of services for dealing with media:
- Core Graphics (aka Quartz 2D) is the main 2D drawing and vector
engine. As the name implies, it is used whenever 2D rendering is required.
- Core Animation is a 2D compositing engine that allows for implicit animation. Many of the
standard user interface controls have integrated animation behaviours (e.g. cover flow). The
application is developed by specifying start and end states, while the framework takes care
of the animated transition between them.
- OpenGL|ES is the mobile version of the high performance 3D graphics framework. It allows
extremely fine grained control of the iPhone’s frame buffer.
- Core audio is the basic sound engine, used for playing and recording audio streams.
- Audio Toolbox provides basic system level audio support, like the triggering of short
sounds in response to events, as well as the iPhone’s vibration capabilities.
- OpenAL is the 3D spatial audio framework that allows for the positioning of sounds during
playback.
- MediaPlayer is the framework that governs video playback and provides the numerous
compression codecs required for such.
Additional graphics support in the form of the user interface controls and drawing
functions is also built into the final layer: the Cocoa Touch application environment.
The defining feature of the iPhone’s user interface is, of course, the fact that it is touch
based and that it will respond to multiple simultaneous touches and events based on the
multi-touch model (both position and direction). Cocoa Touch permits a series of touches to
be recognized as a single group (or gesture).
The iPhone also features three sensitive accelerometers (one for each primary axis) that
allow the iPhone’s orientation and movement to be detected and therefore used as part of the
user interface to an application.
Cocoa Touch also provides access to Core Location, the framework governing location-based
services, including GPS. Apple places great store on the consistency of both appearance and
functionality of applications and by providing common controls and uniform access to
system-wide services (like the camera and the accelerometer, as well as contacts, photos and
web content)
One important distinction about iPhone
development that needs to be mentioned is that much of it (the entire Cocoa Touch API, in
fact) is based on a language called Objective C. While this is a superset of C and can
therefore call low level C-based frameworks directly, it features a number of key additional
language facilities and paradigms (based on proven design patterns like
model-view-controller and delegation).
Project examples coming soon...
For a no-obligation discussion with one of our senior consultants on your project needs:
- Call us on +44 (0) 1275 847553
- or fill in our
Enquiry Form
- or email us using the link at the top of the page
We look forward to hearing from you.
|