2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Flutterの基本的なことをまとめる

Last updated at Posted at 2020-06-07

はじめに

Flutterの基本的なことをまとめていきます。

Flutterとは

Flutterとは、Googleが提供しているUIツールキットです。
iOSとAndroidの両方のプラットフォームを、1つのコードで作成出来るので
非常に生産性が高いです。

他の特徴として、以下のものが挙げられます。

・Dart言語を使用している。
・アプリを一瞬でリロードできる。(ホットリロード)
・公式ライブラリのUIコンポーネントが豊富で、柔軟なデザインに対応できる。

環境構築について

公式サイトが分かりやすいです。

$ flutter doctor

上記コマンドがいろいろ教えてくれるので
言われたとおりやれば、環境構築することが出来ます。

公式サイト(Mac用)

ウィジェットについて

FlutterのUIはすべてウィジェットで構成されています。

・アプリに表示される部品(ラベル、スクロールバーやボタン)
・レイアウトに関するもの(パディング、マージン)

以上のような、画面のデザインに関わるもの全てがウィジェットです。
このウィジェットを組み合わせ、ツリー状に継承して画面を構成します。
(これをウィジェットツリーと呼びます。)

ウィジェットの種類は大きく分けて、2つあります。

Stateless Widget

状態を持たないウィジェット。
一度インスタンスしたら、変わることがないです。
build() メソッドを実装する必要があります。

Stateful Widget

状態を持つウィジェット。
build() メソッドが必要ないです。
createState() メソッドを実装して
状態を変更することが可能です。

基本的に、どちらかを継承してウィジェットを作成していくことになります。

Hello World

Hello worldを出力してみましょう。
以下のコードでHello Worldが出力できます。

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

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Welcome to Flutter',
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Welcome to Flutter'),
        ),
        body: new Center(
          child: new Text('Hello World'),
        ),
      ),
    );
  }
}

結果

image.png

ロジック説明

最初に main() が呼ばれ、 runApp() にウィジェットを渡すことで画面を構築していきます。

MyApp()StatelessWidget を継承しており、全体をbuildしています。

MaterialAppは、マテリアルデザインで実装しやすくした便利なウィジェットで
マテリアルデザインにするには、Scaffoldとともに必ず使用します。

Scaffoldは、マテリアルデザイン用のWidgetで
AppBar、title、およびホーム画面のウィジェットツリーを保持するbodyプロパティを渡しています。

ちょっとカスタマイズ

一部分を変えて、テキストからボタンに変更してみます。

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

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Welcome to Flutter',
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Welcome to Flutter'),
        ),
        body: new Center(
          /// 以下を変更
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              RaisedButton(
              child: Text("Button"),
              color: Colors.orange,
              textColor: Colors.white,
              onPressed: () {},
              ),
            ],
          ),
        ),
      ),
    );
  }
}

結果

image.png

このようにウィジェットを配置することで、簡単にUIを作成することが可能です。

DartPadについて

Dartのコードを試せる、DartPadというサイトがあるのですが
Flutterのコードも簡単にテストすることが出来ます。
(上記コードも実行出来ます)

さいごに

Flutterは便利なライブラリやウィジェットが多数あるので
それらを使いこなせるよう、もっと理解を深めていきたいです。

2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?