#
Installing Software
This section describes the software that you will need to work on your project.
#
Minimum requirements
To participate in coding and other activities, each person 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 required minimum tech stack that you must use. In general, you want to use the latest version of each tool, but be aware that newer versions may introduce breaking changes.
Later in the course, we will introduce additional libraries for specialized functionality e.g., networking, image loading, database connectivity. You may also need additional libraries to support features that are specific to your application.
- See our Libraries reference for more information.
- Be aware of course policies on third-party source code.
#
Why this tech stack?
The goal of this course is to teach you how to build a modern, full-stack native application, using "standard" tools. You should leave this course being able to design and build a desktop or mobile application that leverages remote services, databases, and other external resources. It's tricky finding a tech stack that supports these broad goals.
Kotlin may be a new programming language to you, but it's an important one: it's Google's primary language for building Android applications, and they are heavily invested in the Kotlin ecosystem1. If you want to learn mobile development for Android devices, it's the language to learn first!
It can also be used to build native applications for other platforms: desktop, such as macOS, Windows and Linux, or other platforms like iOS, watchOS, tvOS, and even web/WASM. We'll be focusing on desktop and Android in this course2.
Finally, Kotlin is also a fully capable programming language for building servers and services, with broad interoperability with Java libraries and existing web service frameworks e.g., Spring Boot, Ktor, etc. Given the Java market share for server-side development, Kotlin is a great language to learn for building full-stack applications.
#
Last Word
We recommend an IDE like IntelliJ IDEA or Android Studio, but hey, you do you.
-
At Google I/O 2024, their developer conference, Google announced that more than 60% of the top 1000 apps on the Google Play Store are written in Kotlin.↩
-
We won't be building iOS applications in this course, mainly because iOS support requires dedicated Apple hardware, which is not available to all students. Android development tools will work on Windows, macOS and Linux, so there are no barriers to entry.↩