The document discusses model-driven app development for iPhone and Android. It introduces some common issues in traditional software development like boring code, accidental complexity, and wrong levels of abstraction. It then presents model-driven development as an approach to address these issues by raising the level of abstraction and generating code from models. Domain-specific languages (DSLs) are presented as a tool for describing domains at a higher level of abstraction. The document demonstrates an example DSL for developing mobile apps and how concepts in the DSL like entities, data providers, views and actions can be mapped to generated code.