Written to address technical concerns that mobile developers face regardless of the platform (J2ME, WAP, Windows CE, etc.), this book explores the differences between mobile and stationary applications and the architectural and software development concepts needed to build a mobile application. Using UML as a tool, Reza B'far guides the developer through the development process, showing how to document the design and implementation of the application. He focuses on general concepts, while using platforms as examples or as possible tools. After introducing UML, XML, and derivative tools necessary for developing mobile software applications, B'far shows how to build user interfaces for mobile applications. He covers location sensitivity, wireless connectivity, mobile agents, data synchronization, security, and push-based technologies, and finally homes in on the practical issues of mobile application development including the development cycle for mobile applications, testing mobile applications, architectural concerns, and a case study.