How I Accidentally Became an Android Developer

@redman has written a snippet on his accidental foray into Android development that I have personally experienced and heard from quite a few iOS developers who have entered Android development.

My favorite section in the article is this

Simulators and Emulators

One of the biggest surprises to me was the difference between the iOS simulator and the Android emulator. The iOS simulator is lightning fast compared to the Android emulator. However, this is for good reason and there is method behind Android’s emulator madness.

The iOS simulator is indeed very fast to boot, reset and load new apps, but it fails to provide a perfectly accurate representation of an iOS device. It uses the host computer’s CPU and memory, which have a huge effect on the performance of an app. This means apps run much faster in the simulator than on a device, particularly older devices, masking performance related issues. Device testing in the Apple world is an absolute must.

Android’s emulator, on the other hand, is effectively a virtual machine running a virtualized CPU and limited memory. It is a much closer approximation of a real world device. And when dealing with Android’s inherent fragmentation, the emulator is a natural choice as you can specify any permutation of device specs for development and testing, and be reasonably confident the system is behaving accurately. However, device testing is still an absolute must! You just probably don’t need as many.

Highly recommended read.