If you're just starting out in app development and trying to choose between the Android or the iOS SDK, this basic guide might be useful.
In tech years, the iOS vs. Android argument seems like it is half a century old and has stretched the limits of human tolerance for passive-aggressive retorts. Since 2008 the ongoing comparisons between these operating systems have been in the spotlight because of the growing Android market and the possible iOS expectation that everything be done through Apple and with Apple products.
Amidst all of these debates, it can be difficult for anyone starting out in app development to figure out which mobile OS they might enjoy working with more. Here's what you need to know to choose between the Android SDK and the iOS SDK.
The Android SDK is an amalgamation of different tools that allows anyone interested to develop and manage their applications. Some of those tools include:
- Android Debug Bridge (included with the SDK package)
- Android Open Accessory Development Kit
- App Inventor for Android
- HyperNext Android Creator
- Android APIMiner
Android uses a Java-based language. Eclipse is the common IDE used through the ADT Plugin, which fully supports Android development. Though Eclipse is commonly used, it is still a difficult system for some to learn. The same goes for XML (which adds another layer of complexity when working with the UI), especially if you are used to CSS for design. The NetBeans IDE is another supporting platform that can also be used via a plugin. Developers can use any text editor to edit Java and XML files, which they can pair with command line tools to develop and debug Android apps and control Android devices.
Android has a 70.1% market share (as of the end of 2012), creating a higher demand for the apps. The number of tools at the developer's disposal and the availability of forums and other online support systems prove that Android is geared more toward developers being able to create at will. The downside to this freedom is that the quality varies depending on the app, and the developer has very little to hold him/her accountable to any expectations besides that of the customer.
The iOS SDK is a governed system that is centralized on consistency; the many tools used by this system illustrate this focus. While some of the restrictions regarding cross-platform development have relaxed, the overall inclination for control over the app development process is still pronounced.
Some of the tools used in the iOS SDK are listed below, each covering a specific area that Apple would like included with whatever application is developed.
- Cocoa Touch
- Multi-touch events and controls
- Accelerometer support
- View hierarchy
- Camera support
- Video playback
- Image file formats
- Core Animation
- OpenGL ES
- Core Services
- Embedded SQLite database
- Core Location
- Mac OS X Kernel
- Power management
- File system
In addition, the SDK contains the Xcode toolchain and an iPhone Simulator, a program used to simulate the iPhone on the developer's desktop. Core location is also a central framework used in the iOS. The current version is 6.0.
All developers are required to go through the iOS Developer Program (enrollment is $99 USD for the standard class) the first time in order to ensure they meet Apple's standards and have a complete understanding of the systems involved.
Once an app is developed, it can be disturbed three ways: the App store, exclusively internal (for employees etc.), and free distribution for up to 100 iPhones. Each stage goes through levels of review by Apple, which affirms the app's quality and purpose or rejects it. Java and Flash are no longer used by Apple.
Comparing Android and iOS
One of the biggest benefits to developing apps for Apple is the ease of Xcode. Get a MacBook and install it, and suddenly you can begin writing and installing apps. Android isn't that simple.
One of the main differences in developing apps for Apple is interface construction. When working with a fragmented ecosystem such as Android, you have to take into account all the various types of devices that run Android; with iOS, there are only two resolution scales to take into consideration.
Outside of the comparison between these two systems is HTML5, which allows developers to write apps that are more efficient and faster than Flash apps of yesteryear. HTML5 apps have a lot of benefits over native apps, but they should be used with caution for the time being due to their lack of web standards and missing libraries.
Both systems provide tools for development and distribution. Both have markets that are central to whatever the developer would like to provide in the way of applications. Both languages are being adjusted for cross-development platforms.
In conclusion, while Android offers more opportunity, Apple may offer better checks, which assure quality and distribution. Basically, a developer needs to consider which option best suits the application they intend to create and not worry about answering the flawed question of which mobile OS is better.