16. A non-transitory computer-readable media encoded with a computer program, the program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising: receiving, from an application development user interface including one or more code-generation plugins, a selection of a template from plural templates, the template including: a declarative model file describing user interface aspects for declaring customization of applications in an implementation-independent, consistent way, independent of the selected template and a target computer for generated code; a metadata file including information describing the template; one or more template files providing specific syntax suitable for code generation; and custom code hooks for user customization of the template, including containers for holding custom code provided by the user and triggers for executing the custom code when the application code is executed according to timing specified by the hooks; providing the template in the application development user interface; receiving, from the application development user interface, customization inputs associated with the template, the customization inputs providing parameters used in the code-generation plugins; and automatically generating application code for the target computer based on the selected template and the received customization inputs, the generated application code including at least the code generated from the code-generation plugins.
16. A non-transitory computer-readable media encoded with a computer program, the program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising: receiving, from an application development user interface including one or more code-generation plugins, a selection of a template from plural templates, the template including: a declarative model file describing user interface aspects for declaring customization of applications in an implementation-independent, consistent way, independent of the selected template and a target computer for generated code; a metadata file including information describing the template; one or more template files providing specific syntax suitable for code generation; and custom code hooks for user customization of the template, including containers for holding custom code provided by the user and triggers for executing the custom code when the application code is executed according to timing specified by the hooks; providing the template in the application development user interface; receiving, from the application development user interface, customization inputs associated with the template, the customization inputs providing parameters used in the code-generation plugins; and automatically generating application code for the target computer based on the selected template and the received customization inputs, the generated application code including at least the code generated from the code-generation plugins. 18. The non-transitory computer-readable media of claim 16 , wherein the application development user interface further includes development environment plugins.