LoginSignup
4
2

Ubuntu で Flutter を使う

Last updated at Posted at 2021-01-07

Ubuntu 22.04 に Flutter をインストールして Web サーバーとして使う方法です。

前提ソフトのインストール

sudo apt install clang curl pkg-config ninja-build cmake libblkid-dev libgtk-3-dev

Flutter のインストール

git clone https://github.com/flutter/flutter.git

/usr/local/flutter に移動する

sudo mv flutter /usr/local

パスを設定

export PATH=$PATH:/usr/local/flutter/bin

インストールの確認

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.1.0-0.0.pre.2054, on Ubuntu 22.04.1 LTS
    5.15.0-25-generic, locale ja_JP.UTF-8)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/linux#android-setup for
      more details.
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] VS Code (version 1.68.1)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

! Doctor found issues in 2 categories.

バージョンの確認

flutter --version

ソフトの作成

flutter create myapp
cd myapp

Web サーバーとして動かす (ポートはランダムになります。)

$ flutter run -d web-server
Launching lib/main.dart on Web Server in debug mode...
Waiting for connection from debug service on Web Server...         25.3s
lib/main.dart is being served at http://localhost:42819

ブラウザーで
http://localhost:42819
にアクセスする
flutter_jan07.png

外部からアクセスするには

flutter run -d web-server --web-hostname=0.0.0.0

ポートを指定して起動するには

flutter run -d web-server --web-port=1234

プログラムを改造します。
lib/main.dart を次と差し替えて下さい。

lib/main.dart
import 'package:flutter/material.dart';

void main() {
  runApp(ExampleApp());
}

class ExampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HelloWorld(),
    );
  }
}

class HelloWorld extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
String str_out = 'こんにちは。\n';
str_out += '今日は晴れています。\n';
str_out += 'Dec/08/2021\n';
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Example App'),
      ),
      body: Container(
        alignment: Alignment.center,
        child: Text(
          str_out,
          style: TextStyle(
            fontSize: 70,
            fontWeight: FontWeight.bold,
          )
        ),
      )
    );
  }
}

サーバーを起動してブラウザーからアクセス
flutter_dec08_aa.png

確認したバージョン

$ flutter --version
Flutter 3.13.0-7.0.pre.51 • channel master • https://github.com/flutter/flutter.git
Framework • revision d457287f6c (2 hours ago) • 2023-07-20 14:02:12 -0700
Engine • revision 9b2ebf2afe
Tools • Dart 3.1.0 (build 3.1.0-332.0.dev) • DevTools 2.25.0
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2