Before you start - GearsAndSpears/DesmondBotV2 GitHub Wiki
Before You Start
Before you can start writing code, you need to make a choice. FTC offers 3 ways to program your robot, and I'll quickly run through the Pros and Cons below. After that, you need to make your own decision.
Blocks are the simplest way to program a robot. They offer a simple drag and drop interface and remove the barrier that comes with having to write your own code. That said, I don't think you should use them. Writing your own code isn't incredibly difficult, and it offers much more control over your robot. Additionally, using android studio allows you to import external modules.
2. OnBot Java
OnBot java is the middle ground of programming options. It allows you to connect to a phone's wifi direct, and write code directly onto the robot. Compiling is quick and easy, and you can quickly and easily tweak your code. The downside is that you don't have all the features a full IDE (Integrated Development Environment) offer, like code completion or refactoring.
3. Android Studio
Android Studio is a full featured IDE, with lots of very nice quality of life features, like refactoring, code completion, and better warnings/errors. Building your code takes slightly longer, and getting it onto the robot is very slightly more difficult, but I've found it's worth it. Android Studio also offers the ability to install 3rd party libraries, which can be invaluable. For this tutorial, I'll be using Android Studio, but if you choose to use OnBot Java, everything will be the same.