Summary As an idea, the state machine is a remarkably useful and durable concept. State machines enable developers to build well-organized and flexible applications. Because mobile device development is inherently an iterative and exploratory process, using state machines where appropriate will serve you well by allowing your application to adapt as you learn and refine your design. In areas such as user interface management, resource and memory management, and background processing, state machines enable you to design clean, understandable, and well-functioning code. Take the time and explicitly draw out the right state models in your applications instead of letting them form in a distributed and implicit way. State machine design is a good practice in server, desktop, and mobile device software design. Because mobile devices demand efficient screen real estate, memory, processing power, and other resource usage, a good state machinebased design is especially beneficial for devices. This little bit of extra design discipline will pay for itself over and over again as you prototype, design, build, maintain, and extend your mobile applications. |