Learn more about [MIT App Inventor](http://appinventor.mit.edu).
Learn more about [MIT App Inventor](http://appinventor.mit.edu).
...
@@ -14,7 +14,7 @@ to operate their own App Inventor instance and/or contribute to the project.
...
@@ -14,7 +14,7 @@ to operate their own App Inventor instance and/or contribute to the project.
This code is tested and known to work with Java 7.
This code is tested and known to work with Java 7.
##Contributors
##Contributors
The best way to go about integrating changes in App Inventor is to start a conversation in the [Open Source forum](https://groups.google.com/forum/#!forum/app-inventor-open-source-dev) about whatever you intend to change or add.
The best way to go about integrating changes in App Inventor is to start a conversation in the [Open Source forum](https://groups.google.com/forum/#!forum/app-inventor-open-source-dev) about whatever you intend to change or add.
We use ***very brief and informal*** design documents with descriptions of the proposed changes and screenshots of how the functionality would look like and behave, in order to gather as much feedback from the community, as early as possible. We generally use shared Google docs for this (with permissions to add comments), but any format that is accessible from a web browser (and allows comments) would do.
We use ***very brief and informal*** design documents with descriptions of the proposed changes and screenshots of how the functionality would look like and behave, in order to gather as much feedback from the community, as early as possible. We generally use shared Google docs for this (with permissions to add comments), but any format that is accessible from a web browser (and allows comments) would do.
...
@@ -23,21 +23,21 @@ If you have skipped this step and have gone ahead and made your changes already,
...
@@ -23,21 +23,21 @@ If you have skipped this step and have gone ahead and made your changes already,
Check out our open source [site](http://appinventor.mit.edu/appinventor-sources/) to find a lot more information about the project and how to contribute to it.
Check out our open source [site](http://appinventor.mit.edu/appinventor-sources/) to find a lot more information about the project and how to contribute to it.
##Setup instructions
##Setup instructions
This is a quick guide to get started with the sources. More detailed instructions can be found [here](https://docs.google.com/document/pub?id=1Xc9yt02x3BRoq5m1PJHBr81OOv69rEBy8LVG_84j9jc), a slide show can be seen [here](http://josmas.github.io/contributingToAppInventor2/#/), and all the [documentation](http://appinventor.mit.edu/appinventor-sources/#documentation) for the project is available in our [site](http://appinventor.mit.edu/appinventor-sources/).
This is a quick guide to get started with the sources. More detailed instructions can be found [here](https://docs.google.com/document/pub?id=1Xc9yt02x3BRoq5m1PJHBr81OOv69rEBy8LVG_84j9jc), a slide show can be seen [here](http://josmas.github.io/contributingToAppInventor2/#/), and all the [documentation](http://appinventor.mit.edu/appinventor-sources/#documentation) for the project is available in our [site](http://appinventor.mit.edu/appinventor-sources/).
###Dependencies
###Dependencies
You will need a full Java JDK (6 or 7, preferably from Oracle; JRE is not enough) and Python to compile and run the servers.
You will need a full Java JDK (6 or 7, preferably from Oracle; JRE is not enough) and Python to compile and run the servers.
You will also need a copy of the [App Engine SDK](https://developers.google.com/appengine/downloads) for Java and [ant](http://ant.apache.org/).
You will also need a copy of the [App Engine SDK](https://developers.google.com/appengine/downloads) for Java and [ant](http://ant.apache.org/).
If you want to make changes to the source, you are going to need to run an automated test suite, and for that you will also need [phantomjs](http://phantomjs.org/). Have a look at the testing section for more information.
If you want to make changes to the source, you are going to need to run an automated test suite, and for that you will also need [phantomjs](http://phantomjs.org/). Have a look at the testing section for more information.
###Forking or cloning
###Forking or cloning
Consider ***forking*** the project if you want to make changes to the sources. If you simply want to run it locally, you can simply ***clone*** it.
Consider ***forking*** the project if you want to make changes to the sources. If you simply want to run it locally, you can simply ***clone*** it.
####Forking
####Forking
If you decide to fork, follow the [instructions](https://help.github.com/articles/fork-a-repo) given by github. After that you can clone your own copy of the sources with:
If you decide to fork, follow the [instructions](https://help.github.com/articles/fork-a-repo) given by github. After that you can clone your own copy of the sources with:
@@ -53,7 +53,7 @@ Finally, you will also have to make sure that you are ignoring files that need i
...
@@ -53,7 +53,7 @@ Finally, you will also have to make sure that you are ignoring files that need i
$ cp sample-.gitignore .gitignore
$ cp sample-.gitignore .gitignore
###Checkout dependencies
###Checkout dependencies
App Inventor uses Blockly, the web-based visual programming editor from Google, as a core part of its editor. Blockly core is made available to App Inventor as a git submodule. The first time after forking or cloning the repository, you will need to perform the following commands:
App Inventor uses Blockly, the web-based visual programming editor from Google, as a core part of its editor. Blockly core is made available to App Inventor as a git submodule. The first time after forking or cloning the repository, you will need to perform the following commands:
$ git submodule update --init
$ git submodule update --init
...
@@ -66,7 +66,7 @@ If you need to switch back to a branch that does contains the Blockly and Closur
...
@@ -66,7 +66,7 @@ If you need to switch back to a branch that does contains the Blockly and Closur
to clear out the submodules ___before switching branches___. When switching back, you will need to repeat the initialization and update procedure above.
to clear out the submodules ___before switching branches___. When switching back, you will need to repeat the initialization and update procedure above.
###Compiling
###Compiling
Compiling is very easy if you have all the dependencies you need; just open a terminal and type:
Compiling is very easy if you have all the dependencies you need; just open a terminal and type:
$ cd appinventor
$ cd appinventor
...
@@ -74,17 +74,17 @@ Compiling is very easy if you have all the dependencies you need; just open a te
...
@@ -74,17 +74,17 @@ Compiling is very easy if you have all the dependencies you need; just open a te
You will see a lot of stuff in the terminal and after a few minutes (it can take from 2 to 10 minutes, depending on your machine specs) you should see a message saying something like *Build Successful*.
You will see a lot of stuff in the terminal and after a few minutes (it can take from 2 to 10 minutes, depending on your machine specs) you should see a message saying something like *Build Successful*.
###Running the server(s)
###Running the server(s)
There are two servers in App Inventor, the main server that deals with project information, and the build server that creates apk files. More detailed information can be found in the [App Inventor Developer Overview](https://docs.google.com/document/d/1hIvAtbNx-eiIJcTA2LLPQOawctiGIpnnt0AvfgnKBok/pub) document.
There are two servers in App Inventor, the main server that deals with project information, and the build server that creates apk files. More detailed information can be found in the [App Inventor Developer Overview](https://docs.google.com/document/d/1hIvAtbNx-eiIJcTA2LLPQOawctiGIpnnt0AvfgnKBok/pub) document.
Make sure you change *your-appengine-SDK-folder* to wherever in your hard drive you have placed the App Engine SDK.
Make sure you change *your-appengine-SDK-folder* to wherever in your hard drive you have placed the App Engine SDK.
####Running the build server
####Running the build server
The build server can be run from the terminal by typing:
The build server can be run from the terminal by typing:
$ cd appinventor/buildserver
$ cd appinventor/buildserver
...
@@ -92,15 +92,15 @@ The build server can be run from the terminal by typing:
...
@@ -92,15 +92,15 @@ The build server can be run from the terminal by typing:
Note that you will only need to run the build server if you are going to build an app as an apk. You can do all the layout and programming without having the build server running, but you will need it to download the apk.
Note that you will only need to run the build server if you are going to build an app as an apk. You can do all the layout and programming without having the build server running, but you will need it to download the apk.
###Accessing your local server
###Accessing your local server
You should now be up and running; you can test this by pointing your browser to:
You should now be up and running; you can test this by pointing your browser to:
http://localhost:8888
http://localhost:8888
###Running tests
###Running tests
The automated tests depend on [Phantomjs](http://phantomjs.org/). Make sure you install it and add it to your path. After that, you can run all tests by typing the following in a terminal window:
The automated tests depend on [Phantomjs](http://phantomjs.org/). Make sure you install it and add it to your path. After that, you can run all tests by typing the following in a terminal window:
$ ant tests
$ ant tests
##Need help?
## Need help?
Contact us through our [Google Group](https://groups.google.com/forum/#!forum/app-inventor-open-source-dev) or [G+ community](https://plus.google.com/u/0/b/116831753302186936352/116831753302186936352/posts).
Contact us through our [Google Group](https://groups.google.com/forum/#!forum/app-inventor-open-source-dev) or [G+ community](https://plus.google.com/u/0/b/116831753302186936352/116831753302186936352/posts).