Monday, May 23, 2011

iOS: The four-year-long road

The operating system for iPhone – iOS – was introduced on June 29th, 2007 but only had it official name from March 6th, 2008. On 2008 Apple released the second version with application store for third party and introduced the second version on 2009 , the fourth version with multitasking has just been announced on 2010.

I.                  iOS Version 1

1.0: the initial release with iPhone and 1.1 (Sep.14th, 2007) is for iPod Touch with some bugs fixed and a security update for Safari.
1.1.1: a big update which added more features in buttons, interface, connectivity and security
1.1.3: another big update with new applications, new features for entertainment, exist applications and the touch screen.

II.               iOS Version 2

Version 2.0 was introduced on July 11th, 2008. It is a major upgrade for iPhone and initial release for iPhone 3G, which provided enhancements in language, mail, contact, calendar, enterprise, some firmware-related update and especially App Store – an service which allows third-party applications available on it. Later 2.0.x versions are for bug fixes.
2.1: Big update for iPhone and iPhone 3G. The new changes are in companion changes with iTunes 8, performance and OS enhancement, bug fixes, applications features and some new features which only available for iPod Touch.
2.2.x: New enhancements for maps, e-mail, App Store upgrade, Safari, bug fixes and miscellaneous features and some update for iPod Touch 2G only.

Interface of App Store. Source: techcrunch.com

III.           Version 3

The third major firmware upgrade – called iOS 3.0 – was released on June 17th, 2009 and became the initial release of iPhone 3Gs with cut/copy/paste features, MMS, developer APIs, accessibility settings, new system features, performance and application enhancements, firmware-related updates and some features which available for iPhone 3Gs only. Versions 3.1.x (Sep.9, 2009) focused on connectivity, miscellaneous features and some bug fixes and versions 3.2.x are for iPad.

IV.           Version 4

The fourth major release of iOS (iOS 4.0) only supports iPhone 3Gs and came with iPhone 4 , iPhone 3G will get limited features while iPhone 1st generation is not supported.
It brings the multitasking functions – which already called the weak point of iPhone against other smartphone, Facetime video calling, new settings and application features for home screen, messaging and entertainment, along with accessibility support, Safari updates, bug fixes and other firmware-related changes. Versions 4.0.1 and 4.0.2 are for bug fixes.
Version 4.2 and 4.2.1 updated AirTunes was replaced by Airplay for better streaming via Wi-Fi, Airprint added for wireless printing.
Version 4.2.5/.6/.7/.8 are security updates and bug fixes for CDMA iPhone 4 only
Version 4.3 came with iPad 2 and is available for updates. It fixed daylight saving time bug from version 4.2, Airplay enhancement, increase Safari performance and added personal hot spot function. Later versions, 4.3.1/.2/ are for bug fixes. Version 4.3 fixed location tracking - a critical security glitch.

V.              Up next: the iOS version 5

According to Apple iOS will appear at World Wide Developer Conference this summer and will be introduced on fall 2011. It is predicted to focus on cloud computing and wireless sharing and will take advantage of the power of iPhone 5’s dual core processor. Although information about iOS 5 mostly remains unknown, its growth still attracts the hi-tech users all over the world – and other competitions like Symbian, Android or Windows Phone.

iOS 4.3 software update: http://www.apple.com/ios/
iOS version history on wikipedia: http://en.wikipedia.org/wiki/IOS_version_history#endnote_T1

Windows Azure Toolkit for mobile applications

Windows Azure is a platform based on cloud computing technology – which is becoming more and more popular. The key point of cloud computing is the applications run on the virtual servers, or “clouds”, and the client only send input data then receive result of the computation from the service.

I.                  Windows Azure platform

Windows Azure was built to help developers and technical users develop their applications and run them right on virtual server systems which maintained, updated and protected by Microsoft.
Running cloud applications – however – still requires some additional platform; for example a Windows application may requires SQL Server for managing the database, bringing that application onto the cloud will require bringing SQL Server to the cloud also, that’s why Azure provides additional tools (one of them is SQL Azure) for developing and running cloud applications.

II.               Windows Azure toolkit for iOS

The Windows Azure toolkit for iOS contains a compiled Objective-C library for interacting with services running in Windows Azure like push notification, authN/authZ, storage… as well as the full source code of the Objective-C library along with the Xcode project file. It also provides some sample applications to help new developers understand the mechanism of Windows Azure and how to use Windows Azure Storage
Documentations are also attached with the toolkit.

Interface of Windows Azure toolkit for iOS, the toolkit will

III.           Windows Azure toolkit for Windows Phone 7

The toolkit for Windows 7 was designed to support developers in building applications that leverage the cloud service running in Windows Azure. It provides 2 project templates for both C# and Visual Basic:
·         Windows Phone 7 Empty Cloud Application: This creates a default Windows Phone 7 application with minimum settings and dependencies. For developers that already got used to the mechanism of Windows Azure to build their own idea.
·         Windows Phone 7 Cloud Application: This template generates a Windows Azure project , an MVC 2 Model configured as a Web ( based on ASP.NET) and a Windows 7 Application project. This is for showing the new developers how they can interact with Windows Azure Storage without needing to include the storage account information, which will make it more secure to distribute.


Interface of the toolkit for Windows Phone 7 with 3 specific buttons for any smartphone that runs on Windows Phone 7 OS. The function displayed is one of the sample functions for the Windows Azure cloud application.

IV.           Coming up next

The next toolkit for Android is going to be released on this June with QWERTY keyboard support, complied libraries and samples. When mobile cloud computing becomes popular, smartphone prices will be reduced and the limit of mobile application will expanded. This is going to make Windows Azure the future of computing because smartphone application will not require strong hardware on the device anymore, all the computation  will be processed on servers.

Wade Wegner – Getting Started with the Windows Azure Toolkit for iOS: http://www.wadewegner.com/2011/05/windows-azure-toolkit-for-ios/
Wade Wegner – Windows Azure Toolkit for Windows Phone 7: http://www.wadewegner.com/2011/03/windows-azure-toolkit-for-windows-phone-7/
Codeplex – Windows Azure Toolkit for Windows Phone 7: http://watoolkitwp7.codeplex.com/

Android overview

ANDROID
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. In July 2005, Google, co-founder with Andy Rubin who is now the director of mobile platforms at Google, started up Android Inc.
ANDROID ARCHITECTURE:
·         Linux Kernel
Android uses a heavily modified GNU/Linux kernel version 2.6 to provide an abstraction layer between the hardware and the rest of the software stack. It also includes many enhancements and modifications.
·         Android Runtime
A vital component in the Android stack which is composed of two major parts:
o   The Dalvik virtual machine: One of the most important components in Android which is designed to run on a limited CPU and RAM (250-500MHz) (20-40 MB), an OS with no swap space and on a device with limited power
o   Core libraries: Android's core libraries provide most of the functionality available in the core libraries of Java needed for applications development.
·         Native Libraries
This layer, which is implemented in C/C++, houses the core libraries providing the bulk of Android functionalities: C library, SQLite, Surface management, OpenGL, Media Framework, Audio Manager
·         Application Framework
This is a general purpose toolkit that all applications use. It is written in Java language to enable reusability and replacement of components.
·         Applications
There is a bundle of core applications coming along with Android such as:  email client SMS program, calendar, maps, browser, contacts … and thousands of useful applications on the Android market.




Figure 1: major components of the Android operating system.


OS COMPARISON:



   iOS
Developer
Google
Microsoft
Apple
Blackberry
Nokia
Copy/Paste
✔
✘
✔
✔
✔
Multitasking
✔
✘
✔
✔
✔
Flash Support
✔
✘
✘
✘
✔
Silverlight Support
✘
✘
✘
✘
✘
HTML5 Support
✔
✘
✔
✔
✘
Unified Inbox
✔
✘
✔
✔
✔
Exchange Support
✔
✔
✔
✔
✔
Threaded Email
✔
✘
✔
✔
✔
Visual Voice Chat
✔
✘
✔
✔
✔
Video Calling
✔ Third Party
✘
✔
✔
✔
Universal Search
✔
✘
✔
✔
✔
Internet Tethering
✔
✘
✔
✔
✔
Removable Storage
✔
✘
✘
✔
✔
Facebook Integration
✔(Third Party Integration)
✔
✘(Third Party App)
✔
✔
Twitter Integration
✔(Third Party Integration)
✘
✘(Third Party App)
✔
✔
Folders
✔
Hubs
✔
✔
✔
Apps Organization
Customizable
Alphabetical
Customizable
Customizable
Customizable
App Store
90,000+ Apps
1,000+ Apps
300,000+ Apps
✔
✘
Microsoft Office Support
Third Party App
Built-in
Third Party App
Third Party App
Third Party App
Widgets
✔
Tiles on Home Screen
✘
✔
✔
Media Sync
Direct File Transfer + Third Party Software
Zune Software Mac & PC
iTunes Mac & PC
✔
✔
X-Box Live Integration
Via Third Party App
Built-in
Via Third Party App
Via Third Party App
Via Third Party App
REFERENCE
Android SDK:
Dalvik Virtual Machine:
SQLite:
Open GL:
Media Framework:
Audio Manager:
Surface Management:
Compare Operating Systems:
Window Mobile 7 (Microsoft):
RIM (Blackberry):
Symbian (Nokia):