Writing Mobile Code Essential Software Engineering for Building Mobile Applications [Electronic resources]

Ivo Salmre

نسخه متنی -صفحه : 159/ 37
نمايش فراداده

Introduction

This chapter is specifically about defining a software development methodology for use when designing and building mobile applications.

Developing software poses two kinds of difficulties for developers, architects, and managers. There are those difficulties that are truly inherent to software development, and difficulties that are transient, reflecting the immaturity of the development tools and technologies available at the present time.

In the past 10 to 15 years, desktop and server application development have gone through a huge transformation in solving the "transient" problems of software development. Today's development tools are incomparably more productive than they were even a decade ago. This is particularly true in the areas of user interface design and debugging. This same transformation is now underway for mobile development. Many of the design and debugging enhancements for desktop and server development are now available for mobile devices, making this part of mobile software development much easier and more accessible to a wider range of developers than just a few years ago. The productivity of writing software has gone up. Because of this, more software development projects now are feasible (some of which would have otherwise been unreasonable to undertake). Mobile software development projects that only a few years ago would have been unjustifiable due to cost and complexity concerns are now quite feasible because of the advances in programming tools and technologies.

But as with desktop and server development, there is a huge gulf between "being able to write code" and "being able to build great applications." The latter challenge represents the inherent difficulties of modern software development. It is one thing to be able to sit down, write, and debug code and quite another to knit all the code into a well-performing, reliable, and flexible application.

The way to successfully navigate the inherent difficulties present in software development is through good methodologies. In short, a methodology is a set of guiding principles to get you to a successful end. Many of the methodologies for writing desktop and server applications apply equally well to mobile device software development, but special emphasis must be placed on the challenges that are unique or accentuated when building mobile device applications.

This chapter is divided into two halves. The first half of the chapter discusses overall development methodologies, adding specific mobile device notes where appropriate. The second half of the chapter specifically lays out a software development methodology for mobile application development. The goal of the earlier sections of this chapter is to get you specifically thinking about the importance of methodologies in software development, and the latter portions of the chapter lay out a concrete software development methodology to follow in mobile software development.