Writing Mobile Code: Essential Software Engineering for Building Mobile Applications

Paperback (Print)
Buy Used
Buy Used from BN.com
$38.23
(Save 41%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 96%)
Other sellers (Paperback)
  • All (9) from $1.99   
  • New (3) from $61.14   
  • Used (6) from $1.99   

Overview

Praise for Writing Mobile Code

"This book will be your new bible for the rapidly developing world of mobile computing. From design to performance, the information you need to be successful is here."

—Doug Ellis, Area Technical Manager, Cognos Corporation

"In the often resource-constrained world of mobile device development, solid software engineering practices are essential to success. Ivo's book, with its emphasis on code performance, is refreshing and timelymdand it delivers!"

—Bill Draper, Director of Software Development, MICROS Systems, Inc.

"To write mobile, you need to think mobile. This book is a big first step in getting your head into the right gear."

—Jon Skeet, Independent Software Engineer

"Writing Mobile Code is an indispensable resource for any programmer, whether or not you are writing mobile code. That's because Salmre not only teaches you how to program mobile devices, he also teaches you how to be a good programmer. Salmre's writing is easy to follow and has real-world application. He teaches the novice how to develop robust applications with the user in mind, and he reminds us veterans that keeping things simple is very important. I am recommending this book to my peers and anyone who needs to write a program."

—Michael Maitland, Sr. Systems Architect, Target Systems

"A great reference and learning tool that covers all the main issues for software engineering on mobile devices, this is an essential book for anyone who is developing software on mobile platforms. Designing software on a mobile device has a lot of unique challenges; this book walks the developer through all of them."

—Mark Gilbert, Software Designer, Microsoft Corporation

"In this book, Ivo Salmre leverages his experience as a designer of the .Net Compact Framework and teaches us how to develop effective mobile applications. It covers the entire process of designing and developing mobile applications with a focus on performance optimization. Although the examples in this book are given in C# and Visual Basic languages, it would prove useful to mobile developers of all platforms. I highly recommend it."

—Michael Yuan, PhD., Mobile Software Consultant

"Just when you thought you knew how to write mobile code, this book makes you reconsider the things you took for granted. Salmre provides a balanced mix of software recipes and forays into the philosophy of mobile development that will help any mobile developer to write better apps."

—Alex Feinman, Software Engineer, OpenNETCF.org

Mobile computing devices have evolved from fixed-purpose communications tools to compelling and extensible mass-market computing platforms. Now, they stand poised to offer truly ubiquitous and mobile computing—and to revolutionize the way people work, communicate, and interact with the world around them.

Writing Mobile Code is the first definitive guide to writing applications for the new generation of mobile devices. In this accessible, hands-on reference, readers will find the principles and methods of great mobile software design and real-world examples to support them. While the many examples use the .NET Compact Framework, C#, and Visual Basic .NET, the design and engineering concepts Salmre discusses apply to all mobile-computing technologies and platforms.

Highlights include

  • Performance considerations, including memory management, multithreading, XML, and graphics
  • Designing the right user interface
  • Establishing appropriate data-access and communications models
  • Strategies for packaging and deploying your mobile application

Whether you are new to designing mobile device software or a seasoned mobile-computing developer, this book will give you a deep understanding of what is unique and interesting about mobile development and how to build successful mobile applications.

In short, Writing Mobile Code is destined to be the seminal guide to this growing field for years to come.

Read More Show Less

Product Details

  • ISBN-13: 9780321269317
  • Publisher: Addison-Wesley
  • Publication date: 2/1/2005
  • Edition description: New Edition
  • Pages: 792
  • Product dimensions: 6.84 (w) x 9.20 (h) x 1.36 (d)

Meet the Author

About the Author

Ivo Salmre has worked at Microsoft for nearly 12 years. For almost 10 years Ivo worked in Redmond, Washington, as part of the design team for Microsoft's development tools for servers, desktops, and mobile devices. He was the Lead Program Manager for the design of the .NET Compact Framework. Following this, Ivo worked in the UK as the Product Manager for .NET and Developer Technologies. He now works in Aachen, Germany, at Microsoft's European Innovation Center (EMIC), doing research on advanced programming technologies for mobile devices and networks. Ivo holds a Bachelor of Science in Electrical Engineering from the University of Connecticut and is a frequent speaker at industry conferences.

Read More Show Less

Read an Excerpt

Extreme Programming InstalledPreface

There is a mobile device revolution underway.

It is only very recently that mobile computing devices have crossed the boundary between fixed-purpose communications devices to compelling and extensible mass-market computing platforms. The upcoming decade will see an explosion of capable mobile computing and communications devices providing ever-richer focused information and services to aid people in their daily work and personal lives. It is difficult of overestimate the impact truly mobile and ubiquitous computing will have on the way we work, the way we live, the way we communicate, and the way we interact with the world around us. Intelligent mobile device software is central to the sea change that is underway.

This book is about how to build great mobile device applications. To achieve this goal, it provides a mix of important conceptual knowledge and concrete practical examples. The examples are developed in C# and Visual Basic .NET and target the Microsoft .NET Compact Framework, but the concepts in the book are relevant to all kinds of mobile computing programming technologies and platforms. Visual Basic and C# developers will get the greatest benefit from this book along with specific technical knowledge, but the book is intended for anyone interested in how to build great mobile device software regardless of the programming technology they choose to use.

If I am allowed to hope for a desired book review, it would read: Extremely practical yet thought provoking, Writing Mobile Code will make you a better software developer and get you excited about building new and innovative software for mobile devices.The end readers will have to judge how close I have come to meeting this lofty goal.

The goal of Writing Mobile Code is to create a "different kind of technical book." In discussing the idea for this project with the publishers and other interested parties, the question was posed, "What do you think is missing from most technical books today and what unique value will this book offer?"

What is missing from most technical books today?

Today technical reference materials about software development abound. There is no shortage of facts and reference information on the Web as well as in the racks of bookstores. We live in a world overflowing with information, but in spite of, or perhaps because of this, real wisdom is hard to come by. The interested person must dig though the heaps of coal to search for the diamonds of insight that are surely hidden in there somewhere. Like coal, raw facts themselves are extremely useful but they are not the precious gems we seek. What is missing, and particularly missing from existing mobile software development literature, is an accessible hands-on engineering book that lays out the principals and methods of good mobile software design using concrete examples to demonstrate theory. This book hopes to give the reader the gems of wisdom that will enrich him or her and spur them on to discover the great possibilities that mobile software development holds. The book offers insights with practical examples, encouraging the reader to experiment and make his or her own observations while learning the key elements of mobile software engineering.

What unique value does this book add?

Writing Mobile Code is about mobile software development and is meant to go beyond the bounds of any specific technology. Although the numerous examples offered in the book are written using the .NET Compact Framework, the general principals discussed are valid for all mobile device technologies. Technologies advance rapidly, but good engineering practices and design wisdom grow slowly through the painstaking learning of trial and error. This book is about learning the design and engineering principals that will prove durable even as technology advances.

The goal of this book is not to flood the reader with a multitude of details devoid of greater context but rather to impart in the reader an appreciation for the proper philosophy and design methods for mobile software development. Detailed examples present the facts and figures, but the main goal is to grow in the reader a deep understanding of how to write great mobile software. There will always be more facts to learn, and specific technologies will always evolve and eventually be replaced; this book concentrates on explaining what is unique and interesting about mobile software development and how to build successful mobile applications.

What Various audiences can expect to gain from reading this book:

  • People presently doing software development for mobile devices—Mobile software development is rapidly moving from being a specialized black art of the initiated to a mass developer-audience community. This book endeavors to offer a rich and, I believe, new perspective on mobile software development that will be valuable both for developers new to mobile devices as well as to seasoned hands in the mobile software domain.

  • Desktop and server Java, C#, or VB.NET developers considering a move to or moving on to device development—Desktop and server developers already using any of these languages will be immediately able to follow the examples in this book. What this book offers additionally to these developers is a deep understanding of how mobile software development differs from classical desktop and server development. I believe this book will be an enjoyable test drive for these developers and convince them that mobile device development is an arrow they will want to add to their software development quiver. This book will impart in these developers the knowledge and skills necessary to build great mobile applications.

  • C++ developers looking at moving to a managed runtime language such as C#—The chances are very good that people doing C/C++ development today will be moving some of their programming work to managed-code languages such as C# in the near future. The productivity and reliability benefits are simply overwhelming. This book offers many examples using C#, and C/C++ developers should easily be able to follow the syntax.

  • Visual Basic developers looking at VB.NET or C#—The examples in the book are written both in C# and Visual Basic .NET and will serve as a good aid to picking up the fundamentals of these programming languages and the runtime libraries of the .NET Framework. Because the .NET Compact Framework is a rich subset of the desktop and server .NET Framework, working through devices can be a fun way to learn these new programming models.

  • People interested in sharpening their software engineering skills—This book is fundamentally about imparting good engineering practices in the mind of the reader. Those interested in sharpening their software engineering skills for servers, desktop, and device development will be able to do so in a fun and novel way by looking at software engineering from a mobile device development perspective.

  • Software architects looking to extend existing solutions with mobile device support—Mobile computing offers an interesting new medium with which to extend desktop and server solutions. For this it is important to understand the things that mobile devices are well suited for and those things they are not. By reading this book, software architects should gain a good understanding of the role that mobile devices can play in their solutions.

Acknowledgments

This book is not just about mobility but is itself the product of mobile computing. Much time was spent in different environments, and ad hoc experiments were done with a backpack and pockets full of various mobile devices for companionship. The book was written over the course of a year spent traveling between two different continents in at least six different countries and with the aid of an eye-popping amount of late-night coffee. On average, I have to acknowledge that the coffee in Europe is generally superior to the variety found in North America; this "coffee gap" is something that merits further study.

I would like to thank the following people without whom this book would never have reached its potential and may not have happened at all:

  • The folks at Addison-Wesley and Pearson who encouraged me and kept me on track. Most specifically I want to thank Karen Gettman, with whom I discussed the original proposal to write a "different kind of technical book"; Elizabeth Zdunich, who patiently worked with me through the writing process; and Lori Lyons and Keith Cline for their terrific work editing the book.

  • The great people who reviewed earlier drafts of the book. If it is the role of the reviewer to save the end reader from the mistakes, inconsistencies, and folly of the writer, they have done a superior job. I was fortunate enough to have excellent people offer both encouraging and "tough love" feedback on the book. If the effort has been successful, the reviewers deserve a significant part of the credit for it. Specifically, I want to thank Craig Neable, Bill Draper, Jon Skeet, Michael Maitland, Doug Holland, and Alex Feinman for offering detailed feedback on the manuscript along with myriad useful suggestions and corrections.

  • My managers at Microsoft for being supportive of this work. It is truly a wonderful thing to have been given the freedom to pursue this independent effort, and I am grateful to them.


© Copyright Pearson Education. All rights reserved.

Read More Show Less

Table of Contents

1. Introduction.

2. Characteristics of Mobile Applications.

3. Design of the .NET Compact Framework.

4. How to Be Successful Developing Mobile Applications.

5. Our Friend, the State Machine.

6. Step 0: Before You Start, Decide on the Scope of Your Application.

7. Step 1: Start with Performance; Stay with Performance.

8. Performance and Memory Management.

9. Performance and Multithreading.

10. Performance and XML.

11. Graphics and User Interface Performance.

12. Performance Summary.

13. Step 2: Design the Right User Interface1.

14. Step3: Get Your Data Access Model Right.

15. Step4: Get Your Communications Model Right.

16. Step 5: Packaging and Deploying Your Mobile Application.

17. Afterword.

Appendix A: Additional Resources for the .NET Compact Framework.

Appendix B: Visual Basic .NET Samples.

Index.

Read More Show Less

Preface

Preface

There is a mobile device revolution underway.

It is only very recently that mobile computing devices have crossed the boundary between fixed-purpose communications devices to compelling and extensible mass-market computing platforms. The upcoming decade will see an explosion of capable mobile computing and communications devices providing ever-richer focused information and services to aid people in their daily work and personal lives. It is difficult of overestimate the impact truly mobile and ubiquitous computing will have on the way we work, the way we live, the way we communicate, and the way we interact with the world around us. Intelligent mobile device software is central to the sea change that is underway.

This book is about how to build great mobile device applications. To achieve this goal, it provides a mix of important conceptual knowledge and concrete practical examples. The examples are developed in C# and Visual Basic .NET and target the Microsoft .NET Compact Framework, but the concepts in the book are relevant to all kinds of mobile computing programming technologies and platforms. Visual Basic and C# developers will get the greatest benefit from this book along with specific technical knowledge, but the book is intended for anyone interested in how to build great mobile device software regardless of the programming technology they choose to use.

If I am allowed to hope for a desired book review, it would read: Extremely practical yet thought provoking, Writing Mobile Code will make you a better software developer and get you excited about building new and innovative software for mobile devices. The end readers will have to judge how close I have come to meeting this lofty goal.

The goal of Writing Mobile Code is to create a "different kind of technical book." In discussing the idea for this project with the publishers and other interested parties, the question was posed, "What do you think is missing from most technical books today and what unique value will this book offer?"

What is missing from most technical books today?

Today technical reference materials about software development abound. There is no shortage of facts and reference information on the Web as well as in the racks of bookstores. We live in a world overflowing with information, but in spite of, or perhaps because of this, real wisdom is hard to come by. The interested person must dig though the heaps of coal to search for the diamonds of insight that are surely hidden in there somewhere. Like coal, raw facts themselves are extremely useful but they are not the precious gems we seek. What is missing, and particularly missing from existing mobile software development literature, is an accessible hands-on engineering book that lays out the principals and methods of good mobile software design using concrete examples to demonstrate theory. This book hopes to give the reader the gems of wisdom that will enrich him or her and spur them on to discover the great possibilities that mobile software development holds. The book offers insights with practical examples, encouraging the reader to experiment and make his or her own observations while learning the key elements of mobile software engineering.

What unique value does this book add?

Writing Mobile Code is about mobile software development and is meant to go beyond the bounds of any specific technology. Although the numerous examples offered in the book are written using the .NET Compact Framework, the general principals discussed are valid for all mobile device technologies. Technologies advance rapidly, but good engineering practices and design wisdom grow slowly through the painstaking learning of trial and error. This book is about learning the design and engineering principals that will prove durable even as technology advances.

The goal of this book is not to flood the reader with a multitude of details devoid of greater context but rather to impart in the reader an appreciation for the proper philosophy and design methods for mobile software development. Detailed examples present the facts and figures, but the main goal is to grow in the reader a deep understanding of how to write great mobile software. There will always be more facts to learn, and specific technologies will always evolve and eventually be replaced; this book concentrates on explaining what is unique and interesting about mobile software development and how to build successful mobile applications.

What Various audiences can expect to gain from reading this book:

  • People presently doing software development for mobile devices—Mobile software development is rapidly moving from being a specialized black art of the initiated to a mass developer-audience community. This book endeavors to offer a rich and, I believe, new perspective on mobile software development that will be valuable both for developers new to mobile devices as well as to seasoned hands in the mobile software domain.
  • Desktop and server Java, C#, or VB.NET developers considering a move to or moving on to device development—Desktop and server developers already using any of these languages will be immediately able to follow the examples in this book. What this book offers additionally to these developers is a deep understanding of how mobile software development differs from classical desktop and server development. I believe this book will be an enjoyable test drive for these developers and convince them that mobile device development is an arrow they will want to add to their software development quiver. This book will impart in these developers the knowledge and skills necessary to build great mobile applications.
  • C++ developers looking at moving to a managed runtime language such as C#—The chances are very good that people doing C/C++ development today will be moving some of their programming work to managed-code languages such as C# in the near future. The productivity and reliability benefits are simply overwhelming. This book offers many examples using C#, and C/C++ developers should easily be able to follow the syntax.
  • Visual Basic developers looking at VB.NET or C#—The examples in the book are written both in C# and Visual Basic .NET and will serve as a good aid to picking up the fundamentals of these programming languages and the runtime libraries of the .NET Framework. Because the .NET Compact Framework is a rich subset of the desktop and server .NET Framework, working through devices can be a fun way to learn these new programming models.
  • People interested in sharpening their software engineering skills—This book is fundamentally about imparting good engineering practices in the mind of the reader. Those interested in sharpening their software engineering skills for servers, desktop, and device development will be able to do so in a fun and novel way by looking at software engineering from a mobile device development perspective.
  • Software architects looking to extend existing solutions with mobile device support—Mobile computing offers an interesting new medium with which to extend desktop and server solutions. For this it is important to understand the things that mobile devices are well suited for and those things they are not. By reading this book, software architects should gain a good understanding of the role that mobile devices can play in their solutions.

Acknowledgments

This book is not just about mobility but is itself the product of mobile computing. Much time was spent in different environments, and ad hoc experiments were done with a backpack and pockets full of various mobile devices for companionship. The book was written over the course of a year spent traveling between two different continents in at least six different countries and with the aid of an eye-popping amount of late-night coffee. On average, I have to acknowledge that the coffee in Europe is generally superior to the variety found in North America; this "coffee gap" is something that merits further study.

I would like to thank the following people without whom this book would never have reached its potential and may not have happened at all:

  • The folks at Addison-Wesley and Pearson who encouraged me and kept me on track. Most specifically I want to thank Karen Gettman, with whom I discussed the original proposal to write a "different kind of technical book"; Elizabeth Zdunich, who patiently worked with me through the writing process; and Lori Lyons and Keith Cline for their terrific work editing the book.
  • The great people who reviewed earlier drafts of the book. If it is the role of the reviewer to save the end reader from the mistakes, inconsistencies, and folly of the writer, they have done a superior job. I was fortunate enough to have excellent people offer both encouraging and "tough love" feedback on the book. If the effort has been successful, the reviewers deserve a significant part of the credit for it. Specifically, I want to thank Craig Neable, Bill Draper, Jon Skeet, Michael Maitland, Doug Holland, and Alex Feinman for offering detailed feedback on the manuscript along with myriad useful suggestions and corrections.
  • My managers at Microsoft for being supportive of this work. It is truly a wonderful thing to have been given the freedom to pursue this independent effort, and I am grateful to them.

© Copyright Pearson Education. All rights reserved.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted March 4, 2005

    useful for any mobile development environment

    Salmre gives a very thorough exposition of the issues involved in writing applications for mobile devices. Where you face strong constraints in available memory, screen size and lack of a mouse. Plus network connectivity might be low bandwidth and intermittent. His analysis is mostly within the context of .NET Compact Framework. You can regard this as a slimmed down .NET/C#, analogous to the way that J2ME/MIDP is a reduced J2SE. Several chapters transcend the Compact Framework context and apply equally well to any development environment for mobile code. Like the chapter on using a state machine to model your application. Or the chapter on whether to use XML for data interchange. These chapters, like the rest of the book, have examples in C#. But the examples are short and clearly enough written to be understandable even if C# isn't your cup of tea. So you can use the examples as pseudocode, to port to other languages. Actually, a closer scrutiny of the book reveals that most of it is written in a logical and general enough manner to be handy for any mobile development. The guidelines in most chapters can be thusly used.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)