Software to Go: Developing Applications for a Wireless World

Better Software Magazine
Volume-Issue: 
2009-05
Summary:

The mobile arena is in constant evolution, changing the way we approach software development both from a business and a technical perspective. Taking the time to set your plan can make the difference between success and just a good idea. In this article, Luis Carvalho shares some guidelines for bringing new applications into the mobile ecosystem.

In the technology sector, there is a constant push to be the first to market with the next cool thing. Mobile de­vices are today’s new and exciting battleground. As with all things new, there is a lot of research and planning, platforms changing, and standards winning and losing the fight for survival. As a result, tools, techniques, and development languages are always evolving.

My first Symbian OS application took me almost two months to develop. The software development kit (SDK) had just been released, the development tools were a work in progress, and com­munity help was practically nonexistent. I remember during the first weeks going through the SDK C++ header files to find out whether some APIs were avail­able because there was no complete code in the development environment. Even worse was finding out that sometimes header files had API signatures but they were not implemented.

The Symbian platform has matured, and its SDK and tools have evolved. What took two months to develop six years ago now can be done in two weeks.

Working in the mobile software busi­ness, I have learned a few lessons that I would like to share to help you develop software for mobile devices. Some les­sons I learned from others, but most are gleaned from personal experience. I don’t consider these ideas to be eternal truths, and neither should you. Take them for what they are—guidelines that will evolve as mobile technologies prog­ress.

Set the Target
The first thing you need to do is set your goal. This seems obvious, and it’s certainly not mobile specific. But this is where most projects start to fail, and it is even more common in the mobile arena. Competition between hardware manu­facturers, operating systems, mobile operators, developer bases, and distribu­tion networks is at full strength in the mobile industry. This segmentation is both an opportunity and a deadly trap. Many startups can position themselves in the market either by creating a new niche or by bringing specialized offers into existing fields, but if a strong plan and clear definition of the target are not in place, you can lose your way very quickly.

Where Do Dou Want to Be?
You might think all mobile applica­tions are network agnostic, because the communication stacks of service gate­ways and devices transparently take care of all the magic of transferring bits between both ends. In most cases this is true, but do not make decisions based on this assumption.

No one is capable of testing in all possible network environments. So, what to do? Define the target audience for your application. The best choice is to start right in your own country. If the goal is more international, identify the countries you are going after next. Don’t make this a long-term plan. In ten years, technologies will be different and you will be adjusting to new realities.

Make a plan identifying your target geographical areas, investigate mobile operators in that area, and research the most popular mobile devices. Once you have a short list, then you have a base from which to start making decisions.

How Ar e You Planning  to  Dist ribute  You r A pplication?
If you already have an established company with a Web site and the appli­cation is targeted for your existing cus­tomer base, then making it available for download is your best choice—less cost and quicker market availability.

If your application is tightly con­nected with services that mobile op­erators (AT&T, Sprint, Vodafone, T-Mobile, etc.) want to promote—such as messaging, phone management and protection, games, and high data-con­suming applications—you may want

About the author

Luis Miguel  Carvalho's picture
Luis Miguel Carvalho

Luis Miguel Carvalho is an experienced software engineer in the mobile computing industry where he helps create and deliver innovative mobile solutions. Prior to joining Microsoft, Luis worked at MobiComp as a software architect, responsible for improving existing solutions and driving innovation. After Microsoft's acquisition of MobiComp in 2008, he joined the Microsoft My Phone QA team as senior development engineer.

Upcoming Events