1
4

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 3 years have passed since last update.

Flutterを学ぶ中で必ず押さえておきたいこと

Last updated at Posted at 2021-10-15

0. はじめに

Flutterについて、必ず押さえておきたい基本的な知識をまとめてみました。

1. Flutterとは

  • Googleが開発しているアプリケーションフレームワーク。
  • クロスプラットフォームなフレームワークのため、**「Android」「iOS」「Web」「Windows」「MacOS」「Linux」**といったアプリケーションを、同じコードで開発することができる。
  • Flutter 1.X では、「Web」「Windows」「MacOS」「Linux」はベータ版だったが、Flutter 2.0(2021/3~)から安定版になった。
    • 但し「Windows」「MacOS」「Linux」は安定版といいつつ、品質はベータ版らしい。
    • 2021/10/11時点での最新バージョンは2.5.2
  • Widget(UI部品)が豊富に用意されており、簡単に画面を構築することができる。
  • Dart言語を使って実装する。

キャプチャ.PNG

2. 開発環境

  • 「Android Studio」or「XCode」or「VSCode」にFlutter SDKをぶち込んで開発する。
  • ホットリロードに対応していて、コードの変更をすぐにエミュレータや実機に反映することができる。
  • Flutter用パッケージがたくさん公開されている。使用する場合はpubspec.yamlにパッケージを記載。
  • flutter doctorというコマンドが便利。環境構築の際、コマンドを叩くと「プラグインがインストールされてないけど?」「Android SDKのバージョンが古いんだけど?」など教えてくれる。メッセージでググれば大体解決方法が載っている。
例:Windowsデスクトップ開発において、VisualStudioにコンポーネントが足りていない場合
PS C:\xxxxx\hogehoge_app> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.5.0, on Microsoft Windows [Version 10.0.19042.1237], locale ja-JP)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[√] Chrome - develop for the web
[!] Visual Studio - develop for Windows (Visual Studio Enterprise 2019 16.9.4)
    X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these components:
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK
[√] Android Studio (version 4.0)
[√] VS Code, 64-bit edition (version 1.55.2)
[√] Connected device (3 available)

3. Dart言語

  • こちらもGoogleが開発しているクラスベースのオブジェクト指向言語。
  • 2018年、学ぶ価値のないプログラミング言語1位に選ばれた:sob:
  • しかし、Dart2、Flutterの登場により人気は急上昇。
  • 静的型付け・動的型付けの両方に対応している。
  • パフォーマンスが高く、大規模サービスの開発にも適用できる。
  • Java・JavaScriptに近い。(そもそも影響を受けた言語がJava・JavaScriptらしい)
    これらの言語に慣れている人にとっては学習コストが低い。
  • アクセス修飾子がない。変わりに、変数名やクラス名にアンダースコア(_)を付けることで、privateになる。

4. Widget

4-1. StatelessWidget

  • 状態がずっと変化しないWidget。
  • 実装がシンプルになる。
  • buildメソッドを実装する。

4-2. StatefulWidget

  • ユーザーによる操作やデータを受け取った際などに状態が変化する可能性のあるWidget。
  • 自分の変数を更新することで、自分自身を再ビルドすることができる。
  • 実装が複雑になる分、状態を扱える。
  • StatefulWidget.createStateStateクラスの実装が必要。
  • Stateクラスにてbuildメソッドを実装する。

4-3. クラス図

  • サンプルアプリのWidgetのクラス関連は以下の図参照。
  • はじまりの「Widget」クラスを継承し「StatelessWidget」「StatefulWidget」「RenderObjectWidget」クラスが存在する。
    widget.png

(以下のイメージに近い:thinking:
kimetsu.png

5. ファイル構成

ディレクトリ 説明
lib Dartのソースコードを配置する
android Androidアプリ用のファイルを配置する
ios iOSアプリ用のファイルを配置する
web Webアプリ用のファイルを配置する
windows Windows用のファイルを配置する
build ビルドファイルが格納される
test ユニットテスト用のファイルを配置する
  • Dartで実現の難しい機能(デバイス関連など)については、「android」「ios」などのフォルダに、kotlin/swiftのコードを追加し、Dartから呼び出すイメージ。

6. サンプルコードと画面の対応

ウィジェット.png

7. おわりに

これからちょこちょこFlutterアプリ開発していきたいと思います:innocent:

1
4
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
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?