2015-02-04 19:07:58 +03:00
![](https://az31353.vo.msecnd.net/c04/uxoj.png)
# TouchDevelop
2015-02-04 22:48:06 +03:00
TouchDevelop is a touch-friendly app creation environment for iPad, iPhone,
2015-02-05 03:36:53 +03:00
Android, Windows, Mac, Linux developed with < 3 at Microsoft Research . Our
2015-02-04 22:48:06 +03:00
mobile-friendly editor makes coding fun, even on your phone or tablet!
2015-02-04 19:07:58 +03:00
2015-02-05 00:52:26 +03:00
[![Build Status ](https://magnum.travis-ci.com/Microsoft/TouchDevelop.svg?token=xmP93nU7s938rQtURxVz&branch=master )](https://magnum.travis-ci.com/Microsoft/TouchDevelop)
2015-02-05 00:46:17 +03:00
2015-02-04 22:52:51 +03:00
**This repo contains the source code of the TouchDevelop editor.** If you are
intending to write TouchDevelop scripts, you probably want to go to
`touchdevelop.com` :
2015-02-04 19:07:58 +03:00
* **stable:** https://www.touchdevelop.com/app
* **beta:** https://www.touchdevelop.com/app/beta
2015-02-04 22:52:51 +03:00
Other pages of interest:
* landing page: [https://www.touchdevelop.com ](https://www.touchdevelop.com )
* blog: [https://www.touchdevelop.com/blog ](https://www.touchdevelop.com/blog )
* Hour Of Code tutorials: [https://www.touchdevelop.com/hoc ](https://www.touchdevelop.com/hoc )
2015-02-04 19:07:58 +03:00
2015-02-04 22:48:06 +03:00
## What's in this repo?
2015-02-04 19:07:58 +03:00
The repo is mostly written in [Typescript ](http://www.typescriptlang.org/ ) with tiny pieces
of HTML gluing.
This repo contains the source code for:
* the browser client
* the compiler
* the editor
* the runtime
* the node.js client
2015-02-04 22:48:06 +03:00
However, you will not find the cloud backend code here. Indeed,
[https://www.touchdevelop.com ](https://www.touchdevelop.com ) takes care of
storing and managing the scripts.
2015-02-04 19:07:58 +03:00
2015-02-04 22:52:51 +03:00
## Contributing
2015-02-04 19:52:32 +03:00
2015-02-04 20:01:53 +03:00
There are many ways to [contribute ](https://github.com/Microsoft/TouchDevelop/blob/master/CONTRIBUTING.md ) to TouchDevelop.
2015-02-04 21:23:42 +03:00
* [submit bugs ](https://github.com/Microsoft/TouchDevelop/issues ) and help us verify fixes as they are checked in.
2015-02-04 22:52:51 +03:00
* review the [source code changes ](https://github.com/Microsoft/TouchDevelop/pulls )
2015-02-04 21:23:42 +03:00
* [contribute bug fixes or features ](https://github.com/Microsoft/TouchDevelop/blob/master/CONTRIBUTING.md ).
2015-02-04 22:52:51 +03:00
If you're not a developer but still would like to help, we've got more tasks for you!
2015-02-04 21:23:42 +03:00
2015-02-04 22:52:51 +03:00
* [help translate the user inferface ](https://touchdeveloptranslator.azurewebsites.net ): do you use TouchDevelop and speak a foreign language? You can help!
2015-02-04 19:52:32 +03:00
2015-02-04 22:48:06 +03:00
## Building
2015-02-04 19:07:58 +03:00
2015-02-04 19:52:32 +03:00
In order to build TouchDevelop, ensure that you have [Git ](http://git-scm.com/downloads ) and [Node.js ](http://nodejs.org/ ) installed.
Clone a copy of the repo:
git clone https://github.com/Microsoft/TouchDevelop.git
Change to the TouchDevelop directory:
cd TouchDevelop
2015-02-04 19:07:58 +03:00
2015-02-04 22:52:51 +03:00
Install dependencies:
2015-02-04 19:52:32 +03:00
2015-02-05 01:56:53 +03:00
npm install jake -g # skip this step if you're on Windows
2015-02-04 19:07:58 +03:00
npm install
2015-02-04 22:52:51 +03:00
Build:
2015-02-04 19:07:58 +03:00
jake
2015-02-04 19:52:32 +03:00
2015-02-04 22:48:06 +03:00
## Running
2015-02-04 19:07:58 +03:00
2015-02-04 22:48:06 +03:00
After building, you can run TouchDevelop from a local node server by running:
2015-02-04 19:07:58 +03:00
2015-02-04 22:48:06 +03:00
jake run
2015-02-05 02:44:47 +03:00
# or, if port 80 is already used on your machine
jake run[8080]
2015-02-04 19:07:58 +03:00
2015-02-04 22:48:06 +03:00
## Tests
2015-02-04 19:07:58 +03:00
2015-02-04 22:48:06 +03:00
jake test
2015-02-04 22:52:51 +03:00
2015-02-05 21:50:41 +03:00
## Cleaning
2015-02-05 20:31:38 +03:00
2015-02-05 21:50:41 +03:00
jake clean
2015-02-05 20:31:38 +03:00
2015-02-04 22:52:51 +03:00
## Documentation
All the docs are available online at
[https://www.touchdevelop.com/docs ](https://www.touchdevelop.com/docs ).
The docs are authored as TouchDevelop scripts in TouchDevelop itself. You can
fork them and send pull requests from TouchDevelop itself to update them.
2015-02-05 21:50:41 +03:00
## More handy commands
Our catch-all tool is `build/client.js` , which is compiled from
`nodeclient/client.ts` . Some of the common invocations of `client.js` are
exposed as Jake targets.
# assumes TD_UPLOAD_KEY and TD_UPLOAD_USER are set, uploads a new test build
jake upload
# update the files in generated/
jake update-docs
Find out about other commands directly:
node build/client.js
The `client.js` is built by default.