You are on page 1of 31

SEMINAR REPORT ON IOS4

ABSTRACT:
iOS4 is designed for the mobile phone environment especially for
iphone 4. It addresses constraints of mobile phones by providing a
framework to handle low memory situations, a power management
model, and a rich software layer implementing industry standards for
communications, telephony and data rendering.
the biggest change by the introduction of ios4 is the ability to keep
apps running in limited form in the background. The feature has been
around on other smartphone platforms for years, but Apple has until
now been very resistant to the feature for its effects on battery life and
performance: on mobile processors, allowing an app full privileges is
still a drag on battery life and speed.
with The iPhone 3G will support most iOS 4 features except

multitasking and home screen backgrounds.

1
CONTENTS

1. INTRODUCTION ................................................................................01

2. ABSTRACTION LAYERS .................................................................. 08

3. KERNEL ............................................................................................... 14

4. MEMORY MANAGEMENT ..............................................................16

5. APPLICATION DEVELOPMENT ................................................... 18

6. APPLICATION LIFECYCLE ………............................................... 20

7. FEATURES .......................................................................................... 21

8. KNOWN ISSUES RESOLVED ...........................................................

9. SOFTWARE UPDATE…………………………………………………

10. ADVANTAGE AND DISADVANTAGES .........................................

11. COMPARISON ………………………………………………………..

12. CONCLUSION ....................................................................................

13. REFERENCES ................................................................................... 33

2
INTRODUCTION

iOS4 is Apple's mobile operating system. with the release of ios4


apple marks a significant and welcome jump in the iPhone's evolution.
The user interface of iOS4 is based on the concept of direct
manipulation, using multi-touch gestures. Interface control elements
consist of sliders, switches, and buttons. The response to user input is
immediate and provides a fluid interface. Interaction with the OS
includes gestures such as swiping, tapping, pinching, and reverse
pinching. Internal accelerometers are used by some applications to
respond to shaking the device or rotating it in three
dimensions (one common result is switching from portrait to
landscape mode). iOS4 is derived from Mac OS X, with which it
shares the Darwin foundation, and is therefore a Unix-like operating
system by nature.
iOS4 brings a handful of crucial features--like multitasking and a
unified e-mail in-box--that Apple's products have lacked for far too
long (three years too long, to be exact).
Ios4 is providing good platform for software developers to build
mobile application. iOS SDK 4 provides support for developing
iPhone applications and includes the complete set of Xcode tools,
compilers, and frameworks for creating applications for iOS and Mac
OS X. These tools include the Xcode IDE and the Instruments
analysis tool among many others.

3
Company / developer Apple Inc.

Programmed in C, C++, Objective-C

OS family Mac OS X/Unix-like

Working state Current

Initial release June 21, 2010

Available language(s) Multilingual

Supported platforms ARM (iPhone, iPod Touch and iPad)

Kernel type Hybrid (Darwin)

Default user interface Cocoa Touch (Multi-touch, GUI)

License Proprietary EULA except for open source


components

Official website iOS Dev Center

ABSTRACTION LAYERS

4
An abstraction layer (or abstraction level) is a way of hiding the
implementation details of a particular set of functionality. In Ios4,
there are four abstraction layers: the Core OS layer, the Core Services
layer, the Media layer, and the Cocoa Touch layer.

Core services layer:


Core Services are a set of Mac OS X application programming
interfaces that architecturally are underneath Carbon, Cocoa and
Cocoa Touch. They include CFNetwork, CarbonCore, OSServices,
and WebServicesCore

CFNetwork:
CFNetwork is a companion to CoreFoundation, and provides
key networking features to applications. A stack overflow exists in
CFNetwork's URL handling code. Visiting a maliciously crafted
website may lead to an unexpected application termination or arbitrary
code execution. This issue is addressed through improved memory
handling.
CarbonCore:
The Media Layer:
Media layer is responsible for playing various media files. In
iOS 4 , the MPMoviePlayerController class now defaults to
share the application's audio session for audio playback and related
audio behaviors. This allows the movie player's audio to mix with the
rest of the application's audio, as well as to conform to the behaviors
of the application audio session's audio category (such as mixing with

5
other applications' audio and/or obeying the Silent Switch). In iOS
3.1.3 and earlier, this class always uses a system-supplied audio
session.
Cocoa touch Layer :
Cocoa Touch is an API for building software programs to run
on the iPhone, iPod Touch, and iPad from Apple Inc. Cocoa Touch is
based on the Mac OS X Coco API toolset and, like it, is primarily
written in the Objective-C language. The Cocoa Touch frameworks
that drive iOS4 apps were built with a special focus on touch-based
interfaces and optimization. The unique interface of iOS4 means that
Cocoa Touch has a unique design to match. Using UIKit you have
access to the special GUI controls, buttons, and full-screen views on
iOS4. You also get to control your application with the accelerometer
and the multi-touch gesture.
Much of Cocoa Touch is implemented in Objective-C, an
object-oriented language that is compiled to run at incredible speed,
yet employs a truly dynamic runtime making it uniquely flexible.
Because Objective-C is a superset of C, it is easy to mix C and even
C++ into your Cocoa Touch applications. As your application runs,
the Objective-C runtime instantiates objects based on executing logic
— not just in ways defined during compilation. For example, a
running Objective-C application can load an interface (a nib file
created by Interface Builder), connect the Cocoa objects in the
interface to your application code, then run the correct method once
the UI button is pressed. No recompiling is necessary.
In addition to UIKit, the Cocoa Touch collection of frameworks
includes everything needed to create world-class iOS4 applications,

6
from 3D graphics, to professional audio, to networking, and even
special device access APIs to control the camera, or get location from
the GPS hardware. Cocoa Touch includes powerful Objective-C
frameworks that perform entire tasks in only a few lines of code, while
providing the foundational C-language APIs to give direct access to
the system when needed. Examples of those frameworks include:

Core Animation

Use Core Animation to create rich user experiences from an easy


programming model based on compositing independent layers of
graphics.

Core Audio

Core Audio is the professional-grade technology for playing,


processing and recording audio, making it easy to add powerful audio
features to your application.

Core Data

Core Data provides an object-oriented data management solution that


is easy to use and understand, yet is built to handle the data model
needs of any application, large or small.

7
Kernel
Ios4 relies on Darwin(kernel) for
Memory Management

If you don’t follow some solid principles for memory management it’s
easy to get lazy, and then you can quickly find yourself getting stuck
for hours checking every retain and release statement.

Even worse is if you’re going through someone else’s code, and they
messed things up. Going through to fix memory management in
someone else’s code can take forever. Clang is a tool which works
well with an interface such as this one: Clang GUI For Mac OS X.
You can also use SHIFT-CMD-A (build & analyze) in Xcode to bring
up clang alerts. Clang will notify you of any reference count
problems, and syntactical mistakes that could lead to messed up
memory management. Even with Clang you can still run into
problems.

Fortunately, Brent Simmon has written a great easy to follow guide


on some simple principles to follow to alleviate memory problems
before they start: How I Manage Memory. It’s a good read and will
help you to eliminate problems before they start.

8
Application Development
With the iOS SDK 4, you can get started developing your iOS
application for iPad, iPhone, and iPod touch today. Access the iOS
Dev Center for a wealth of resources including videos, sample code,
technical documentation, Coding How-To’s, and more.
Development tools in iOS SDK 4

Xcode

Complete development environment provides project management, a


powerful source editor, and a graphical debugger.

iPhone Simulator

Run, test, and debug your application locally on your Mac using a
simulated iPhone and iPad.

Instruments

Collect, display, and compare performance data graphically in real-


time to optimize your application.

Interface Builder

Interface Builder makes designing a user interface as easy as drag and


drop.

Development Resources

Apple Developer Forums

Post iOS SDK development topics and questions for an open


discussion with other iOS developers and Apple engineers.

9
Getting Started Videos & Documents

Cover a range of topics, from tools and frameworks to development


best-practices and design methods.

iOS Reference Library

A rich collection of documentation, guides, and articles categorized so


you can quickly find the information you’re looking for.

Coding Resources

Inspire your own development with a library of sample code and


Coding How-To’s. Use these examples to add new functionality or to
enhance your application’s current design.

Application Life Cycle

iOS4 supports applications execution in background however till


iPhone OS 3.x (iOS 3.x) background execution of was not supported.

Because of Background execution functionality, there is major change


in the application’s lifecycle on iOS4. While designing an application
for iOS4, handling of new transitional states must be taken in
consideration.

Application Life Cycle on iOS

The application life cycle constitutes the sequence of events that occurs
between the launch and termination of application. In iOS, the user
launches application by tapping its icon on the Home screen. Shortly
after the tap occurs,

System displays some transitional graphics

Proceeds to launch your application by calling its main function.

From this point on, the bulk of the initialization work is handed over
to UIKit, which loads the application’s user interface and start its
event loop.

10
There is predefined sequence of event that occurs from the time of
application start up to the time it quits.

At key points in the application’s life, UIKit sends messages to the


Third Party application's delegate object to let it know what is
happening.

In iOS 4 and later, Third Party Applications now remain resident in


memory by default after they are quit. This means that subsequent
launches of the application may not always involve starting the
application from scratch. Hence applications designed on iOS4 should
be able to handle several different state transitions.

Here is depiction of events on iOS4

Till iOS 3, At the time of quit message application use to be


terminated, here is the depiction of Applications life cycle till iOS 3

11
There were only two possible states of third party application in iOS 3

Active

Not running

But because of background applications support in iOS 4, following


are the possible state of any third party application

Not running: The application has not been launched

Inactive: The application is running in background but not receiving


events.

Active: The application is running in foreground and is receiving


events.

Background: Most applications enter this state briefly on their way to


being suspended. However, an application that requests extra

12
execution time may remain in this state for a period of time. In
addition, an application being launched directly into the background
enters this state instead of the inactive state.

Suspended: The application is in the background but is not executing


code. The system moves application to this state automatically and at
appropriate times.
While suspended, an application is essentially freeze-dried in its
current state and does not execute any code. During low-memory
conditions, the system purges suspended applications without notice
to make more space for the foreground application.

After knowing these facts, there could be some obvious questions like

How a Background iOS Application gets resume in Foreground?

When the user launches an application that currently resides in the


background, the system moves it to the inactive state and then to the
active state. This results in calls to the following methods of the
application delegate,

applicationWillEnterForeground

applicationDidBecomeActive

How an iOS Application can opt out of background execution?

An application can explicitly opt out of the background execution


model by adding the UIApplication Exits On Suspend key to
application’s Info.plist file and setting its value to YES. When an
application opts out, it cycles between the not running, inactive, and
active states and never enters the background or suspended states.

13
Opting out of background execution is strongly discouraged but may
be preferable under certain conditions.

How an iOS Application responds to interrupts like SMS, Incoming


Call, Calendar etc?

When the Active application is interrupted by an incoming phone call,


SMS, or calendar notification, the application moves to the inactive
state temporarily.

It remains in this state until the user decides whether to accept or


ignore the interruption.

If the user ignores the interruption, the application is reactivated

If the user accepts the interruption, the application moves into the
suspended state.

14
FEATURE

 Multitasking:
Apple's multitasking works a little differently than on other
smartphones. Instead of having all device resources available to every
running app, iOS 4 lets only seven app services run in the background.
These include audio (you'll be able to play Pandora radio, for
example), VoIP services like Skype, GPS/location for apps like
TomTom, push notifications, local notifications (those that don't to
have to go through a server), task completion (users get an alert when
a process is finished), and fast app switching (apps essentially
hibernate not to use the CPU). According to Apple, this arrangement
will have less of a drain on resources like battery life and memory
than if it gave developers free rein. Also, pausing most background
apps will free the system from having to juggle resources and kill
stalled applications.

• Audio: you can now listen to streaming music from apps, like
Pandora or newscasts through the NPR app, while doing other
activities on your phone. Previously, you would have to quit out
of the app (and therefore stop your music stream) if you wanted
to respond to an SMS or read your e-mail, and now that's no
longer the case. Hallelujah.
• VoIP: similarly, you can carry on Voice Over IP calls on
services like Skype without having to quit the app if you need to
perform other tasks.
• Location: apps that need to poll your location, such as GPS and
direction apps, will be able to do so in the background. No
longer will you need to keep the app in the foreground just so it
can keep track of where you are.
• Local notifications: third-party apps no longer have to rely
solely on push notifications if they want to alert you of

15
something on your phone. If you have an alert set in, say, one of
Omni's applications, it can ping you when the time comes
instead of having to go through a convoluted series of Internet
tubes to get to you. This, of course, reduces your reliance on an
Internet connection to get certain types of alerts and helps cut
down on overall wireless bandwidth.
• Complete tasks: if you start a task in an application and then
switch to another one (such as downloading a new map in your
favorite game), it can now complete the task in the background
instead of forcing you to sit there and wait on it.
• Fast app switching: this is basically "pausing" an app where it
is, which allows you to quickly switch away from it and then
switch back, picking up where you left off.

Virtual Keyboard

Instead of just hitting the globe key to cycle through languages on


the virtual keyboard, you can now hold it down to get a popup
showing all currently enabled international keyboards.

Bluetooth Keyboard Support

You’re going to get tired of us saying “like the iPad” but


remember when we told you spring’s influx of iPad news would be
important come summer’s new iPhone news? You were warned for
a reason. iPhone is getting iPad’s Bluetooth keyboard support.
Thank goodness for that.

 Home Screen

This is another common feature that competing devices have


long offered, so it's nice to see Apple stepping. To get started,
use a long press on the home screen so the icons "jiggle." you
can take an app and drop it on top of another to create a folder.
The folder will then appear as a square with tiny icons of the
included app inside. Tap the folder to access the included apps

16
and get an expanded view of the folder's contents. Alternatively,
if you want to remove an app, just drag it back to the home
screen. You can add as many folders as you like, change the
default folder name, and add both related and unrelated apps.
Surprisingly, we could even group legacy features like
the Weather and Stock applications into a single folder. Apple,
we're limited to just 12 apps in one folder?
 Unified inbox
Though the iPhone always has been a functional e-mail
machine, we never enjoyed switching back and forth among
multiple accounts to read new messages. Fortunately, iOS 4 has
a new unified in-box that is accessible under the "Mail" option
on your home screen. Listed above your individual in-boxes is a
new option for "All inboxes," which contains messages from
multiple accounts. You can't access individual folders from the
universal in-box, but you can delete and move messages.
 Camera Zoom
You'll have to wait for the iPhone 4 to get a 5-megapixel
shooter, but iOS 4 adds a 5x zoom for the still camera. When
taking a photo, just tap the screen to see the zoom bar. Use your
finger to pan in and out, but remember that since this is digital
zoom, picture quality will degrade as you zoom in.
 Geolocation
The addition of Geolocations lets you view where you took
your latest shots on a map and sort your images by location.
This is quite a cool feature, particularly for frequent travelers

17
who like to mark their journeys around the world. But if this
isn't your thing, you can turn off location services in the
Settings menu.
 Safari Search
When typing a URL in the Safari browser, you'll see not only
the URL title of sites you've visited recently, but also the full
Web address. That's a nice touch.

Game Center

iOS 4 introduces the Game Center app. An out-of-the-box


social gaming network for iPhone 4 and iPod touch.1 Invite
friends to join. Then totally crush them. Take a look at how
your score ranks among your friends and other players of each
game. Compare game achievements with your friends. Get
matched up and put together a select group of friends to play.
Or choose to automatically go up against people you don’t
know in a multiplayer game.

FaceTime
FaceTime is just another way iOS 4 seamlessly integrates
hardware and software to make every iPhone feature as easy to
use as it is groundbreaking. Now when you wish your friends
could be there, they actually can be. With just a few taps, you
can see your friends and family while you talk to them —
iPhone 4 to iPhone 4 or new iPod touch over Wi-Fi.

18
Hardware and software made for each other
Because Apple makes both the iPhone hardware and the
operating system, everything works together seamlessly and
intelligently. This integration enables apps to take full
advantage of iPhone hardware features such as the Retina
display, the Multi-Touch interface, the accelerometer, the three-
axis gyro, GPS, accelerated graphics, and more. FaceTime is a
perfect example. It uses both iPhone 4 cameras, the display, one
of the two microphones, and your Wi-Fi connection. If you’re
on a voice call with someone and want to start a video call,
FaceTime switches mics, turns on the front camera, and verifies
your Wi-Fi connection — quickly and invisibly.

Safe and secure by design


iOS 4 is highly secure from the moment you turn on your
iPhone. All apps run in a safe environment, so a website or app
can’t access data from other apps. iOS 4 supports encrypted
network communication to protect your sensitive information.
Optional parental controls let you manage iTunes purchases,
Internet browsing, and access to explicit material. To guard
your privacy, apps requesting location information must get
your permission first. You can set a passcode lock to prevent
unauthorized access to your phone and configure iPhone to
delete all your data after too many unsuccessful passcode
attempts. And in the event your iPhone is lost or stolen, a
MobileMe membership allows you to find your iPhone on a
map and remotely delete all data.3 If you get it back, you can
restore everything from your last backup.

19
Ready for business
Businesses around the world are choosing iPhone for its
enterprise-ready features and powerful security. iOS 4 works
with Microsoft Exchange and standards-based servers to deliver
over-the-air push email, calendar, and contacts. iOS 4 protects
your data by encrypting information in three separate areas: in
transmission, at rest on the device, and when backed up to
iTunes. You can securely access private corporate networks
through industry-standard VPN protocols. And companies can
easily deploy iPhone across an enterprise using configuration
profiles.

20
ADVANTAGES AND DISADVANTAGE
Advantages of ios4
 The Camera Functions
It is striking that the support iOS 4 to the earlier version of
iPhone3 The start speed is faster and the focus is more
accurate.
 Folder Settings
Folder settings are the first time appearing in iOS. The result is
very obvious when starting to use. The home page layout
becomes well-organized. It is convenient to find the folders for
the software come down in the appropriate folders.
 Spelling Test
This is one of the auxiliary functions of input method. It is
relatively simple but very useful. When the users compose a
message, they just need to type some letters then they can
choose the full terms below.
 Unified Inbox
Business people often have multiple e-mail address in order to
deal with different customers. iOS 4 draws on a similar feature
in BlackBerry. Users can view many different accounts / email
from different service providers in a single inbox. It supports
quick preview and users can understand about the content
without opening the mail.
 Multi-tasking
OS 4.0 version can run multiple applications simultaneously
and is in no way inferior to other similar operating systems .

21
Users can schedule an application to be run in the background.
When the system detects update or notice, it will appear in the
current interface. But due to technical reasons, only iPhone 4,
iPhone 3GS and above can enjoy the service.
Disadvantages of ios4
 Semi-thread message
In Gmail, all the similar topics are arranged together and show
through the session way. iOS tryed to do that, but the actual
result is not satisfactory.
 There is no real features upgrade for iPod
The new operating system's home page has much improvement
to the older. But the iPod itself does not get the nature
improvement. It is lack of adjustable graphic equalizer, and
better support to create playlists.
 Mail does not support attachment
In general, iOS 4 did give users a better user experience, but it
needs to make improvements in commonly used functions.
After all, now in smart phone OS, there are still Android,
BlackBerry and other strong rivals. Ios needs to innovate
continually then it will gain market recognition.

22
Known Issue

AV Foundation

• In this release, the AVAssetReader and AVAssetWriter


classes have been removed from the AV Foundation
framework.

Xcode

• LLVM GCC and LLVM compiler are now included as optional


compilers for iPhone development.
• When selecting a target and then choosing "Update Current
Target for iPad," new nib files are created but not converted to
iPad. To fix this problem:
o Either select each nib file that was copied, open it in
Interface Builder, select the "File -> Create iPad Version"
menu option, then select "Save As…" for the document,
and save over the nib file.
o Or invoke this command in the terminal from the
project's folder:

find Resources-iPad -type f -name


"*.xib" -exec ibtool --sdk ""
--change-target-runtime
IBIPadFramework {} --write {} \;

Debugger

• When debugging your multitasking enabled app, avoid


manually pausing and continuing from the debugger when the
application is suspended in the background. Pausing an
application that is suspended in the background disrupts proper
multitasking behavior until the application is relaunched.
• Using a datatip on a uninitialized object, or turning it open in
the variables view, will sometimes make it look like the
program has crashed. The status bar at the bottom of Xcode's

23
windows will show Program received signal:
"EXC_BAD_ACCESS" and the toolbar buttons for stepping
through the code will be disabled. To recover, choose “Sync
with Debugger” from the Run menu and continue debugging.

Interface Builder

• iOS 4 includes a new UINib class to support rapidly


unarchiving nib files. While this class is new to iOS SDK 4, it
was present but private, in previous releases. Special care needs
to be taken when deploying code that uses the UINib class and
also runs on iOS releases prior to version 4. Specifically, you
cannot determine the availability of the class solely using the
NSClassFromString function, because that check returns a
private class on iOS 3.x and earlier. Instead, after getting the
UINib class using NSClassFromString, you must also use
the respondsToSelector: method of the returned class
to see if it responds to the nibWithNibName:bundle:
method. If it responds to that method, you can use the class.

GameKit

• The desiredPlayers property has been removed from the


GKMatchRequest class
• GameKitBeta.h has been renamed to
GameKitPreview.h.

Simulator

• iPhone Simulator can now simulate multiple iOS versions from


a single build. Currently the simulator supports iOS 3.2 and iOS
4.0, allowing simulation of a single Universal binary on both
iPad and iPhone Simulators.
• With the base SDK set to 3.2 but running in the 4.0 simulator,
an application calling stat writes beyond the end of stat
bufferstat() and can cause unexpected behavior or a
crash.
• The Camera application shows up on the iOS 4 simulator (but
not on the normal simulator). This causes the

24
UIImagePickerController object to hang an application
when launched in the iOS 4 simulator. The cancel button is
disabled and the only way out of an application once the image
picker is shown (with the camera for the source type) is to kill
the application manually.

UIKit

• UIInvalidBackgroundTask has been renamed to


UIBackgroundTaskInvalid
• On iOS 4.0, applications that add a text field to a
UIAlertView will need to stop moving the UIAlertView
by hand to avoid layout issues.
• Setting animatable properties inside transition animation block
may not work.
• Tile backgrounds created with the
colorWithPatternImage: method of UIColor appear
with the image upside down. This is correct behavior, as the
pattern and normal coordinate spaces now match.
• The default behavior for the new UIView block-based
animation API in 4.0 is to disable user interactions across the
whole interface while the animation is playing. Developers
should not rely on this behavior remaining the default as it may
be reversed in future releases, thereby allowing user interactions
to occur by default while the animation is playing. Programs
compiled against iOS SDK 4 will continue to work as-is but
code compiled under future versions of the SDK may require
setting a different option flag to enable the original behavior.
• The default behavior for the new UIView block-based
animation API in 4.0 is to inherit the animation duration from
an enclosing animation block (when present). Developers
should not rely on this behavior remaining the default, as it may
be reversed in future releases, thereby preventing animations
from automatically inheriting the duration of their enclosing
animation. Programs compiled against iOS SDK 4 will continue
to work as-is but code compiled under future versions of the
SDK may require setting a different option flag to enable the
original behavior.

25
• iPhone 4 uses a different system font than earlier devices.
References to the Helvetica font in nib files will be decoded as
the system font on these newer devices.
• The UIKit Text Input System never calls the methods found in
the documentation under the "Determining Layout and Writing
Direction" category.

Software Update
 Application Sandbox
The Application Sandbox does not prevent applications from
directly accessing the user's photo library. This may allow an
application to determine visited locations without authorization.
This issue is addressed by modifying the Application Sandbox
to prevent direct access to the user's photo library.
 ImageIo

An uninitialized memory access issue exists in ImageIO's


handling of BMP images. Visiting a maliciously crafted website
may result in sending data from Safari's memory to the website.
This issue is addressed through improved memory initialization
and additional validation of BMP images. A memory corruption
issue exists in the handling of TIFF images. Processing a
maliciously crafted TIFF image may lead to an unexpected
application termination or arbitrary code execution. This issue
is addressed through improved memory handling.
 LibSystem
A buffer overflow exists in the floating point binary to text
conversion code within Libsystem. An attacker who can cause
an application to convert a floating point value into a long
string, or to parse a maliciously crafted string as a floating point

26
value, may be able to cause an unexpected application
termination or arbitrary code execution. This issue is addressed
Through improved bound checkings.

 LibXml
Multiple use after free issues exist in libxml2, the most serious
of which may lead to an unexpected application termination.
The issues are addressed through improved memory handling.
 Settings
A design issue exists in the Settings application. When
connected a hidden wireless network, the Settings application
may incorrectly indicate another wireless network. This issue is
addressed by properly displaying the active wireless network.
 Webkit
A buffer overflow exists in WebKit's parsing of floating point
numbers. Visiting a maliciously crafted website may lead to an
unexpected application termination or arbitrary code execution.
The issue is addressed through improved bounds checking.
A canonicalization issue exists in WebKit's handling of UTF-7
encoded text. An HTML quoted string may be left
unterminated, leading to a cross-site scripting attack or other
issues. This issue is addressed by removing support for UTF-7
encoding in WebKit.
When WebKit is redirected from an HTTPS site to an HTTP
site, the Referer header is passed to the HTTP site. This can
lead to the disclosure of sensitive information contained in the
URL of the HTTPS site. This issue is addressed by not passing

27
the Referer header when an HTTPS site redirects to an HTTP
site
Comparing ios4 with other mobile os
Apple iOS 4 vs. Android

Email management. Once you're in your folders, though, iOS 4 is


easy to use for most operations, such as deleting messages and moving
messages to folders. You can easily search for mail, reply or forward,
delete, and select multiple messages, but you can't select or deselect
all messages.

On the other hand, Android OS 2.2's folder navigation isn't friendlier,


though you don't have to wade through the double lists. By default
you get an all-message view, and if you want to go to a specific folder
or see just the inbox, you must click the Menu button and then tap the
Folders icon to get a list of folders. Also, Android uses a separate app
for Gmail accounts -- an unnecessary division of labor.

Android OS 2.2 is on a par with iOS 4 when it comes to mail


management. However, you have to use the Menu button when in a
message to forward it -- an extra step compared to iOS 4. Both iOS 4
and Android let you mark a message as unread, though Android
requires you do it via the Menu button's options. You can search your
email in Android, but not from within the Email application; it's part
of a general device-wide search, which is more work than iOS 4's
method. Like iOS 4, Android OS 2.2 has no select-all capability for
email.

iOS 4 remembers the email addresses of senders you reply to, adding
them to a database of contacts that it looks up automatically as you tap
characters into the To and Cc fields; Android doesn't do that. Both
operating systems let you add email addresses to your contacts list by
tapping them.

28
Corporate email, contacts, and calendar support. Android OS 2.2
is significantly inferior to iOS 4 when it comes to corporate email
capabilities. That's mostly because Android OS 2.2 supports just a
limited set of Exchange ActiveSync (EAS) policies, so most corporate
Exchange environments are unlikely to permit access. The biggest
omission is support for on-device encryption, which is a basic EAS
requirement. You can tell Exchange to ignore such policy misses, but
that lets any noncompliant device onto the Exchange server -- not a
viable option for most enterprises. Although iOS 4's EAS support is
nowhere near as extensive as what BlackBerry and Windows Mobile
offer, it remains the most compliant of any new-gen mobile OS.

Also, Android doesn't let you automatically sync Exchange folders;


you have to go to each folder and manually update them. By contrast,
iOS 4 lets you designate which folders are automatically synced as
part of the mail settings.

The difference between the two operating systems is a classic case of


the specs not telling the whole story. iOS 4 has a much more intuitive
interface that makes using email, contacts, and calendars far easier
than on Android OS 2.2, and overall it has more capabilities. When it
comes to corporate usage, Android simply fails the requirements of
most organizations. The TouchDown app can work around much of
this gap, but at the price of poor integration with the rest of the device.

Text selection and copying. Where Android really falls short in UI is


in its text selection. If you're tapping away and realize you've made a
mistake not caught by the autocorrect feature, such as when typing a
URL, you can't simply move the text cursor to that error's location in
the text. You have to backspace to that point, erasing the text in
between. On iOS, you tap and hold where you want to insert the text

29
cursor (sort of like using a mouse); a magnifier appears to help you
move precisely to where you want to go. You then add and delete text
at that location.

Along these lines, copy and paste -- and even basic selection -- is
often not available in Android OS 2.2. In some fields, tapping and
holding brings up a contextual menu that lets you copy or paste the
entire field's contents; in others you can't even do that. Although the
browser lets you select and copy text, this ability is not universal. For
example, you can't select text in email messages. In iOS, any textual
item can be selected, and you can adjust specifically what text is
selected by using little sliders. It's easy, intuitive, and universal.

Conclusion
Apple is again rounding out their offering with iOS 4, which is
the sign of the maturity of the platform. Since they’ve stated
several times now that they’re using the iPhone to “educate”
users about multitouch interfaces, they’re going to continue
keeping changes evolutionary for now, and the UI broadly
consistent across devices. There won’t be any huge,
revolutionary changes again until they have to, and they don’t
have to yet. Restraint can be a virtue.
Some functionality is still not present, like non-interuptive
notifications, widgets beyond the limited fast task switcher UI,
wireless sync/sharing, less painful file round-tripping, etc. but
Apple is no doubt working on this the way they worked on copy
and paste and multitasking. The question is how and when, not
if. After all, it’s only 9 or 10 months until the iOS 5 sneak
preview in spring 2011.

30
REFERENCE
1. http://www.tipb.com/2010/06/14/ios-4-walkthrough/

2. http://developer.apple.com

3. http://www.net-security.org

4.

31

You might also like