alphaspirit - Fotolia
Using mobile app emulators is a handy way to see how the code is performing within the context of the app. The trick is choosing the right tool, according to a developer advocate.
While some mobile application developers today choose physical device testing over using a mobile application emulator, the latter is still a viable and widely used way to see how the code is performing within the context of the app. The trick is choosing the right tool, said Jen Looper, developer advocate for Progress, in this podcast interview. Another trick is knowing what can go wrong when using a mobile application emulator, especially when weighing them against simulators.
Understanding how to leverage the benefits of mobile application emulators and simulators in mobile application development can be a "sticky business," Looper said. She described differences between iOS and Android mobile application emulator tools, as well as device-related issues in local testing, helpful plug-ins for emulators and more. She also talked about problems she's had with Android mobile application emulators.
Before joining Progress, Looper was a mobile and web developer for World Singles and lead developer for PAID.com and other companies. She was the founder of Ladeez First Media, a developer of educational and fitness-oriented mobile apps.
What is a mobile application emulator?
Jen Looper: The word emulator was actually coined by IBM in 1963. It's a virtual machine. And it's a version of an OS that's compiled for the desktop CPU. So, for an Android emulator, it's going to be a copy of an Android device. And for iOS, it's as close a copy as we can get to an iPhone with that machinery displayed on your local computer. So, what you're trying to do [with an emulator] is get as close as possible to the experience that you're going to have, you know, in your hand on your iPhone or on your Android device.
What's tricky about working with a mobile application emulator?
Jen Looperdeveloper advocate, Telerik
Looper: When you're working on your local computer, you're never going to actually get 100% parity of the work that you're doing on your local computer versus what you can do on a device. For example, on your iOS emulator, you're never going to be able to just, like, take a picture, because it doesn't have the capabilities that your device actually will. So, you just need to keep these limitations in mind as you're developing locally. Always remember: Test on the device -- early and often. That's always my advice.
Why are some mobile application emulators better than others?
Looper: There's an interesting history of the way that various entities decided to create their emulators. So, on iOS, that's a little bit of a closed garden. So, you have iOS, which is expecting that you're using X code when you're building a native app or something approximating a native app. And the emulator or simulator, as they called it, is bundled into X code. So, you're always going to be leveraging that iOS simulator. And what it is, basically, is a Mac app. And it's pretty close to what an iPhone can do, with the exception that it doesn't have some of the hardware capabilities.
Now, for some reason, with Android, it's kind of interesting, because what they decided to do is build a true mobile app emulator. And they built exactly the same capabilities, including the hardware capabilities, within the emulator and running on your local computer. So, it is basically an ARM processor built with a particular version of software.
The [Android mobile application emulator] is slow as molasses in January for that reason, because they kind of went all in and said, 'We're going to just recreate an Android using software on a local machine.' [Like,] take a picture with your Android emulator. That's great except that it takes 20 minutes to open sometimes. So, this emulator is really slow in its earlier manifestations.
How cloud services expand mobile app testing options
Mobile-backend-as-a-service providers make mobile app development easier