Mobile Optimization: Analyzing Your App

Ignorance is not bliss. Just ask any developer who’s been shocked to find review after review of complaints. Worse yet is when users are disgusted enough to abandon or uninstall the app -- a 95 percent likelihood -- but don’t feel it’s worth their time to explain why in a review or in an email to the developer.

The ideal solution would be to identify problems before they irritate enough users that an app’s reputation is irreversibly shot. The good news is there’s no shortage of tools for aggregating and analyzing that information, some of which would be difficult, time-consuming or even impossible to collect manually.

App store operators are one source of analytics tools. A recent example is Google’s beta of Mobile App Analytics, which provides information such as which device models are using your app the most. That insight can be useful because Android is highly fragmented, so developers have to decide which devices to optimize for. Mobile App Analytics also tracks usage by version -- helpful for tracking the number of users who have upgraded.

Some mobile operators also provide tools. One example is AT&T’s Application Resource Optimizer (ARO), which ferrets out problems such as poor use of caching.

“According to AT&T Labs Research, nearly 20 percent of all HTTP traffic volume is redundant,” says Lisa Burks, AT&T senior product marketing manager. “Nearly all the developers we’ve talked with are surprised to learn that their mobile app is not caching properly. ARO measures this in a few ways -- by looking at duplicate content, cache control, content expiration, content pre-fetching and screen rotation.”

Caching isn’t a minor issue, partly because most operators have eliminated flat-rate, unlimited-use data plans. So identifying caching problems is a way to avoid the ire of users concerned about apps using up their monthly data bucket.


“Without proper caching, content will likely be downloaded multiple times,” says Burks. “In our tests of a popular news app, it downloaded the weather 11 times in five minutes.”

Would user feedback have identified that kind of flaw? Maybe -- but it’s more likely that users would simply abandon the app, leaving the developer to wonder why.

Knowing what’s going on inside your app is one thing, but it’s equally important to learn about the users who are interacting with your creation. Understanding your user demographics will help you marry the app analytics with the audience you are reaching and create an even better experience.

“With Intel AppUp, we believe it is extremely important for our developers to know as much about their users as possible,” says Alexis Crowell, product marketing manager for Intel AppUp. “We provide resources for our developers to make sure they can maintain that direct connection and garner as much insight as possible.” [Disclosure: Intel is the sponsor of this content.] 

App Analytics: Time is Money
Some analytics tools can be helpful for collecting and analyzing non-technical information. For example, appFigures assesses how a price change affects downloads, identifies the day of the week when your app is downloaded most frequently and tracks similar apps’ store rankings.

“Being app developers ourselves, we started appFigures with the modest goal of automating data crunching to make interesting insights easier to spot,” says co-founder Ariel Michaeli. “Since most stores don't provide an API for reporting, we created a proprietary syncing platform that lets us securely retrieve private data (sales, downloads, updates) directly from a developer's account. We get public information about the app (ranks, reviews, ratings) directly from the app stores in real-time or very close to it.”


Saving time is also a big part of these tools’ appeal. After all, the less time you spend collecting data and building spreadsheets, the more time you can spend acting on those insights or developing new products.

So what can developers reasonably expect to save? “It could range from 15 minutes a day for just grabbing data from one or several stores to hours or days for actually making sense of the data,” says Michaeli. “In some cases, appFigures makes information accessible, like store-wide hourly ranks and real-time reviews, which would be impractical to get any other way.”

A similar tool, AppViz 2, is designed for iOS. “The average customer can expect to save about 30 minutes a day or more just from the daily sales analysis and chart trending,” says Dustin Bruzenak, co-founder of IdeaSwarm, the company behind AppViz 2. “If you’re doing more in-depth analysis for things like marketing spend or localization targeting, AppViz can save you days of work or more.

“For rankings and reviews, we’re talking about days and days of work to track this data for all countries. Doing that work by hand would be nearly impossible to complete in a timely manner,” says Bruzenak.

Turning App Insights Into Actions
It’s one thing for a tool to collect information and flag interesting highlights. It’s another to make suggestions about how to act on those insights. The latter can help save additional time.

For example, AT&T’s ARO suggests ways to optimize how an app manages its Internet connection. “A typical [app] startup consists of an input burst, followed by a series of bursts spread out over time,” says Burks. “This approach can dramatically slow down the application’s response time and waste energy on the device. A much better approach is to download as much content as quickly as possible when opening a connection.”

This screenshot from ARO illustrates those kinds of bursts.



“In this example, if the developer had grouped these four connections more tightly, the page would have rendered at least 15 seconds faster, and the radio would be used less, leading to battery savings,” says Burks.

5 Keys for Moving Enterprise Security to the Cloud

The worst economy in 70 years hasn’t deflated the cloud: In 2009, cloud services were already a $16 billion market, says research firm IDC. By 2014, global cloud revenues will hit $55.5 billion, growing five times faster than other IT products.

It’s not hard to see why enterprises large and small are flocking to the cloud. The cloud reduces IT capex and opex by shifting those costs to the enterprise’s cloud provider. That’s an obvious benefit even in flush times, but it’s even more attractive when the recession has CIOs and IT managers looking to run as lean as possible.

Cloud computing also helps enterprises stay nimble -- by enabling them to take advantage of new technologies faster than if they had to buy and deploy the equipment themselves, for example. That flexibility can produce competitive advantages, including rolling out services quickly to respond to changing market conditions.

Another big draw is the ability to scale IT systems up and down to meet changing needs, such as peaks during the holiday shopping season. That lets enterprises be more responsive to a flood of new customers, but without purchasing IT infrastructure that would be underutilized between peak periods.

5 Tips for Fighting Breaches

As any CIO or IT manager is quick to add, the cloud’s benefits can’t come at the expense of security. Even minor breaches can have big implications, ranging from a PR nightmare and class action lawsuits when confidential customer information is compromised, to jail time if it turns out that lax security policies violated laws. Worst-case scenario: a breach so big that Congress enacts a law nicknamed after the company.

Some enterprises have an internal cloud, others work with a cloud provider and still others have a combination of the two. These tips apply to all three models:

1. Start clean.
Some enterprises require their cloud provider to put their data only on brand-new servers. They believe it’s impossible to remove every trace of former tenants and that this electronic detritus creates back doors for hackers.

2. Secure access to the cloud.
Implement strong authentication mechanisms to secure every Web path that provides access to the cloud. Ditch simple, password-based logins in favor of multifactor authentication. In fact, some industries mandate this. One example is financial services, where since 2006 the FFIEC has required banks to use multifactor authentication to protect logins into their sites. Also, take a look outside your industry to see if there are any regulations and best practices that you could adopt or adapt to beef up cloud security.

3. Safeguard the data in the cloud.
This is another place where it’s key to keep up with industry-specific laws and best practices, including ones that can be borrowed from other sectors. For example, the Payment Card Industry (PCI) standard specifies physical and logical controls for data both when it’s at rest and in motion, while HIPAA provides similar requirements for medical data.

4. Verify and audit.
Third-party auditors can verify that your cloud or your cloud provider meet security and privacy laws, as well as any industry-specific best practices. Besides PCI and HIPAA, audits may look at compliance with SAS 70 which covers application security, physical security and security processes. Another is ISO 27002, which lists hundreds of options for security management.

5. End clean.
PCI is also an example of how some industries require that data be destroyed, including the hard drives. That includes when switching cloud providers: The contract should spell out exactly how data must be destroyed.

Need more tips? Check out Cloud Computing: Benefits, Risks and Recommendations for Information Security, a European Network and Information Security Agency report that covers 35 common risks and strategies for mitigating them. These tips are applicable in every part of the world.

Photo: @iStockphoto.com/j4m3z

Mitigate Mobile Cross-platform Headaches

Android is now the most widely used mobile operating system in both the United States  and the world , according to the research firms Canalys and Nielsen. But behind that news lurk a lot of headaches for enterprise developers.

For example, 48 percent of U.S. smartphones run Android. So unless an enterprise is comfortable alienating 1 out of every 2employees or customers, its developers have to create apps for at least iOS, BlackBerry or Windows Mobile. If that enterprise is multinational, then its developers can add Symbian to their to-do list.

“We have European customers that say: ‘We know Symbian is going to die. It might take five years, but in the meantime, a large percentage of our workers have Symbian phones,’” says Adam Blum, CEO of Rhomobile, which provides development tools.

If that weren’t enough work for developers, there’s also fragmentation within some operating systems. For example, each Android smartphone vendor often has a unique implementation of the OS, while differences in screen size and resolution create additional variables that affect an app’s user experience.

Web or Native?
Some developers sidestep fragmentation by using “Web services” or “Web apps,” which consists of taking the phone’s browser and stripping off the user interface so it appears to be an app. One drawback is that the browser isn’t always able to access phone hardware, such as the GPS radio or accelerometer, thus limiting what this pseudo app can do.

“This is a very valid approach if you do not need to do anything fancy,” says Vince Chavy, product management director at RADVISION, a videoconferencing vendor whose portfolio includes endpoint apps that run on Android and iOS devices. “It is easy, and it is quite amazing what you can do with HTML5 and CSS nowadays.”

Some enterprises like Web apps because they leverage their developers’ existing skills. “What we always hear is, ‘Because my developers have Web skills, you get all that productivity and affordability across all phones,’” says Blum.

The alternative is a “native app,” whose benefits include better performance because the software doesn’t have to pull everything from the Web. If the target audience is made up of customers rather than employees, then another benefit is that native apps can be distributed through app stores.

“You will be closer to the look and feel of the device,” says Chavy. “You are only limited by your imagination and the OS SDK APIs.”

Write Once, Run Many
The big downside to native apps is that code for one OS version can’t be reused to create other OS versions. The corollary to that requirement is that if the enterprise doesn’t have developers versed in all of the major codes, it has to find them, which increases costs and lead time. “You need a different code base for iOS and Android,” says Chavy. “You need to find Objective C developers for your IOS client and Java/Android developers for the Android client. Those are tough to find!”

Hence the growing selection of tools that enable cross-platform app development, such as MoSync , PhoneGap  and Rhodes .

“You develop in C/C++,” says Henrik von Schoultz, MoSync co-founder and vice president of marketing and sales. “We will later also use other languages, like JavaScript and Lua. The developer uses MoSync APIs, and at build time we use an intermediate language and have profiles for your target devices. We compile native to the OS you want to target.

“If a feature does not exist on an OS, the system tries to handle that. For example, if the target device doesn’t have GPS, you may use positioning from the cell towers.”

So how much time could a developer reasonably expect to save by using MoSync versus developing from scratch for each OS? It depends, but in one case, a developer went from Symbian to Android in about four hours . “If you have an app with loads of logic and not so much UI, you can save up to 80 percent,” says von Schoultz. “But if it’s a very UI-intense app, you may save maybe 30 percent.”

PhoneGap, meanwhile, emphasizes the importance of having both apps and a mobile-friendly website.

“They can use largely the same code in their mobile website as their native app in PhoneGap because we’re just running HTML and JavaScript right there,” says Andre Charland, president and co-founder of Nitobi, PhoneGap’s creator. “We’re compliant with W3C APIs. You’re also future-proofing your app because as the mobile browsers evolve, you can take your PhoneGap applications and push more of that into the browser, while still augmenting the native app experience with native code via plug-ins from PhoneGap.”

One Size Doesn’t Fit All

Tablets and smartphones come in an ever-increasing range of screen sizes and resolutions. As a result, developers also have to ensure that their app looks and works just as well on a 3.5-inch display as a 4.3-inch display, or on both an Android phone and an Android tablet.

“The first decision is if you want the same GUI on the phone and on the tablet,” says Chavy. “Some developers decide to have the same UX. In that case, they just make sure that when they design the GUI, it can resize nicely by deciding on which area resizes and by setting proper anchors on the objects.

The catch is that consumers and business users increasingly expect tablet apps to take advantage of the extra screen space.

“For example, in our SCOPIA Mobile application, on the phone, you can see the video or the presentation, and not both at the same time,” says Chavy. “On the tablet, since you have a bigger screen, we have layouts with both the video and the presentation.”

Need more details about mobile cross-platform development tools? Check out this article on Mashable.


Using the Cloud to Streamline Development

Developers tend to view server coding as one of the more arduous chores in building a mobile application. An emerging group of vendors, however, are offering to offload that task to the cloud.

These companies, sometimes referred to as “backend-as-a-service providers,” aim to help developers streamline software development, boost time to market and save money. Although cloud services of this kind are relatively new, thousands of developers have started taking the server stack to the cloud.

Aaron Saunders, founder of ClearlyInnovative, a Washington, D.C., mobile solutions provider, is among the developers who’ve used these services. The company employs Appcelerator’s Titanium mobile development platform and recently announced Appcelerator Cloud Services. He says his company uses the “backend in a box” approach with a couple of clients and pitches the cloud solution to all his prospective customers.

Saunders says the cloud option means he doesn’t have to hire a PHP or Ruby specialist to build the back end of an app, which he likes since Ruby developers have become extremely expensive. And managing a development job, he notes, becomes that much easier with fewer people to coordinate.

“Another thing it allows you to do is focus on value-added activities instead of focusing on building the foundation of the application,” says Saunders.

Easing the Server Side
Server-side cloud vendors point to the cloud’s cost savings potential.

An app project’s cost depends on the complexity of the UI on the client side and the logic on the server side, says Tzvi Kopetz, chief operating officer at Applicasa, a Tel Aviv, Israel, company that offers a cloud-based server side solution. “For the majority of the apps, the server side is about 40 percent of the total project’s cost and at least $7,000 for the most simple app,” says Kopetz.

James Yu, co-founder of San Francisco–based Parse, says cost containment and time to market considerations are driving customers to the company’s server-side stack in the cloud. “It’s never been more critical for developers to quickly build and launch their products,” he says. “There’s still a lot of pain in mobile development; it feels like the state of Web development in the ’90s. The tools just aren’t there. What this means is a large time cost for individual developers to learn the technology, and a large monetary cost for larger organizations to build this expertise inside their teams.”

Jo Ann Buckner, vice president of product management at Appcelerator, based in Mountain View, Calif., says the company’s cloud services let developers sidestep a couple of difficult alternatives: hiring someone to build cloud-connected features -- an approach that cuts margins and increases time to market -- or creating their own services, which involves acquiring hardware, writing code and handling scaling issues. “It’s a real pain to do it themselves,” she says.

What’s on Offer?
Companies that cover the server side for mobile app developers offer a mix of products and pricing options.

On April 17, Appcelerator rolled out its cloud services with the launch of the Titanium 2.0 mobile platform. The company currently offers a set of 15 preconfigured mobile application features that developers can integrate into their apps through a single line of code, says Buckner. Those features include user management, photo services, social integration, email templates and push notifications.

The Appcelerator Cloud Services offering is integrated into Titanium, which lets developers build native iOS, Android and HTML5 mobile Web applications. But the cloud services are also available on a standalone basis, says Buckner.

Titanium and Appcelerator Cloud Services are available under a freemium pricing model. The Titanium SDK and Titanium Studio IDE are available for free under an App Explore bundle. The cloud services component of App Explore covers 1,250,000 push and email notifications/messages, 250,000 Tier 1 API calls, 250,000 Tier 2 API calls, and 5 G of storage per month, per application. Appcelerator also offers commercial versions of Titanium and cloud services under a range of pricing plans.

Parse, meanwhile, lets developers “persist” data from their clients to Parse’s servers. To send and retrieve data, developers integrate Parse’s SDK with their applications. Yu says more than 10,000 developers are on the company’s platform, which supports iOS and Android. Parse’s service emerged from beta mode in March.

“At the core, Parse is solving the data problem,” says Yu. “Every other feature stems from data -- user authentication, push notifications, data-driven UI components, analytics, etc.” Preconfigured mobile app services are a future possibility, “but first and foremost, we’re focused on getting the data part right once and for all,” says Yu.

Parse offers free access for up to 1 million API requests, 1 million push notifications and 1 G file storage. A second pricing tier is priced at $199 per month for up to 15 million API requests, 5 million push notifications and 10 G file storage (overage fees are incurred after that). A third tier provides enterprise pricing based on an agreement between Parse and a developer organization.

In February, Applicasa began offering startups a full server-side for their apps at no cost. The company says it provides “a variety of tools including simple database creation, custom queries as well as a full CMS for management of updates, beta version deployment and push notifications.”

Startups can continue to use Applicasa free of charge until an app hits the 100,000 user mark. At that point, the developer can transfer to a paid plan. For non startups, the company provides three packages, which range from $49-$199 per month, depending on the number of downloads, says Kopetz. Applicasa currently supports iOS and plans to make Android support available on May 1.

Photo: @iStockphoto.com/Nastco

Learning From Agile

Agile development methods, which began to evolve more than a decade ago, are poised to impact the emerging field of mobile app development.

The tenants of Agile were first sketched out in the Agile Manifesto, which was signed by a group of 17 developers in 2001. The Agile approach emphasizes iterative development and fast reaction to customer-requested changes. Agile emerged against the backdrop of the traditional waterfall approach to software development -- a linear approach that often kept developers and customers at a distance.

In recent years, Agile methods such as Scrum have become increasingly popular in the enterprise. And now, some developers and architects view Agile as having ample applicability to the expanding field of mobile app development.

“We scrum religiously,” says Kaz Moghim, enterprise architect at iProgr.am.

Moghim’s company launched in March when LogiQuests -- a Los Angeles software company -- acquired InfluxApps, which focuses on social media app development. The combined firm aims to bring enterprise development to the mobile arena. Agile methods represent one aspect of this initiative.

In accordance with Scrum, iProgr.am conducts daily standups and biweekly sprints, depending on the size of the project, says Moghim. A standup, in the Scrum world, is a developer team meeting that keeps participants up-to-date on a given project. A sprint, meanwhile, designates a task -- developing a new capability, for example -- to be completed within a particular timeframe.

Tools also factor into iProgr.am’s use of Agile. The company, for example, employs software from Assembla, a company Needham, Mass., that provides tools and services for speeding up software development. “Assembla is a great project-management tool we use internally that has a lot of Agile and Scrum concepts built into it,” says Moghim.

Updates and Feedback
The Agile notion of developing multiple iterations of software, and obtaining user feedback along the way, may initially seem like an inhibitor in the mobile environment, notes Ben Snyder, chief executive officer at Systemation Inc., a company in Centennial, Colo., that offers project management, business analysis and Agile development training. A website can be updated in one location as opposed to accommodating a multitude of moving targets.

Snyder, however, points out that periodic software updates are a way of life in mobile technology -- not a hindrance. Mobile applications themselves aren’t enormous, complex pieces of software. And in any event, software providers don’t host the whole app on the mobile device. “When you’re talking about adding a little refinement, the Agile environment is perfect for that,” says Snyder.

As for obtaining customer input, online app sellers (Apple’s App Store and Google Play, formerly the Android Market, for instance) provide a mechanism to gauge user sentiment. “Just the way the stores are set up, you get a natural flow of feedback,” says Snyder.

Test-driven development, a process associated with Agile, also meshes with mobile app development. “Let’s take Android development as an example,” says Moghim. “There are over 20 different versions of Android OS out there. There are probably 100 different screen sizes, all with different GPS capabilities -- some with keyboard and some touch-only. What I am getting at is that there are too many environmental variables while coding -- in this case for Android -- which is why you need to have a very solid and almost real-time line of communication between developers and testers to deliver a solid app.”

In this case, an Agile approach is not only a nice fit, but also a critical element. “Test-oriented development is key to the castle in mobile development,” says Moghim.

Agile Thinking
While mobile app developers may benefit from the particulars of Agile, they can also gain from the general concept of flexible software development.

“Mobile app development is perfectly suited for an Agile approach,” says Todd Christy, chief technology officer at Verivo Software, which provides an enterprise mobility platform. “In the process of developing your app, developers will need to make regular changes to functionality and user access in order to satisfy regularly changing requirements.”

That’s an important consideration in the demanding mobile app space. “On the whole, mobile users tend to be more vocal with their desires to add or subtract functionality, so being able to accurately gauge feedback is very important,” says Christy.

And a more efficient development process helps contain costs as well as win over customers. “Mobile development is still in its infancy and it is expensive compared to traditional development,” says Moghim. “Therefore, optimizing that process has always been on top of our list.”