Yes, It is Linux, But it is not !
Looking back to the definition, Linux is the kernel which is powering up the system, managing resources, etc, not the userspace tools. But referring to the conventional definition, I was looking for standard Posix tools, a package management system, OpenSSH server, etc. Although it’s famous that most Linux users are kinda Hackers, and living in a dark Garage ;), It’s really odd that there are no OpenSSH ports for this operating system. The only thing you may find is a Dropbear port, compiled and ported for this architecture, but I failed to bring it up.
On the other hand, iOS has lots of these tools available using an APT based package manager called Cydia and installing OpenSSH is the first step to getting full access to your embedded MacOSX. Sometimes I forget whether I’m working with my iOS shell or the Debian shell on my PC.
Obvious Features are not there !
VPN stands for Virtual Private Network, which is kind of network connection when you want to access a secure tunnel to your workplace or another server in the internet. Android implementation of VPN protocol (specifically PPTP) is incomplete, since it fails to detect kind of encryption in certain scenarios and the only solution to this problem is currently to switch off your VPN encryption and surf in an insecure manner.
Default android operating system doesn’t include any option to configure HTTP proxy server settings. Although this might seem not to be a critical feature, but it makes the phone almost useless in an institute or university which shares the internet via an HTTP proxy server. Certain distributions such as Galaxy, have patched this issue and include the configuration dialog.
Android’s userspace has been built on JAVA technology, hence the java runtime in android is called Dalvik and doesn’t provide any backward/cross-compatibility with J2ME environments. J2ME is being supported on many devices and has been made an standard for many institutions, to provide their services to the customers via this technology. Although J2ME is not supported by iOS, but it is possible to install a Java runtime environment, when you jailbreak the device.
Android has a centralized synchronization system and it provides your account credentials to the apps, which need to synchronize with your google account data. This could be considered as a major success in terms of integration to Google, for those who live in the Google world. On the other hand, it happens to change your google account password. But wait, do you count the ability to change your current password as an obvious feature ? of course yes, and there are no direct way to change your password.
Applications start showing authentication errors, right when you change the account password, and there is no way to configure and set the new password on the phone. Android makes you to perform a Factory Reset, to enter your new data. In certain models, android may pop up a dialog box to change your password at the next reboot, but it did not happen with my HTC Desire. I tried to fetch and modify a database file called accounts.db and remove the old authentication tokens. There’s an option to change your email account’s password in a few taps in iOS platform.
App-Store versus Android Market
First point I noticed was that, Android market is restricted for certain carriers and internet addresses. I failed to access using my home network and carrier, but there are hacks to resemble you’re on the right carrier (using MarketEnabler) and on the right IP address (using a VPN connection).
The first point you face, when browsing the android market for the first time is that, there are awesome apps that are free while their equivalents in the iOS market are being provided as paid apps. But on the other hand, there is a high degree of redundancy in the apps functionality, and 3 in 4 apps you download in android, doesn’t do what you want.
iOS provides an statically aligned dashboard, in which you can access to your critical apps in the bottom bar. The critical apps bar is always visible, while you can swipe your finger to change the dashboard icon set to the next page. There are no live or dead widgets. There is only an static wallpaper since iOS 4.0 plus the icons to launch apps. iOS automatically applies a nice glassy effect/overlay to the icons, which makes any amateur icon stylish.
Android provides a more flexible dashboard including icons, live wallpaper and live widgets. Widgets are one of successful ideas in the Android environment, which allow you to access the current data (weather, contacts, messages, …) right on your desktop. You’re free to align the application shortcuts (icons) and widgets anywhere beside each other.
Comparing to the static wallpaper in iOS, there is a possibility to choose an animated (AKA live) wallpaper program. There are some cool defaults wallpapers in the default HTC distribution. It is also possible to download and install new live wallpapers. For example you might install a free Snow Flakes wallpaper for your background. The wonderful fact about android wallpapers, is that they are battery friendly and does not drain the battery so fast.
Animations are more smooth and pleasant and You’ll soon note that keyboard typing speed was a little bit more in the iOS, but they are both convenient for daily tasks.
Language and Localization Support is Poor
Android doesn’t come with any Right-to-Left scripting support, although it has complete translation for some famous western languages. There are long threads on Google support channels for adding this feature, but no idea when this feature would become available in the main branch of operating system. (There are customized brands such as latest Galaxy phone which include RTL support out of box)
Jail-breaking (AKA rooting) the phone did not last more than 24 hours, until I download latest firmware and tools available. In fact it was much more simple than, iOS equivalents. Upgrading the phone to the latest community modified Froyo (Lambros ROM), fixed rendering for Persian language and had a Persian keyboard as a bonus too 🙂 !
There are more …
There are lots of aspects which I have not discussed here. Freedom might be an issue with closed source operating systems like iOS. It could be also indicated in case Market and application approval process. On the other hand, freedom might be discussed in the application level, which you’re able to swap your core applications, or just high level apps.
Software development is also an issue, in which mobile developers might be interested and there are lots of things to compare. From development tools to the language, performance and design guide lines, …
Lets also do not forget that, these operating systems are running mostly on cellular phones and they should provide a certain amount of flexibility and usability in that area. There some functions which you might miss in one of them, such as call blocking, message blocking and the way that device alerts you.