Max Katz heads Developer Relations for, a cloud-based mobile app platform. He loves trying out new and cool REST APIs in mobile apps. Max is the author of two books “Practical RichFaces” (Apress 2008, 2011), and is a frequent speaker at developer conferences. You can find out what Max is up to on his blog: and Twitter: @maxkatz. Max is a DZone MVB and is not an employee of DZone and has posted 82 posts at DZone. You can read more from them at their website. View Full User Profile

How to Quickly Test Native Android and iPhone Apps

  • submit to reddit

If you have have done native mobile app development on Android or iPhone (iOS) then you probably know that testing native apps is not that simple. On the other hand, testing traditional Web applications is pretty straightforward: Launch a Web browser, and you see exactly how the application works and how it looks. Read on and I will show how to test a native app in a similarly straightforward fashion after considering various alternatives.

Option 1: Installing the app on the mobile device

This option is great in that you can test the app on the actual device. However, getting the app on the device can be very time consuming. And, for each testing iteration, the app would have to be built, sent (or copied) to the phone, installed, and launched on the device. While you get to test on the actual device, the process is very slow. Just imagine if you need to make just a small change in the app.

Option 2: Using device emulators/simulators

Getting the app on a device emulator is simpler than getting the app on the actual device. However, now the app is not tested on the actual device, so you may not be getting exactly the same behavior or look-and-feel that you would get on the actual device. Now, this is more of an Android problem than an iOS problem. The Android emulator runs a bare-bones Android version. Most Android phones from HTC, Motorola, and Samsung have their own, slightly modified builds of Android (even the same browser can be slightly different on different devices). Another problems with emulators (mostly Android) is that they are usually much slower than the actual devices, for obvious reasons. While the iOS simulator is pretty fast, the Android emulator is notoriously slow.

The Best Option: Launching the app on the device without installing

I consider this final approach the fastest and most straightforward. It doesn’t require installing the app on the device each time, but you still get to test on the device. This approach uses the Tiggr Mobile Tester app on the device while the mobile apps themselves are developed using Tiggr Mobile Apps Builder.

This tester app only needs to be installed once. The Android version is here and the iOS version is available as an open source version. The app is rather simple. After signing in to your Tiggr Mobile Apps Builder account, it will show a list of all mobile apps (native and Web) created in your Tiggr account. Here is how it looks:

Tiggr Mobile Tester
The most interesting part? Clicking (or tapping) on any project will launch the app. Make any changes to the app in Tiggr? Save the changes, and click the app in Tiggr Mobile Tester. You now get the new version, with all the changes. With this approach we get the best of everything. We don’t need to install the app each time, the app is tested on the actual device and last but not least, it’s very fast.

Still not convinced? Then sign up for Tiggr, create your first mobile app, install Tiggr Mobile Tester (Android or iOS) and test the app.



Published at DZone with permission of Max Katz, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Fabrizio Giudici replied on Fri, 2011/09/16 - 5:32am

While I understand that this post purportedly points out a specific feature of Tiggr (and no objections to the fact that using JQuery for developing an app makes it possible to quickly relaunch an update), I think that Android testing of a Java based app on a real device (and the very need of using the real device) needs to be put more in perspective. For instance, developing with the maven-android-plugin, which allows to modularize the app, many parts of the app can be developed as pure Java and tested as pure Java. Furthermore, splitting in modules makes it possible to have only a partial recompilation when just a few changes have been done. Other tools, such as Robotium, make it possible to run functional tests on the real device without redeploying the whole app. So, on the whole, with the proper design and tools testing Android apps developed in Java is neither slow nor painful.

Mohan Ambalavanan replied on Fri, 2011/09/16 - 5:41am

No offense to your advertisement of your Exadel software 'Tiggr'.. I com everyday to Java dzone to learn abt somethng new and to learn wats happening in Java community n I do find gr8 articles time to time n learn quite a lot from Java dzone..But I really get pissed off when I see article where ppl advertise thier own commercial software's up here and promote their software's which doesn't add any value to the reader... This is not a place for ur advertisement abt ur software features... Hopefully dzone leaders do somthng abt this..

Max Katz replied on Fri, 2011/09/16 - 12:33pm in response to: Mohan Ambalavanan

@Mohan: Have you tried Tiggr Mobile Apps Builder? I'm going to guess not. How do you know it doesn't add any value?

Fabrizio Giudici replied on Fri, 2011/09/16 - 12:44pm in response to: Mohan Ambalavanan

Given that the article is here, it means it meets DZone standards. I personally find it informative, it's not a problem to refer to a commercial product. And in any case they also offer an open source product.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.