Enterprises that want to start developing for mobile are faced with a huge variety of vendors and tools. From open source to proprietary and VAR options, there's a lot to consider in the selection process. The ecosystem of development and testing platforms is relatively new, and mobile brings a fresh set of complex factors to the table. For example, mobile development and testing pose challenges with new functional and non-functional requirements related to devices, operating systems, networks, and user behavior. A good development IDE and testing suite must take all these issues into account. With that in mind, The Server Side asked Eran Yaniv, founder and CEO of Perfecto Mobile, for tips to help enterprises make a smart selection.
External, non-native IDEs lack the flexibility of the more mature environments such as Eclipse and Xcode.
Eran Yaniv, Perfecto Mobile
What characteristics should businesses look for in a mobile IDE?
Java developers will be glad to know that their favorite language is still considered an essential feature. Yaniv pointed out that there are pitfalls to choosing HTML or web-based IDEs (such as Titanium) that don't allow development in the native language. "I think these external, non-native IDEs lack the flexibility of the more mature environments such as Eclipse and Xcode which are being continuously maintained and can interface with integrators and additional market tools. I would advise going with native-IDEs that provide a Java or Objective-C environment."
What about enterprises that don't go that route?
"If you do select a non-native IDE, do so with the end in mind. You have to consider some important questions when your IDE doesn't support Objective-C or Java. How are you going to evolve your SDLC? How will you do testing on the performance side? What about functional testing? How will you upgrade the source code when the native code is being developed in a different language?"
There are many popular platforms these days that claim to overcome the web vs. native code issue by offering easy hybridization. These mobile app development tools allow programmers to write in HTML5 and then churn out native code for the client side at the push of a button. But on an enterprise scale, perhaps this won't allow for enough customization and control over the long term. Having a full ALM strategy in mind during the selection process is critical.
What's important to have in a mobile testing suite?
Yaniv stated that continuous integration will be a prime concern for enterprise mobile development. It's already becoming a reality. "We are seeing the start of integration with Jenkins. Having the ability to do testing (such as unit testing) as part of the development, and implementing Continuous Integration for tests is important. Businesses should have a platform that is communicating on the backend with the IDE. The immediate benefit is testing earlier and faster as part of your SDLC."
Next, Yaniv reminded mobile developers that any good suite must be able to test for functional and non-functional capabilities. "Performance, monitoring, visibility, security, all these need to be part of your testing platform. So does communicating with the IDE as a part of CI." Again, the big picture doesn't start or end with the code. It encompasses much more.
What role does cloud play in this arena?
According to Yaniv, the final key factor in mobile development is the ability to scale—not only up, but also down. "As you start to grow in your mobile space, it's not a one-time activity. You need to continue to support your mobile project, or you might have multiple projects. You need to think ahead about how you are going to scale your testing, add features to your application, and add more devices or operating systems as part of your support." He mentioned that this is an area where cloud-bested testing platforms have a distinct advantage. Enterprises don't have to build out permanent infrastructure for testing, but can leverage the flexibility of cloud computing and virtual environments instead.
Testing mobile in the cloud may be an obvious and popular choice. However, moving development itself into the cloud isn't necessarily going to happen for a while. Eclipse Orionproject leadKen Walker explained why this type of platform may be lagging behind. "With very specific domains like iOS and Android, not all of the tool chains are under the control of the people who are writing the cloud-based development platforms. There are also certain licensing models that govern how you package your app or which tools you can use." With these realities in mind, enterprises are still looking at a blend of traditional and cloud-based solutions for mobile development and testing to capture the best of each ecosystem.
What are your experiences like using a cloud-based IDE? Let us know.