# Setting up the Environment

## Requirements

To successfully develop, build and deploy code for the Robot Controller phone, you will need the following:

* Android Studio
* Git
* Local clone of your team's repository

FIRST officially documents the process of installing these requirements with [a video](https://youtu.be/mMrC5kDcUN4?t=47s) and [a wiki page](https://github.com/FIRST-Tech-Challenge/SkyStone/wiki/Installing-Android-Studio). It is recommended that you follow these videos in preparing your local setup for FTC programming.

### Android Studio

1. Download and install Android Studio from [this page](https://developer.android.com/studio/).\
   Android has a [guide](https://developer.android.com/studio/install), FIRST has a [guide](https://github.com/FIRST-Tech-Challenge/SkyStone/wiki/Installing-Android-Studio), and we have a [guide](https://github.com/Andover-Robotics/ARC-Core/wiki/Introduction).
2. In Android Studio, [disable Instant Run](https://github.com/FIRST-Tech-Challenge/SkyStone/wiki/Disabling-Android-Studio-Instant-Run).\
   \&#xNAN;*Instant Run has plagued the programmers of the club in the past—don't repeat our mistakes.*

### Git

[Git](https://git-scm.com) is a popular Version Control System (VCS) for programming projects of all kinds. To familiarize yourself with what Git offers, read [A beginner's guide to Git](https://medium.com/free-code-camp/a-beginners-guide-to-git-how-to-create-your-first-github-project-c3ff53f56861).

[GitHub](https://github.com) is a popular website that hosts Git repositories online. ARC uses GitHub to help programmers collaborate on a shared coding project. To become a meaningful contributor to your team's code, you must be able to push changes to GitHub. If you do not have your own GitHub account, [sign up here](https://github.com/join). Once your account is ready, ask your CSO(s) about joining ARC's GitHub organization.

{% hint style="info" %}
The club has struggled in using Git in the past *(we have literally spent full meetings resolving problems with Git).* There are some best practices that help your team get the most out of Git and stay away from its grievances. Refer to [*Using Git Effectively*](https://andover-robotics.gitbook.io/arc-software/working-with-a-team/using-git-effectively) for more details.
{% endhint %}

### Local clone of your team's repository

Git is a distributed version control system—that is, each collaborator keeps their own copy of the repository. To make your own copy, follow our [guide](https://github.com/Andover-Robotics/ARC-Core/wiki/Introduction) from Rover Ruckus. In the *Clone Repository* dialog, select your team's repository URL from the following options:

* **4410 ARC Lightning**: (to be determined for 2020-2021)
* **5273 ARC Thunder**: (to be determined for 2020-2021)
* **10331 ARC Hailstorm**: (to be determined for 2020-2021)

You now have Android Studio, Git, and your own copy of your team's code. You are now ready to contribute!
