Skip to content

Introduction

Course Hardware and Software

Hardware

You do not need an Android device for your coursework, but if you have access to one (or want to purchase one for your coursework), development feels more realistic.

The minimum recommended RAM for Android Studio is 8GB RAM with an SSD. More memory is better, as Android Studio and the Android emulator love to use lots of memory. Ideally you'll have 16GB or more RAM.

If you have only 8GB RAM, I strongly recommend you either upgrade your RAM or purchase an inexpensive Android phone for classwork. Many pay-as-you-go phones (which you do not have to activate) can be found for under $100 and will greatly improve your development experience. (Note, however, a physical device is not required for this course.)

Software

The following are the required versions of tools for this term.

Warning

Do not upgrade any versions after the first module unless I instruct you to do so! We want to make sure we're using the same version of everything that you are when we grade your assignment submissions.

Be sure to use the Kotlin DSL + Gradle Version Catalogs option for Build configuration language when creating new projects.

Please double-check these versions when creating new projects!

Name Version
Android Studio
Install via Jetbrains Toolbox
Hedgehog 2023.1.1 Patch 2
Gradle
in distributionUrl in gradle/wrapper/gradle-wrapper.properties
8.2
Android Gradle Plugin
agp in gradle/libs.versions.toml
8.2.2
Kotlin
kotlin in gradle/libs.versions.toml
1.9.22
KSP
when adding ksp in gradle/libs.versions.toml
1.9.22-1.0.17
Jetpack Compose Bill of Materials
compose_bom in gradle/libs.versions.toml
2024.02.00
Jetpack Compose Compiler
kotlinCompilerExtensionVersion in app/build.gradle
1.5.8
JDK Toolchain
Add kotlin { jvmToolchain(17) } in app/build.gradle
17
Android minimum API
minSdk in app/build.gradle
24
Android target API
targetSdk in app/build.gradle
34
Android compile API
compileSdk in app/build.gradle
34

Note

In app/build.gradle/kts, be sure to delete

compileOptions {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
    jvmTarget = "1.8"
}

Sample Code

See the "Sample Code" module for download and usage instructions

If you see any problems in the sample code, please let me know and I'll update it.