function App(canvas)
{
	/**
	 * Program
	 *
	 * @property program
	 * @type {Program}
	 */
	this.program = null;

	/**
	 * Graphics renderer in use by this app instance
	 *
	 * @property renderer
	 * @type {Renderer}
	 */
	this.renderer = null;

	/**
	 * Runtime control, if true the app is running.
	 *
	 * @property running
	 * @type {boolean}
	 */
	this.running = false;

	/**
	 * Flag used to control if the canvas element is resized automatically by the app instance.
	 *
	 * If true the canvas is resized whether the resize method is called.
	 *
	 * @property canvasFitWindow
	 * @type {boolean}
	 * @default false if a canvas is provided, else true
	 */
	this.canvasFitWindow = false;

	/**
	 * Canvas used to render graphics.
	 *
	 * @property canvas
	 * @type {Element}
	 */
	this.canvas = canvas;

	/**
	 * Event manager used to create and manage events for this app.
	 *
	 * @property events
	 * @type {EventManager}
	 */
	this.events = new EventManager();

	if (canvas === undefined)
	{
		this.canvas = document.createElement("canvas");
		this.canvas.style.position = "absolute";
		this.canvas.style.left = "0px";
		this.canvas.style.top = "0px";
		this.canvasFitWindow = true;
		document.body.appendChild(this.canvas);
	}
}
app is the main class of the runtime system, is used to embed projects into external webpages and applications.

Project files can be loaded directly from their project files into any kind of project. The app class handles all the runtime and control of the application lifecycle.

@class App
@module Runtime
@constructor
@param {Component} canvas Canvas to be used by the runtime, if no canvas is provided a new one is created and added to the document.body, to create a new App without canvas a null value can be passed.