Toolchain installation

This section describes the software that you will to install in order to work on your project.

Minimum Requirements

To participate in coding and other activities, each person on your team requires access to a modern computer running Windows, Linux or macOS. 8GB of RAM or more is recommended, and you must have administrative rights on this machine (which disqualifies the use of lab computers). A notebook computer is preferred, since you will be working on your project in-class.

Note that a physical phone is NOT required for Android development, since you can use a virtual device (AVD). This will be demonstrated in-class.

What to Install?

The following software is used in this course and represents the minimum tech stack that you must use.

  • Install manually indicates that you should install from the link provided.
  • IntelliJ plugin indicates that this is bundled with the IntelliJ IDEA IDE. Once the IDE is installed, you can check that this plugin is installed from Settings > Plugins. You should always use the most recent version of any plugin.
  • Installed by Gradle means that we will configure our build system to automatically download and manage this dependency. You don’t need to install it manually.

Desktop Development

SoftwareCategoryVersionHow to install?
GitTool2.45+Install manually
Java JDKLibrary21.0.4Install manually
IntelliJ IDEATool2024.2.1 - releasesInstall manually
Compose MultiplatformLibrary1.6.11 - releasesIntelliJ plugin
Ktor client/serverLibrary2.3.12 - releasesInstalled by Gradle
JUnitLibrary5.xInstalled by Gradle

Android Development

SoftwareCategoryVersionHow to install?
GitTool2.45+Install manually
Android StudioToolLatest versionInstall manually
Jetpack ComposeLibrary1.6.7 - releasesInstalled by Gradle
Ktor client/serverLibrary2.3.12 - releasesInstalled by Gradle
JUnitLibrary5.xInstalled by Gradle

Installing the newest version of any library is usually the best strategy, but be careful about compiler/library compatibility. The Kotlin and JDK versions in particular need to be compatible versions.

See our Libraries reference for more information on libraries that you can import.

We recommend IntelliJ IDEA for desktop development ,and Android Studio for Android development (one is a fork of the other, but Android Studio also includes the Android SDK which you need for Android development).

Tip

If you are going to use IntelliJ IDEA, I would recommend the Ultimate version over the Community version.It has a number of features that are not available in the Community Edition, such as support for Java EE, Spring, and it even supports other languages like JS/TS and Python. The educational license is free, so there is no reason not to use it while you are a student.

Configuration

There are two types of settings in your IDE.

IDE product settings

  • Changes you make in your editor/IDE preferences, typically in the Settings dialog. Examples: font size, code style, key bindings, etc.
  • Saved in your .idea. directory in your project folder.
  • Normally should NOT be saved to Git, since these represent your personal preferences.

Project settings

  • Settings that affect how your project builds and executes. Examples: JDK version, Gradle settings.
  • Saved in your build.gradle.kts file or other project files.
  • These absolutely SHOULD be saved to Git, since they affect how your project is built.

My Settings

I always recommend setting up a few things in IntelliJ IDEA to make it easier to use.

The first thing I tend to do is to specify how much memory the IDE can use. I have 16 GB of RAM, so I can dedicate 4 GB to IntelliJ IDEA. This drastically increases performance.

  • Help > Change Memory Settings > 4096 MB

Next, I setup the environment to maximize my editing window (and I use hotkeys to toggle windows and navigate).

  • View > Appearance > Compact Mode
  • View > Appearance > Toolbar ON
  • View > Appearance > Tool Window Bars OFF
  • View > Appearance > Navigation Bar > In Status Bar

Finally, I install a few plugins that I find useful. You can install plugins from the JetBrains Plugin Repository, under Settings > Plugins.

Required for desktop:

  • Compose Multiplatform IDE support

Required for Android:

  • Android // android only
  • Android Design Tools // android only
  • Jetpack Compose

Recommended:

  • Mermaid.js
  • Rainbow Brackets
  • Database Tools and SQL
  • Docker

Last Word

We recommend an IDE like IntelliJ IDEA or Android Studio, but hey, you do you.

https://xkcd.com/378