🎉
JulesでFlutterを動かす
環境
- Flutter 3.35.2
- fvmは使わない
参考になった記事
Configurationに下記のコードを入れてRun
#!/bin/bash
# Script to set up a development environment for a Flutter project
# on a Debian-based Linux distribution.
# This script is designed to be run by a user with passwordless sudo privileges.
set -e
echo "Starting development environment setup..."
# Update package lists and install basic dependencies
sudo apt-get update
sudo apt-get install -y curl git unzip wget jq
echo "Basic dependencies installed."
# Install Flutter SDK
FLUTTER_PATH="/usr/local/flutter"
if [ -d "$FLUTTER_PATH" ]; then
echo "Flutter SDK is already installed."
else
echo "Installing Flutter SDK..."
#Flutterのバージョン変更は「flutter_linux_3.35.2-stable」の部分を書き換える。
FLUTTER_SDK_URL="https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.35.2-stable.tar.xz"
wget -qO flutter.tar.xz "$FLUTTER_SDK_URL"
sudo mkdir -p "$FLUTTER_PATH"
sudo tar -xf flutter.tar.xz -C "$FLUTTER_PATH" --strip-components=1
rm flutter.tar.xz
echo "Flutter SDK installed."
fi
# Install Android SDK
ANDROID_HOME="/usr/local/android-sdk"
if [ -d "$ANDROID_HOME" ]; then
echo "Android SDK is already installed."
else
echo "Installing Android SDK..."
ANDROID_SDK_URL="https://dl.google.com/android/repository/commandlinetools-linux-11391160_latest.zip"
wget -qO android_sdk.zip "$ANDROID_SDK_URL"
unzip -q android_sdk.zip
sudo mkdir -p "$ANDROID_HOME/cmdline-tools"
sudo mv cmdline-tools "$ANDROID_HOME/cmdline-tools/latest"
rm android_sdk.zip
echo "Android SDK installed."
fi
# Set environment variables for the script's session
export FLUTTER_HOME="/usr/local/flutter"
export ANDROID_HOME="/usr/local/android-sdk"
export PATH="$PATH:$FLUTTER_HOME/bin"
export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin"
export PATH="$PATH:$ANDROID_HOME/platform-tools"
# Install Android platform tools
echo "Installing Android platform tools..."
yes | sudo "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --licenses > /dev/null
sudo "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "platform-tools" "platforms;android-33" "build-tools;33.0.2" > /dev/null
# Configure Flutter
echo "Configuring Flutter..."
# The following line enables support for Linux desktop apps.
# If you are only developing for mobile (Android/iOS), this is not necessary.
# sudo "$FLUTTER_HOME/bin/flutter" config --enable-linux-desktop
# 'flutter doctor' checks the environment and displays a report.
# It's a useful verification step to run manually after the setup,
# but not required for the setup script itself.
# sudo "$FLUTTER_HOME/bin/flutter" doctor
# Update .bashrc for the user
echo "Updating .bashrc for the current user..."
BASHRC_FILE="$HOME/.bashrc"
if ! grep -q 'export PATH="$PATH:/usr/local/flutter/bin"' "$BASHRC_FILE"; then
echo '' >> "$BASHRC_FILE"
echo '# Flutter and Android SDK' >> "$BASHRC_FILE"
echo 'export PATH="$PATH:/usr/local/flutter/bin"' >> "$BASHRC_FILE"
fi
if ! grep -q 'export ANDROID_HOME="/usr/local/android-sdk"' "$BASHRC_FILE"; then
echo 'export ANDROID_HOME="/usr/local/android-sdk"' >> "$BASHRC_FILE"
echo 'export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin"' >> "$BASHRC_FILE"
echo 'export PATH="$PATH:$ANDROID_HOME/platform-tools"' >> "$BASHRC_FILE"
fi
echo "------------------------------------------------------------------"
echo "IMPORTANT:"
echo "The environment variables have been updated in $BASHRC_FILE. To apply the changes,"
echo "you need to either restart your terminal or run:"
echo "source $BASHRC_FILE"
echo "------------------------------------------------------------------"
echo "Setup complete!"
うまくいった場合
緑のSuccessが出たらボタンを押す。うまくいってたら下記のように保存される。
試行錯誤の跡
Flutter学習のおすすめ本
Flutterでアプリ開発を始める上での個人的なオススメをまとめています。
書籍はkindle unlimitedで新しいものを無料で読むのが良いと思います。
オススメ書籍
これから始める場合、flutter 1.x の時に書かれた本を読むのは辞めておいた方がいいです。
理由は、flutter 2.x 以降、null-safetyという仕様が加わり、書き方がガラッと変わりました。
僕は2.xがリリースされたあたりでFlutterを初めて、情報がアテにならずかなり苦戦しました。
これから始める方向け 【kindle unlimitedなら無料】
スマホで動くアプリを作ろう!ゼロから始めるFlutter実践入門編 ①: シンプルなアプリを作ってみよう
初心者による初心者のためのFlutter詳解
脱初心者向け(課金の実装など、具体的な実装方法や技術が書いてあります)
現場で使える Flutter開発入門
中・上級者向け
Riverpodやルーティングなどについて書かれてあります。
Discussion