This book provides a solid overview of mobile phone programming. It covers all commercial realizations of Symbian, Windows Mobile and Linux platforms. The book provides a step-by-step introduction to each programming language (JAVA, Python, C/C++) as well as a set of development environments, making developers familiar with current limitations, pitfalls, and challenges. In addition, each chapter contains examples and source code so that developers can rapidly become acquainted with the most important concepts. Examples cover peer-to-peer networks, cooperative networking, cross layer protocol design, key challenges such as power consumption, and sensor networks for which a full hardware and software implementation is provided.