Flutter WSL Tanpa Android Studio

Development android dengan WSL kayanya keren juga. Berawal dari mata kuliah Mobile Computing yang mengharuskan instal Flutter oleh dosen. Berhubung sekarang selalu pakai WSL untuk development coba-coba ah instal Flutter di WSL.

Development android sangat berat karena menjalankan virtual device pada mesin, menjadi alasan utama kenapa menggunakan WSL karena untuk menghindari Android Studio karena ukuran file yang sangat besar, sedangkan laptop sendiri masih kentang.

Instalasi Flutter, Java dan Command Line Tools

Instalasi Java bisa menggunakan APT dengan versi Java 18:

$ sudo apt install openjdk-18-jdk
$ java --version
openjdk 18.0.2-ea 2022-07-19
OpenJDK Runtime Environment (build 18.0.2-ea+9-Ubuntu-222.04)
OpenJDK 64-Bit Server VM (build 18.0.2-ea+9-Ubuntu-222.04, mixed mode, sharing)

Struktur Folder

Untuk struktur folder lebih rapi kalau disimpan ke dalam satu folder, ya sesuai preferensi sebenarnya. Sebagai contoh di sini saya menyimpannya ke folder /opt pada linux dengan nama folder Android. Di dalamnya nanti tersimpan toolkit untuk development android menggunakan Flutter.

$ sudo mkdir /opt/Android

Install Flutter

Untuk download pilih sendiri karena URLnya pasti berganti karena versi Flutternya berubah-ubah. Jadi di sini hanya instalasinya saja.

Ekstrak menggunakan perintah tar:

$ tar xf flutter_linux_3.13.6-stable.tar.xz

Lalu pindahkan hasil ekstraknya ke folder yang sudah dibuat di awal tadi.

$ sudo mv flutter /opt/Android

Install Command Line Tools

Command Line Tools ini adalah utilitas untuk melengkapi development Android. Tapi yang kita gunakan di sini hanya sdkmanager untuk instal Android SDKnya.

Link downloadnya ada di sini https://developer.android.com/studio#command-tools

Ekstrak file yang sudah didownload menggunakan perintah unzip:

$ unzip commandlinetools-linux-10406996_latest.zip
$ ls cmdline-tools
NOTICE.txt  bin  lib  source.properties

Setelah itu buat folder dengan nama latest di dalamnya.

$ cd cmdline-tools
$ mkdir latest

Lalu pindahkan seluruh file dan folder ke dalam folder latest.

$ ls
NOTICE.txt  bin  lib latest  source.properties
$ mv NOTICE.txt bin/ lib/ source.properties latest

Setelah itu pindahkan folder cmdline-tools ke folder /opt/Android.

$ sudo mv cmdline-tools /opt/Android

Environment Variables

export ANDROID=/opt/Android
export PATH=$ANDROID/cmdline-tools/latest:$PATH
export PATH=$ANDROID/cmdline-tools/latest/bin:$PATH
export PATH=$ANDROID/platform-tools:$PATH

# Android SDK
export ANDROID_SDK=/opt/ANDROID
export PATH=$ANDROID_SDK:$PATH

# Flutter
export FLUTTER=$ANDROID/flutter
export PATH=$FLUTTER/bin:$PATH

Instal Android SDK

Untuk Flutter perlu instal beberapa seperti build-tools, platform-tools dan platforms;android.

Saya di sini langsung menggunakan versi paling terbaru yaitu Android SDK 33, jika ingin melihat daftar seluruhnya bisa menggunakan perintah:

$ sdkmanager --list

Untuk instalasinya:

$ sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.0"

Setelah itu accept licenses:

$ sdkmanager --licenses

Check Installation

Setelah itu cek menggunakan perintah flutter doctor -v:

$ flutter doctor -v

flutter doctor -v
[] Flutter (Channel stable, 3.13.6, on Ubuntu 22.04.3 LTS 5.15.90.1-microsoft-standard-WSL2, locale C.UTF-8)
    • Flutter version 3.13.6 on channel stable at /opt/Android/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ead455963c (10 days ago), 2023-09-26 18:28:17 -0700
    • Engine revision a794cf2681
    • Dart version 3.1.3
    • DevTools version 2.25.0

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /opt/Android
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /usr/bin/java
    • Java version OpenJDK Runtime Environment (build 18.0.2-ea+9-Ubuntu-222.04)
    ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses

[] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.0-1ubuntu1.1
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[] Connected device (1 available)
    • Linux (desktop) • linux • linux-x64 • Ubuntu 22.04.3 LTS 5.15.90.1-microsoft-standard-WSL2

[] Network resources
    • All expected network resources are available.

! Doctor found issues in 3 categories.

Sudah deh selesai, tapi perlu instal beberapa prerequisites untuk linux.

$ sudo apt install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev