This book provides a solid overview of mobile phone programming targeting both academia and industry. The book covers all commercial realizations of Symbian, Windows Mobile and Linux platforms. Each programming language (JAVA, Python, C/C++) and a set of development environments are introduced step by step making developers familiar with current limitations, pitfalls, and challenges. Each chapter contains examples and source code to rapidly make developers familiar 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.Whether you are an experienced developer or an advanced student this book will be your key reference for successfully entering the world of software development for mobile devices.