11 Tips for Mobile Software Development

More than 99 million smartphones shipped in just the first quarter of this year, says analyst firm IDC. Many of them are winding up in the hands of business users, including your employees and business partners. That trend means, sooner or later, you’ll have to develop smartphone apps. Here are 11 tips:

1. Track market shares.
It’s critical to keep up with trends in smartphone platforms, where the only constant is change. Sure, BlackBerry has long been synonymous with business, but it now lags both Android and Apple’s iOS in the race for market share, which affects what your company uses. In fact, Android is a case study in how quickly a platform’s fortunes can change: Between late 2009 and late 2010, Android’s market share grew 615 percent -- enough to leapfrog into first place, says analyst firm Canalys.

MeeGo and Windows Mobile are two other platforms to monitor. And don’t overlook Symbian, especially if your company has a lot of employees based outside of North America.

2. Learn the language.
Platform companies try to build market share by using programming languages and equipment that developers already know. For example, Windows Mobile lets developers reuse their existing Visual Studio and .NET development skills and server infrastructure to extend their applications to mobile devices. Meanwhile, iOS requires Objective-C development. Partnerships and outsourcing are two ways to develop for platforms that use unfamiliar languages.

3. Develop for multiple platforms.
Cross-platforming requires time and resources, but it ensures that your app’s fate isn’t tied to a single platform. One obvious way is by creating a separate app for each platform. But some developers say it can be cheaper, easier and faster to use CSS to recode Web apps to fit small screens, and then use JavaScript to control the events. The downside is that you might lose access to some of the device’s features, such as an accelerometer.

4. Look beyond smartphones.
Android and iOS now run on tablets too. The good news is that apps originally developed for smartphones can typically run on tablets without modification. But be aware that tablet users increasingly expect developers to create versions that take advantage of their devices’ larger screens and often faster processors. So identify tablet-specific features and leverage those when developing a tablet-only version of your app.

5. Strive for consistency.
It can be challenging to develop an app so it has the same look and feel across all Android or BlackBerry devices, let alone across multiple platforms or across both smartphones and tablets. But it’s still a goal worth pursuing, because most enterprises have a mix of devices. For starters, create a database of all of your company’s approved devices and their features -- particularly screen size, resolution and aspect ratio -- and whether they have a physical or virtual keyboard. Then, design your app to ensure that every function provides at least a basic, user-friendly experience for each device’s user group.

6. Identify integration needs.
If your app needs to tap into another system, such as your company’s CRM and other back-office systems, it’s never too early to figure out how your app will get that access. Just as important, ensure that it gets access in a way that doesn’t leave data in the open and doesn’t create back doors for hackers. Once you’ve got a beta app, test it to verify that the integration works.

7. Don’t hog the CPU and memory.
Sure, many of today’s smartphones have 1 GHz or faster processors and are connected to networks with speeds north of 1 Mbps. But many don’t, so it’s important to develop apps that provide a good user experience even on midrange handsets and older, slower networks. Most of today’s mobile platforms now support some level of multitasking, meaning your app will likely compete with several others for processing, memory and battery power. But be aware that no two platforms support multitasking quite the same way. For example, check whether a platform allows your app to do everything you need it to when it’s running in the background.

8. Be aware of carrier restrictions.
Wireless carriers have the power to block apps, such as those that compete with their fee-based services, or use what they deem as excessive amounts of bandwidth. Learn about these concerns and respect them rather than trying to do an end run. Be aware that even low-bandwidth apps can clog up cellular networks -- and sap batteries -- by constantly generating unnecessary signaling traffic. For example, an overly chatty IM app almost single-handedly crashed T-Mobile’s network in 2009.

9. Respect enterprise concerns.
Design apps so they use bandwidth sparingly, which helps users stay under their rate plan’s monthly usage cap and avoids the need for putting all mobile employees on a pricey unlimited-use plan. Bandwidth efficiency also helps extend battery life. Ideally, your app should not be the reason why a tablet or smartphone can’t go an entire workday before it needs charging.

10. Register with app stores and developer networks.
Registering with developer networks gets you access to their SDKs, while registering as a publisher ensures you get paid. Even if you’re outsourcing development, you can still register as the publisher so you can manage the sales revenue.

11. Certify.
Some app stores require certification, a process that includes vetting at both the platform and network usage levels. Certification often takes longer than developers expect, so don’t build your business model around the assumption that your app will be ready for employees the day after it’s finished.