The iPhone is an Internet-enabled multimedia mobile phone designed and
marketed by Apple Inc. It has a multi-touch screen with virtual keyboard and
buttons. The iPhone's functions include those of a camera phone, portable
media player (iPod), in addition to text messaging, and visual voicemail. It also
offers Internet services including e-mail, web browsing, and local Wi-Fi
connectivity. It is a quad-band mobile phone that uses the GSM standard, and
hence has international capability. It supports the EDGE data technology.
iPhone OS is the platform used to develop applications for iPhone and iPod
touch devices. iPhone OS complements the existing support for web applications by
providing an environment for running applications natively on a device. The
applications you create live side by side with the system applications, such as the
Phone, iPod, Stocks, and Weather applications and are built using most of the same Phone, iPod, Stocks, and Weather applications and are built using most of the same
frameworks. Native applications provide a natural performance advantage over web
applications that can be used to create more advanced applications such as games.
They also let you interact with features that might not be available in a web-based
application, such as the accelerometers.
The Core OS and Core Services layers contain the fundamental
interfaces for iPhone OS, including those used for accessing files, low-level
data types, network sockets, and so on. These interfaces are mostly C-based
and include technologies such as Core Foundation, CFNetwork, SQLite, and
access to POSIX threads and UNIX sockets among others.
The Media layer contains the fundamental technologies used to support 2D
and 3D drawing, audio, and video. This layer includes the C-based technologies OpenGL
ES, Quartz, and Core Audio. It also contains Core Animation, which is an advanced
Objective-C based animation engine.
In the Cocoa Touch layer, most of the technologies use Objective-C. The
frameworks at these layers provide the fundamental infrastructure used by your
application.application.
The Foundation framework provides object-oriented support for collections,
file management, network operations, and more. The UIKit framework provides the
visual infrastructure for your application, including classes for windows, views, controls,
and the controllers that manage those objects. Other frameworks at this level give you
access to the user’s contact and photo information and to the accelerometers and
other hardware features of the device.
The main tools you use to manage your iPhone source files, build them, and run
them are Xcode, Interface Builder and Instruments.
Xcode is an integrated development environment (IDE) that provides the main
work environment for your project. You use this program daily for writing,
compiling, running, and debugging your code. It has all of the features you would
expect in an advanced code development application and many more. Among
the main features are the following:
� A project management system for defining software products
� A code editing environment that includes features such as syntax coloring,
code completion, and symbol indexingcode completion, and symbol indexing
� An advanced documentation window for viewing and searching iPhone OS
documentation
� An advanced build system with dependency checking and build rule
evaluation
� Integrated source-level debugging using GDB
� Support for running iPhone applications in a simulator or on a device
Interface Builder is a tool you use in conjunction with Xcode to reduce the
amount of time it takes to build and test your application’s user interface.
Interface Builder is a graphical application that you use to assemble your
application’s interface visually. From the Interface Builder editing environment,
you drag and drop standard system components (such as views and controls)
into a window, arrange them, and configure their attributes, all in a matter of
seconds. The resulting interface reflects both the visual appearance and the
object relationships that will exist in your application at runtime. All of this object relationships that will exist in your application at runtime. All of this
information is then saved in a special resource file that you load in your
application when you need that particular interface.
Note: Interface Builder is not in the early beta of the SDK. It will be available in
the final release of the product.
Instruments is an advanced debugging and performance analysis
application that you use to gather information about the runtime
behavior of your application once it is built. Instruments lets you run
your application in the simulator or on a device and track the amount of
memory you are using, look for leaks, and find out other information
about your application’s activity. You can also compare the data you about your application’s activity. You can also compare the data you
gather from several different runs to track your application’s
improvement.
� iPhone Application
An iPhone Application, which is an application you develop using the
iPhone SDK to run natively on iPhone OS–based devices.
� Web-only Content
Web-only Content, includingweb applications, which arewebsites that
behave like built-in iPhone applications.behave like built-in iPhone applications.
� Hybrid Application
A Hybrid Application, which is an iPhone application that provides
access toweb content primarily through a web-content viewing area,
but includes some iPhone OS user interface elements.
Productivity Applications
In a productivity application, the focus is on the organization and
manipulation of detailed information. Information in productivity applications is
usually text-based, but may also be image based if the content is more visually
oriented. To facilitate the navigation of the information, productivity applications
tend to be use multiple screens and make use of system controls to handle the
navigation from screen to screen. The address book is an example of a
productivity applicationproductivity application
Utility Applications
Utility applications perform a targeted task that requires relatively little user
input. Users open a utility application to see a quick summary of information or to
perform a simple task on a small number of objects. The interface for a utility
application should be a visually appealing and uncluttered to make it easier to spot the
needed information quickly. The Weather application is an example of a utility
application.
Immersive Applications
Immersive applications offer a full-screen, visually rich environment that’s
focused on the content and the user’s experience with that content. This style of
application is most commonly used for implementing games and multimedia-centric
applications. Because they are graphics oriented, immersive applications often present
custom interfaces, relying less on standard system views and controls.
Tap To press or select a control or item (analogous to a
single mouse click).
Double tap To zoom in and center a block of content or an image.
To zoom out (if already zoomed in).
Flick To scroll or pan quickly.
Drag To scroll or pan.
Swipe In a table-view row to reveal the Delete button.
Pinch open To zoom in.
Pinch close To zoom out.
Touch and hold In editable text to display a magnified view for cursor
positioning.
Two-finger scroll To scroll up or down within a content area.
The structure of iPhone applications is based on the Model-View-
Controller (MVC) design pattern because it benefits object-oriented programs in
several ways. MVC–based programs tend to be more adaptable to changing
requirements—in other words, they are more easily extensible than programs that
do not use MVC. Furthermore, the objects in these programs tend to be more
reusable and their interfaces tend to be better defined.
In the MVC design pattern, the model layer consists of objects that
represent the data your application manages. The objects in this layer
should be organized in the way that makes the most sense for the data.
External interactions with model objects occur through a well-defined set
of interfaces, whose job is to ensure the integrity of the underlying data at
all times.
The view layer defines the presentation format and appearance
of the application. This layer consists of your application’s windows, views,
and controls. The views can be standard system views or custom views you
create. You configure these views to display the data from your model create. You configure these views to display the data from your model
objects in an appropriate way. In addition, your view objects need to
generate notifications in response to events and user interactions with that
data.
The controller layer acts as the bridge between the model and view layers.
It receives the notifications generated by the view layer and uses them to
make the corresponding changes in the data model. Similarly, if the data in
the data layer changes for other reasons (perhaps because of some
internal computation loop), it notifies an appropriate controller object,
which then updates the views.
The Objective-C language is a simple computer language designed to
enable sophisticated object-oriented programming.
Objective-C extends the standard ANSI C language by providing syntax for
defining classes, methods, and properties, as well as other constructs that promote
dynamic extension of classes. The class syntax and design are based mostly on
Smalltalk, one of the first object-oriented programming languages.
Many of the traditional object-oriented concepts, such as encapsulation,
inheritance, and polymorphism, are all present in Objective-C.
Objective-C provides support for Strings (extensively) , classes, properties,
protocols and delegates.protocols and delegates.
� Compact Screen Size(480 x 320 )
� Memory is Not Unlimited
� One Window at a Time
� One Application at a Time� One Application at a Time
� Minimal User Help