My (Mostly) Unbiased Overview of Android and Apple’s iOS – Part 2

Feel free to check out part one of this post, in which I covered some pros and cons on Apple’s iOS.

On to Android, which now owns the majority of the mobile phone market share in the world due to the many manufacturers who choose this open-source, free operating system for their phones. Much like iOS, there are plenty of pros and cons to cover for this OS; I’ll touch on the ones I’ve found to be most important during my software testing experience.

Pro – The first thing that comes to mind is the customization of the system itself. Many carriers and manufacturers have adapted Android due to the “re-skinning” they can perform on this OS–they can essentially make it their own by adding a unique look and feel and pre-loaded software. Unlike Apple, which has its own developers working on the OS in-house, Android is open-source, allowing any developer to enhance, limit, or customize the software; there are literally millions of Android developers around the globe, allowing the OS to stay ahead of the curve.

Pro – Android allows for different layouts on user homepages. This includes folders, shortcuts, and, most importantly, widgets. Widgets allow a user to directly access a particular program right from the homepage itself, without having to launch the application. There are widgets available for media players, living calendars and task checklists, and live feeds for social networking, email, and current affairs from around the globe.

Pro – Other great features of the Android OS are the keyboard layouts and text prediction. These include “swipe” style keyboards, where the user literally swipes past each letter in a word and the keyboard chooses the word it assumes the user wants to use. This feature can make typing out long messages or emails a breeze and can help keep spelling errors to a minimum. Many keyboards also have voice-to-text options which are amazingly accurate, “learning” how the user talks. Use of features like these is obviously a personal preference, but the options available in Android really can be quite useful in many applications.

Pro –  The final pro on my list is the new implementation of Google Now, included in all newer versions of Android. Google Now gives you the ability to perform instant searches by speaking into the mic of your mobile device. You can search for the definitions of words, facts about well-known people, and a huge variety of other items instantly. Google Now also has the ability to learn information you either look up or have expressed interested in – things like weather, sports updates, popular tourism spots, commuter traffic, and flight reservations and itineraries. It will also reminder users about tasks and pending calendar items, placing all of this information front and center on the device for users to view quickly and easily.

Of course, Android has its setbacks as well.

Con – One of the biggest faults I can think of is Android Fragmentation. Fragmentation is caused by manufacturers and mobile carriers holding back new versions of software and thereby creating many different versions of Android out in the wild. The Fragmentation can causes issues while developing software for use on Android because, unlike Apple, Android developers have to understand that most devices are not updated to the latest version (currently 4.2.2 “Jellybean”) and have to worry about testing their software on different OS versions in order to fulfill the needs of customers. All this extra testing can, in turn, cause delays in software releases.

Con – Another Android con would have to be the lack of security and stability in the OS. Although developers have made great strides to limit the threats of viruses and other malware, the Android App eco-system is still filled with unwanted security holes and issues. Because, as I mentioned in my point above, there’s no guarantee that all Android devices are running the newest version of the operating system (over half of the devices currently running the Android OS globally are running on Version 2.3 “Gingerbread”, which is far inferior to Jellybean), users and their devices are very vulnerable to security issues.

I’ve learned a lot working with these two operating systems–both Android and Apple have their advantages and disadvantages, many of which depend on the goals of the user. Now that I’ve spent time working with both platforms, I have a better appreciation for the good in both and a better understanding about the bad but, when push comes to shove and people ask me why I prefer one over the other, my simple answer is personal preference. What works for me certainly won’t work for everyone; doing your own research will help determine which OS is right for you.

Advertisements

My (Mostly) Unbiased Overview of Android and Apple’s iOS – Part 1

People who know me might already be assuming that this blog post will be biased, based on my preference for Android, about which I’m not usually silent. However, while working at Algonquin Studios I’ve had the opportunity to test many new mobile platforms and devices including Windows Mobile, Apple, and Android and I’ve learned some new things that I like about both iOS (Apple’s proprietary operating system), and Android (an open source, Linux-based operating system).

The battle between Apple and Android has been both futile (for the companies) and fun for people who posses an interest in the forward momentum of technology. While testing our new mobile app for SWRemote, I’ve learned both the frustration and pleasures of having the ability to work with both operating systems. Below are my top pros and cons of both systems, given in the most unbiased way I can manage:

SWRemote’s Mobile Technician was coded for, and first applied to, Apple’s iOS platform using the iPad, so that’s where I’ll start my list as there are a lot of benefits to be found testing and navigating around this robust OS.

Pro – While it’s not iOS-specific, I’d be remiss without mentioning the battery life on both the iPad and the iPad Mini. The devices have exceptional battery life both in “stand-by” mode and “screen-on” mode. Coming from a mostly Android background, I’ve become accustomed to poor battery life and have gotten used to always needing to be near a charger. This has changed a bit with newer Android models, depending on hardware, but I haven’t seen anything that comes close to the staying power of Apple’s batteries.

Pro – A second iOS pro that must not be ignored is its ease of use for beginners. iOS takes all of the complicated and aggravating things out of the operating system and goes with the philosophy of “Just Keeping it Simple.” This works out very well for both timid users who don’t like change on a large scale and beginners who are getting ready to dive into the technology arena. And, with all forms of the OS (iPhone/iPad/iTouch), Apple keeps everything the same–from the looks of the screens to the settings options–achieving great consistency across devices and lessening the learning curve for newbies.

Pro – I also have to give credit to Apple for the stability and security of its operating system, including version upgrade releases which are only held back by the personal user based on when they want to actually upgrade their system. The free upgrades always include bug fixes and other significant advancements in the OS.

But, of course, with all the good comes a bit of the bad.

Con – Thanks to the simplicity of iOS, many customization options have been curbed including any options for tweaking things like keyboard layouts, power modes, processor speeds, and memory utilization.

Con – Apple has a closed operating system which essentially means that one cannot “tap-in” to many of the areas that might be necessary for both programming and/or adapting certain hardware into software like printers, third-party drivers, etc. For developers this can be frustrating and time-consuming as we try to find workarounds for these particular applications.

Con – Apple has also limited its iOS to only Apple products. Some may see this as a benefit and say that while Apple only does one thing really well, it does that one thing really well. This might be true but when you’re limiting your customer base to only one device brand/manufacturer it can be difficult to keep up with the “Next Best Thing.” Tech consumers get bored very quickly these days and people tend to want the latest and greatest right away. Apple’s insistence that iOS only run on Apple products automatically limits its market share, regardless of the fact that it has some of the best advertising in today’s marketplace.

The Virtues of Virtualization

By now, most people in the technology field have had the good fortune to work with some sort of virtualization technology such as Hyper-V, Xen, KVM, SolusVM, or OpenVZ. Whether you’re a Linux or Windows Admin, one thing you can be certain of is that virtualization is making your job easier and saving your company money.

In my opinion, one of the clearest and most immediately-realized benefits of implementing virtualization in your environment is the cost savings. For the longest time, business demands would increase and the only practical solution was to deploy more servers. It’s long been understood that while an increased number of physical machines deliver necessary processing power, they also consume more power and produce more heat, which in turn, requires additional cooling. Interestingly enough, you can expect your energy and cooling costs to be an exact 1:1 ratio in most deployments, so you can see how the cost quickly adds up.  There’s also the glaring issue of the space consumed by the physical footprint of several cabinets. Long story short, a company faces the increased burdens of wasted space, higher energy costs, and large administrative staffs necessary to maintain all of this equipment.  And let’s not forget the cost incurred from buying multiple physical machines.

After some time it dawned on people that processing power and storage capacity had scaled almost exponentially, while the common computing demands of a typical business had remained about the same. Simply put, there were suddenly a lot of underutilized machines sitting around wasting both space and power.

Here’s where virtualization comes to the rescue.

In most cases a server with a large number of resources-centralized, highly redundant storage, multiple processors with multiple cores, and a large amount of memory-will be deployed as a hypervisor. This hypervisor then serves as a very low-resource operating system capable of creating, deploying, and managing “guest” operating systems, or virtual machines. With a lot of clever programming and design, certain hypervisors are capable of allocating more resources to virtual machines, as necessary, scaling their resources back down when they aren’t in immediate need, and just generally doing a lot of really cool things. This also makes the management and administration of the servers much easier from a technical standpoint, as the traditional method of monitoring a server’s performance would involve “keeping an eye on it” and involving a very reactionary approach to troubleshooting-waiting until the server started experiencing issues, then diving in head first to diagnose the issue and hoping for a solution to present itself.

But with a properly executed hypervisor deployment, the hypervisor itself already consolidates a lot of management, monitoring, and notification systems in one package.  Compared to traditional methods of monitoring, which eat up resources on your machine, increase your systems attack surface, and are typically difficult to use, all of the statistics about a virtual machine are generated in the context of the hypervisor and place no stress on the node/virtual machine itself.

Additionally, the ease of scaling a virtual machine’s resources is literally no more complicated than a few mouse clicks. When compared to the traditional method of ordering the parts, unracking the server, installing the new parts, burning them in, etc., this is where virtual machines really shine.

And of course, no discussion about virtual machines would be complete without mentioning backups. Staying on top of scheduled updates used to be the bane of every System Administrator’s existence. Now you simply take a snapshot, or similar backup, of the virtual machine prior to performing any sensitive work and restore the image in minutes if necessary.  As anyone who’s ever had the misfortune to perform a bare metal disaster recovery can tell you, this is a very convenient feature to have at your disposal.