Skip to content

MobileClientSetupGuide

Ilias Koukovinis edited this page Jun 23, 2025 · 14 revisions

Ermis Mobile Flutter Client Setup Guide

Setting up Flutter, - and to be more precise - the Android SDK and an Android Emulator is a pain the ass. Hence/Consequently, I decided to compose a simple setup guide for Flutter and the Android SDK - as well as an Android Emulator to accompany the latter -, to make setup more practical.

Clone Repository

git clone https://github.com/Koukobin/Ermis.git

Install Flutter

sudo apt update
sudo apt upgrade

sudo apt-get update -y && sudo apt-get upgrade -y;
sudo apt-get install -y curl git unzip xz-utils zip libglu1-mesa

sudo apt-get install libc6:amd64 libstdc++6:amd64 lib32z1 libbz2-1.0:amd64

wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.29.0-stable.tar.xz
tar xf flutter_linux_3.29.0-stable.tar.xz

# Subsequently add Flutter to the Bash PATH
echo '\n' >> ~/.bashrc
echo '# Flutter' >> ~/.bashrc
echo 'export PATH="$PATH:$HOME/flutter/bin"' >> ~/.bashrc
source ~/.bashrc

sudo chown -R $(whoami):$(whoami) /opt/flutter

flutter --version
flutter doctor

# Optional: upgrade flutter to latest version via `flutter upgrade`

sudo apt install clang
sudo apt install ninja-build

Install Android SDK

Download Android SDK Command-Line Tools.

You can download the latest version of the Android SDK Command-Line Tools from the official Android Developer website:

mkdir -p ~/Android/Sdk/
mv ~/Downloads/`commandlinetools-linux-NUMBER_latest.zip` Android/Sdk/

# Add Android SDK to Bash PATH
echo '\n' >> ~/.bashrc
echo '# Android SDK' >> ~/.bashrc
echo 'export ANDROID_HOME=$HOME/Android/Sdk' >> ~/.bashrc
echo 'export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin' >> ~/.bashrc
echo 'export PATH=$HOME/Android/Sdk/emulator:$PATH' >> ~/.bashrc
source ~/.bashrc

# Hover to $ANDROID_HOME folder and extract the `cmdline-tools` zip file
cd $ANDROID_HOME/
unzip `commandlinetools-linux-NUMBER_latest.zip`

# Hover to `cmdline-tools` directory, and proceed with moving all contents into a 'latest' subfolder,
# which is essential for the Android SDK to correctly locate and use the command-line tools (Ι truly 
# want to know what luminary university graduate came up with this prerequisite).
cd cmdline-tools
mkdir latest

shopt -s extglob     # Enable extended globbing
mv !(latest) latest/ # Move everything into `latest` excluding itself
shopt -u extglob     # Optionally disable extended globbing afterwards

Install Android emulator

sdkmanager "emulator"
sdkmanager "platform-tools"
sdkmanager "tools"
sdkmanager "platforms;android-33"

sdkmanager "system-images;android-33;google_apis;x86_64"
avdmanager create avd -n MyEmulator -k "system-images;android-33;google_apis;x86_64" --device "pixel"

Debute Android emulator

emulator -avd MyEmulator

OR (Personally, I have found that the following command yields better overall performance and responsiveness)

emulator -avd MyEmulator     -no-snapshot-load     -no-boot-anim     -gpu host     -memory 4096     -accel on

Run App

Navigate to the top of the flutter project and execute the following from the command line:

# First execute `./build.sh` to ensure built is updated correctly.
./build.sh

# Finally, start app
flutter run

Clone this wiki locally