Putting Mobile Developers to the Test

Mobile app developers can point to past projects to build credibility with customers, but newcomers lack that option. And even experienced hands may want to obtain some objective measure of their abilities -- a seal of approval of sorts.

That’s where technical certification programs come in. Training and developer certification tracks have become commonplace in such IT fields as networking and security. Mobile development, as a relatively new area, has generally lacked vendor-neutral certification programs. But that situation has begun to change.

The Mobile Development Institute (MDI), a division of On The GoWARE, a mobile app development company, offers its MDI Certified Developer (MDICD) program to mobile developers. In addition, CompTIA and viaForensics are working on a secure mobile developer credential, slated for launch later this year.

Mike Newman, president of On The GoWARE, says certification can help developers early on in their careers as they look for full-time positions. Employers stand to benefit as well when a job applicant can back up his or her claims to competence. “It is difficult for a lay person...to qualify technical people,” Newman says.

MDICD Certification
MDI offers MDICD certifications in Apple iOS, Google Android and BlackBerry. “It is not necessarily just a general mobile developer certification -- you get certified in a particular specialty,” Newman explains.

Students or developers often obtain certification on more than one platform. Initially, BlackBerry was the most-requested MDICD certification. Next came Apple iOS. But the rise of Android reduced demand for BlackBerry certification, Newman notes. MDI will eventually cut the BlackBerry program due to lack of interest.

MDI has considered adding a Windows Phone certification, but so far it hasn’t generated enough certification interest. “We will see what the market does and see if there is a big demand [for Windows Phone],” Newman says. “If the market demands it, we will be there.”

Newman estimates that 2,000 to 3,000 people have obtained MDICD certifications thus far.

The certification exam calls for students or developers to log into their app store developer accounts and demonstrate that their apps are available for download.

An exam proctor then conducts a remote viewing session of the test taker’s development environment. Among other things, the proctor will check to see whether the appropriate development tools have been installed and configured and ask the test taker to make a slight modification to his or her app. The modification must be demonstrated in a simulator. A list of exam requirements is available here. As for price, each examination has a $375 proctor fee.

MDI offers training classes toward the MDICD certification. Students with little or no programming experience can begin with a programming fundamentals and mobile technology introductory course, move on to foundational courses in Objective-C and Java, and eventually take operating system-specific classes. Experienced developers seeking certification may take the certification test without signing up for the classes.

Secure Mobile Application Developer Credential
and viaForensics, meanwhile, have been developing a secure mobile app developer credential and associated testing services. CompTIA, an IT industry association, already runs numerous IT certification programs including A+, Network+ and Security+. CompTIA’s credential partner, viaForensics, provides mobile app security, mobile forensics and mobile forensics training services.

Ted Eull, vice president of Technology Services at viaForensics, says the companies are in the exam development process. He expects the credential program to launch in the first half of this year.

In an interview last year, CompTIA and viaForensics officials said the credentialing initiative will educate developers on the differences between securing mobile apps and shoring up traditional applications. The program aims also to discuss the mobile app threat model and provide practical experience in coding secure mobile apps. 

Mobile Simulators and Emulators: An Update

Mobile emulators and simulators can help developers test their apps on different devices without having to actually have them on hand. The testing tools can make testing easier, particularly where there are lots of variations in device types, screen sizes and operating systems. But they also face some limitations.

The terms “emulator” and “simulator” are often used interchangeably. These technologies serve as virtual pieces of hardware that operate on a PC or laptop.

Developers can obtain emulators from platform and device makers. Google’s Android SDK, for example, includes a mobile emulator. Earlier this year, Intel released x86 system images that let the Android emulator access a development platform’s CPU natively, which boosts performance. [Disclosure: Intel is the sponsor of this content.] In addition, Apple’s iOS Simulator lets users run iOS apps on a Mac. There is also a Windows Phone Emulator from Microsoft and BlackBerry Simulators from RIM. Handset manufacturers such as Samsung and Motorola also offer emulators as add-ons. 

Such emulators and simulators help developers design, test and discover bugs in their mobile apps. The tools are typically used in the early stages of app creation and generally provide an initial level of testing.

“In general, mobile platform emulators are great,” says Jason Ray, software engineer at Agilex Technologies, a Virginia-based professional services company that specializes in enterprise mobility. “While they don’t replace usability testing, they do provide quick feedback during the development process and a mechanism for automated UI testing.”

Damian Moriarty, international delivery manager at Retriever Communications, which provides an integrated development environment for mobile apps, says functional testing is far easier to accomplish on device emulators. Logging faults and taking screen shots of faults is simpler when working on a desktop. Retriever Communications’ RADE IDE links to emulators so that a developer can deploy an app directly to the testing software, according to the company. This helps promote fast prototyping, Moriarty says.

In addition, emulation eases the task of delivering a cross-platform application. “It makes the ability to deliver a multi-platform app far more feasible,” Moriarty says. “You don’t need a huge storeroom of devices to account for every single device permutation.”

“Because we cannot buy all the phones for each developer, it is convenient to use simulators,” adds Ryhor Burakou, iOS team lead at Elinext Group, an alliance of software development companies based in Minsk, Belarus.

Limitations of Mobile Simulators and Emulators
While emulators and simulators provide convenience, they also face limitations. Most notably, emulators can’t completely mimic a given device. So the test results can’t be completely reliable.

Moriarty says an emulator may be used to project an app’s color scheme on a wall for several observers to view. But colors displayed on the actual device -- in full sunlight as opposed to projected in a darkened room -- may be too close together to provide sufficient contrast to keep the app useable, he says.

Burakou advises developers never to judge actual visual aesthetics or app performance based on data data from the emulator.

As for performance, an emulator may underperform or outperform the actual mobile device. Moriarty says that in working with Windows Mobile Emulator over the years, he’s found that running the emulator on a laptop with a 2.4 GHz processor isn’t going to flush out the performance issues on a mobile device equipped with a 600 GHz processor.

More recently, Moriarty has encountered the reverse situation with Android emulators. “They seem to be much slower than the device, particularly when we are talking about tablet apps,” he says.

So developers need to take into account the potential differences between the performance they see in the emulator versus what a user will experience in the field with actual devices. Moriarty says app makers ultimately need a physical device to fully understand whether an app’s responsiveness will fall within a range acceptable to users.

Emulators are useful for prototyping and uncovering problems early on in the app design and development lifecycle. They can give developers a quick take on whether an app will run on a particular device, without having to initially invest in that device. Actual hardware testing will need to take place at some point, however.

In short, emulate -- but then verify.

Photo: Corbis Images

Who's Still Using Your App?

If 90 percent of people who downloaded your app stopped using it after 30 days, would you consider it a success? That’s the question raised by a February 2009 Pinch Media study. Keep in mind that back then, there were fewer than 50,000 apps. With so many more today -- and most of them free -- it’s even easier for consumers to flit from app to app to app.

“Free apps have been taking the app store by storm in the last year or so, lowering the barrier for download considerably,” says Ariel Michaeli, co-founder of analytics vendor appFigures. “I mean, who won't download something for free? But that doesn't necessarily mean they want it, so they'll abandon it rather quickly.”

That’s a concern not only for independent app developers, but also those on staff at companies that are spending five or six figures to create an app and want to ensure a decent return on that investment. A great first impression encourages repeat usage.

“According to research by Localytics, 26 percent of mobile apps are used just once after they are downloaded,” says Robert Gary, vice president and general manager for mobile enterprise at Nuance Communications. “So if you’re planning to build a mobile app for your business, getting users to download it will be just the beginning.”

Another challenge is that developers often have a tough time getting even a ballpark estimate of how many people have abandoned their app. If that app is linked to a service -- say, song downloads -- then usage of that service could provide clues. Two other options:

  • “Measure the number of updates,” Michaeli says. “While most users will download an update even if they don't use the app, the existence of the app on the device can suggest it was not abandoned.”
  • Also: “In-app purchases (when available) can be an indicator of abandonment,” Michaeli continues. “The problem here is being able to estimate users from purchases, which is no simple task.”

Do those on-the-cheap strategies provide a decent snapshot? Not necessarily. “Without in-app analytics, a developer has a limited set of tools with which to measure abandonment,” Michaeli says. “It's kind of like cutting a steak with a butter knife: It's not the right tool for the job, but with enough persistence, it'll work.”

First and Foremost: Don’t Build a Crap App
Build a really great app. That’s a surefire way to keep ’em coming back. Of course, if it were that easy to predict what will resonate with users, every developer would already be doing it.

“Who would have thought that Angry Birds would be so popular?” says Sam Liu, vice president of market at Partnerpedia, which provides app store solutions. “I don’t think the developers themselves would have guessed that.”

Keeping an app fresh is one option. For example, adding a level to a game each month can encourage users to keep playing.

Another option is to do such a good job of solving a problem that users find it unthinkable to go back to the old way. Case in point: Some surveys show that consumers increasingly prefer self-service options over, say, calling and talking to a CSR. So if a mobile app enables self-service, then they’re more likely to keep using it.

“Consider another reason why customers like apps,” Gary said. “Twenty-five percent said apps beat waiting on hold to get to help (read: I like to serve myself quickly). Another 20 percent find apps more personal than other channels. This is great news for companies trying to increase personal connections with customers and sheds some light on focus areas: make the app personal, make it easy to use, make it as convenient as possible.”

If you’re developing for a business, there’s another incentive to make a great first impression. “Nuance research shows that 79 percent of consumers ‘feel’ a company is innovative following a good mobile app experience,” Gary says. “On the flip side, 55 percent of consumers will consider changing companies if they have a bad mobile app experience.”

Find the Right Users Right Away
Many apps are abandoned immediately because they’re not what the user expected. “They mistakenly download an app they think does X when in fact it does Y,” Liu says. “How you describe the app is very important.”

Another solution for minimizing app abandonment is to get your app into a curated app store. These stores feature one or more app categories and are stocked with curated recommendations instead of every available app in those categories. That mini store is then made available in a place frequented by people with that set of interests. For example, a website that caters to fitness buffs might have a curation company create a mini store of apps for running, counting calories and staying motivated. Or an enterprise might hire a curation company to create a mini store for its employees, business partners or customers.

AppCarousel and Partnerpedia are two examples of curation companies. “We pick based on the top rankings, to start with: the top 25 or 50,” Liu says. “So sort of by definition, we’re already selecting just the ones that we think have a higher adoption. What we don’t know is whether those apps have been abandoned.”

Partnerpedia currently gets its apps from aggregators such as the now defunct MobiHand. “But we’re looking at opening it up to the individual developers,” Liu says. “We’ve had about a dozen in the last two or three months that have approached us: ‘We’ve got this app. We’re looking for a channel or a way to get it to business users.’ Google Play is not ideal for business users because of the way they procure and buy apps, so people approach us.”

There isn’t much research about how abandonment rates vary for business users versus consumers. But it’s a safe bet that business users are less likely to abandon apps that their employer recommends or even requires. Hence the value of working with a curation company, which can be a way to get an app in front of a CIO, IT manager or other decision maker.

“Getting mobile apps to business users is a new world,” Liu says. “That’s not as well thought out as the consumer world. It’s just a matter of time before that ecosystem develops. It’s a higher margin world, if [developers] can break into it.”

Photo: Corbis Images

The Evolution of APIs

Mobile operators sometimes offer application programming interfaces (APIs) to help developers create features that make their apps stand out in the marketplace. Those benefits can rub off on the operator by helping make its version of a smartphone more attractive, which is one reason why the selection of operator APIs is steadily growing.

“The most advanced operators are extending the number of APIs they offer,” says Heavy Reading analyst-at-large Caroline Chappell. “Telefónica has identified around 50 APIs, not all of which are ready yet.”

Another reason why operators are increasingly offering APIs? They enable their network to cater to the enormous diversity of customer interests, particularly in niche categories.

“Operators are becoming more realistic about the long tail, realizing that this is going to be difficult to reach and not especially lucrative, so they are concentrating more on providing APIs for internal and trusted third-party developers and enterprise developers,” Chappell says.

Mobile App Development and APIs: What to Consider
APIs are a familiar concept for any developer. But if you’re new to the mobile operator variety, there are a few things to consider, including type, cost and where to get them. The Sprint Services Framework, for example, offers network-initiated APIs. That means the APIs use network-based resources -- as opposed to only software on the smartphone or tablet -- to provide developers with access to information such as location, messaging and device status.

“The primary benefit to the developer of this framework approach is the ability to access all of these services without the need to maintain a unique connection to each back-end network element independently,” says Brian Smith, Sprint’s product and development director. “Being network-initiated, there is no dependency on an application that resides on the device,” continues Smith. “[That permits] the developer to create an application that may, for example, locate a customer or determine their terminal status (device on, off or roaming) without the constraints, development costs and support headaches associated with creating applications that must work across a multitude of device types and operating systems.”

As their name implies, network-initiated APIs use network resources. This enables them to provide more functionality, which comes at a cost that’s often passed on to developers.

“A device-resident application that requests the location of a device using solely the GPS capability may be free,” Smith says. “However, the value-add for network-initiated APIs like location includes the ability to locate a device using network triangulation (including indoor location) and cell-sector location if GPS is turned off on the device. Each of the operators offering a network API solution will have individual requirements for cost, acceptance and on-boarding for use of their platforms.”

Some APIs enable developers to have the operator take care of billing, thus eliminating that overhead cost. Other APIs enable services that might cost the developer more to create and support on its own.

“For example, we offer an in-app payment API that lets developers charge for content or additional capabilities that are sold within their application,” says Jon Summers, senior vice president of growth platforms at AT&T, which currently offers 79 APIs across 14 categories. “These charges are billed directly to the AT&T bill. And Our AT&T Watson speech API provides developers with speech transcription and translation capabilities for their apps. Providing the right APIs will enable the developers to design apps faster and more cost-effectively.”

Is There a Catch?
One potential downside of operator-provided APIs is that developers have to modify their apps for each operator. That can limit each version’s addressable market to that operator instead of, say, all iPhones. But that situation is slowly changing.

“Three Canadian operators -- Telus, Rogers and Bell Canada – have collaborated to roll out common APIs based on the GSMA OneAPI standard,” Chappell says. “Four Polish operators have signed a letter of intent to harmonize their APIs.”

Another example is the five operators -- AT&T, Deutsche Telekom, Vodafone, Verizon Wireless and Telefónica -- that plan to offer access to one another’s APIs. “[Those] five are planning to federate their APIs, so that if one operator gets an API call that it recognizes is for a partner operator's API, it will pass the call to that operator,” Chappell says. “This means the operators can continue to use their own APIs rather than having to harmonize/standardize them.”

“Operators do acknowledge that not having common APIs is a problem,” continues Chappell. “But equally, it would be a large challenge to try and standardize them across multiple operators.”

Besides participating in the upcoming five-operator app store, AT&T is also using the GSMA to make more and more of its APIs available across other operators. “For example, our speech API includes a suite of seven different AT&T Watson-enabled speech recognition and transcription capabilities,” Summers says. “This API can be used by any application regardless of the carrier network.”

APIs: Where Do You Get Them?
The operators themselves are an obvious source of APIs. But as the industry evolves -- the aforementioned five-operator joint effort is one example -- so do the options for getting operator APIs. Sprint, for example, provides them directly and through its Solutions Enablers.

“Sprint’s Solution Enabler partners provide a valuable resource for developers with a need to access APIs, but who may not want to fully integrate directly with the Sprint platform,” Smith says. “These partners also serve as API aggregators and can provide access to APIs across multiple operators.”

Many mobile operators have sister companies in the wireline telephony or TV businesses. Those operators’ APIs can sometimes be useful for developing mobile apps that work with non-mobile services, such as a social networking app that can interact with a TV set-top box.

“We have a U-verse-enabled API,” Summers says. “This allows a developer’s app to interact with the AT&T U-verse IPTV service via the AT&T U-verse receiver. Once downloaded and launched by the customer and paired with a receiver, the app can send remote control commands, receive data on what is being watched, detect events such as channel changes, and direct the U-verse receiver to display content from specially configured websites. Integrating our various platforms and exposing them via APIs is a big focus for us.”

Regardless of where mobile app developers get operator APIs, it’s clear that they’re using them. “When we launched this initiative in 2009, we averaged about 300 million API calls on our network per month,” Summers says. “By mid-2012, we were averaging about 5 billion calls per month.”

Open Source IDEs: An Update

Integrated development environments, or IDEs, aim to boost programmer productivity in both the desktop and web applications worlds. Increasingly, those offerings are pushing into mobile development, and open-source IDEs are part of that evolution. Here’s an overview of the latest on open-source IDEs.

IDEs Going Mobile

In June, the latest Eclipse release train, dubbed Juno, included a new package, Eclipse for Mobile Developers. The Eclipse Foundation’s press statement described the package as making it “easier for developers to download and use Eclipse with a variety of mobile SDKs, including the Android SDK.” A month later, Oracle introduced NetBeans IDE 7.2. NetBeans’ Java Micro Edition includes tools for building and debugging apps for mobile devices, a GUI designer and a mobile game builder, among other components.

Some industry executives view the open-source IDE’s mobile moves as inevitable. “As with anything in the open-source world, the work happens where the interest is,” says Doug Seven, an executive vice president at Telerik. Seven leads the  company’s Icenium division, which focuses on building cross-platform developer tools.

“Mobile is hot, so it’s natural that open-source IDEs would be turning to mobile -- just as many of them emerged solely for web development when that was the new hotness,” Seven says. “Open source is very opportunistic, and mobile is the opportunity that is knocking.” Commercial IDE makers are also opportunistic, adds Seven, who notes that many mobile IDEs are showing up on the commercial side.

“I see [Eclipse and open-source IDEs] playing a larger and larger role,” says Andrew Graham, director of application development for mobile security company KoolSpan. With Eclipse, “the community seems active and the plug-ins they contribute are useful,” Graham says.

Under the Hood
Developers can directly download an open-source IDE, but they may also see them embedded in other development platforms. Vendors have adopted open source as a way to avoid having to create and maintain their own IDEs, according to Graham. He cites the example of Research In Motion and its propriety BlackBerry Java Development Environment. JDE was in use for years, he says, but now the company has switched to Eclipse.

RIM’s BlackBerry developer website notes that JDE is “no longer under active development” and recommends programmers new to BlackBerry Java development use the BlackBerry plug-in for Eclipse.

Meanwhile, the upcoming BlackBerry 10 includes the QNX Momentics IDE, which runs on Eclipse. BlackBerry 10 developer toolkits are already available in beta form; the new operating system is slated to come out early next year. The bundled Eclipse approach and the plug-in give developers two ways to go.

In another example, Appcelerator Inc.’s Titanium Studio IDE is based on Eclipse. Titanium Studio is built upon Appcelerator’s January 2011 acquisition of Aptana and its Eclipse tools.

Appcelerator built mobile features around the Aptana technology, which was web-development oriented, says Nolan Wright, Appcelerator’s co-founder and chief technology officer. “Basically, Aptana had the raw ingredients needed for an IDE,” Wright says. “We just had to add in mobile-specific capabilities.”

Eclipse has been used by several vendors including BlackBerry and IBM because it provides an affordable way to build their platform tooling, Seven says. “For many platform vendors, leveraging open-source IDEs like Eclipse is smart, because it accelerates their tooling needs without putting them in a competitive tooling business, essentially letting them focus more attention and effort on their platform.”

Customization of these IDEs should be loosely connected so the platform vendor doesn’t have to maintain its own full derivative of the open-source IDE, Seven explains. Instead, the vendor would only be maintaining plug-ins and SDKs that work with the open-source IDE.

Open Source: Contributions
Open-source IDEs face a couple of challenges, says Seven. Competition with commercial IDEs is one. Open-source IDEs, he says, can easily catch up with basics such as code editor, statement completion and integrated compiler. But open source will “struggle in the long run for differentiating value that drives the IDE market.” Seven adds that commercial IDE vendors will continue to push the envelope in an attempt to monetize differentiating productivity benefits -- Microsoft Visual Studio’s IntelliTrace, for instance -- as long as they can before those features become slowly commoditized in the open-source market.

Another open-source challenge relates to customization, according to Seven. “The challenge with IDEs in the open-source world is that any variation has a much more significant impact on developer productivity,” he says. “That is, if you customize something, now you are both maintaining the IDE code base and the product you are developing.”

Wright, however, says only a small percentage of developers contribute back to an open-source effort. And contributing isn’t necessarily viewed as a burden by those coders who do participate. Developers, he says, tend to contribute when they encounter something they want to address: a new capability or a bug fix, for example.

While IDE technology evolves in the mobile space, individual coders looking for an easy way to try out the technology -- and platform vendors seeking to bundle it -- will keep interest in open source alive. “I don’t see Eclipse or the open source idea going away any time soon,” Graham says.