FlutterでHello Worldを表示するには?初めての1行を実行しよう
生徒
「Flutterを始めたばかりですが、まずはHello Worldを表示してみたいです。どうやればできますか?」
先生
「いいですね!FlutterでHello Worldを表示するには、Dart言語でmain関数を書いて、Textウィジェットを使うとできますよ。」
生徒
「具体的にはどんなコードになりますか?」
先生
「では、基本的なコードを見てステップごとに解説しますね!」
1. Flutterとは何か?簡単におさらい
FlutterはGoogleが開発したオープンソースのUIツールキットで、iOS・Android・Web・デスクトップといった複数プラットフォームに対応したアプリを一つのコードベースで作成できることが大きな特徴です。初心者でも短時間でアプリを動かせる「ホットリロード」機能が備わっており、開発の学びやすさがあります。
2. 開発環境の準備
まずはFlutterのSDKとエディタ(例:Visual Studio CodeやAndroid Studio)をインストールしましょう。以下が一般的な手順です:
- Flutter SDKのインストール:公式サイトの「Get Started」から手順に従ってインストール。
- エディタにFlutterとDartのプラグインを追加。
- ターミナルで
flutter doctorを実行して、環境に問題がないか確認。
3. 新しいFlutterプロジェクトを作成
準備が整ったら、以下のコマンドで新しいプロジェクトを作成します:
flutter create hello_world_app
cd hello_world_app
flutter run
エミュレータや実機が起動中であれば、これだけでFlutterのデフォルトアプリが起動します。
Flutterを「実務レベル」で使えるようになりたい人や、 iPhone / Android両対応アプリ開発の流れをまとめて学びたい人には、 定番の実践書がこちらです。
Flutter実践開発をAmazonで見る※ Amazon広告リンク
4. Hello Worldコードの記述
では、lib/main.dart を以下のコードに書き換えて、Hello Worldを最小限のコードで表示させます:
import 'package:flutter/material.dart';
void main() => runApp(const HelloWorldApp());
class HelloWorldApp extends StatelessWidget {
const HelloWorldApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Scaffold(
body: Center(
child: Text('Hello World'),
),
),
);
}
}
このコードで何が起きているか、順を追って解説します:
- import … flutter/material.dart:画面描画に必要なウィジェット群を読み込みます。
- main() → runApp():Flutterアプリの起点となる関数と、アプリ全体の第一ウィジェットを起動します。
- HelloWorldApp class:StatelessWidgetを継承し、UIを構築します。
- MaterialApp → Scaffold → Center → Text:それぞれ、アプリ全体、画面枠、文字位置、文字表示を担当しています。
5. 実行結果の確認
Hello World
エミュレータまたは実機に「Hello World」と表示されれば成功です!アプリが正しく動いている証拠です。
6. Hot Reloadで即時表示
Flutterの強力な特徴であるホットリロードを使うことで、コードを変更して保存すると即座にUIに反映されます。例えば、Textの文字を「こんにちは、Flutter」に書き換えて保存するとすぐに適用されます。
7. Hello Worldから一歩進むチュートリアル
Hello WorldはFlutterの最初の一歩です。この後は、以下のような内容に挑戦してみると良いでしょう:
- ボタンが押せるアプリ(ElevatedButtonとonPressed)
- 状態管理(StatefulWidgetを使ったカウンター)
- 複数画面(Navigatorやルーティング)
これらを学ぶことで、Flutterの基本的な開発スキルが身につきます。
8. よくあるエラーと対処方法
初心者がつまずきやすい点も紹介します:
- エミュレータが見つからない:Android StudioのAVD Managerか、
flutter emulators --launchで確認。 - importエラー:
flutter pub getを実行し、依存パッケージを取得。 - ホットリロードが効かない:デバイスが接続されているか確認したり、IDEの再起動を試してください。
まとめ
FlutterでHello Worldを表示するまでの流れを振り返ると、環境構築からプロジェクト作成、そして実際にDartコードを書いてアプリを動かすという基本的な一連のステップが自然に身につく構成になっていました。特に、Flutterは複数のプラットフォームに対応しながらも、短いコードで素早く画面を表示できるという大きな魅力があります。Hello Worldの表示はシンプルな一歩ですが、Flutterというフレームワークの使いやすさ、ウィジェットの柔軟さ、そしてDart言語の読みやすさを感じるうえで非常に重要な体験になります。
記事で紹介したMaterialApp、Scaffold、Center、Textといった基本ウィジェットはFlutterにおけるUI構築の土台であり、今後より複雑な画面を作る際にも必ず役に立ちます。また、Flutter特有のホットリロードは開発者にとって非常に快適な機能で、初心者がアプリ開発に慣れるスピードを大きく高めてくれます。文字を変えるだけでもすぐに反映されるため、学びながら試すというサイクルが非常に効率的に回せるのもFlutterの魅力です。
ここではHello Worldを発展させて、簡単なテキスト変更機能を持つサンプルコードを紹介します。これを通して、StatefulWidgetの利用や画面の再描画の仕組みを感じることができるため、次のステップに進む準備として最適です。
サンプルプログラム:ボタンでテキストを切り替える簡単アプリ
import 'package:flutter/material.dart';
void main() => runApp(const HelloChangeApp());
class HelloChangeApp extends StatelessWidget {
const HelloChangeApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: HelloChangePage(),
);
}
}
class HelloChangePage extends StatefulWidget {
const HelloChangePage({super.key});
@override
State<HelloChangePage> createState() => _HelloChangePageState();
}
class _HelloChangePageState extends State<HelloChangePage> {
String message = 'Hello World';
void _changeMessage() {
setState(() {
message = message == 'Hello World' ? 'こんにちは Flutter' : 'Hello World';
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Hello Change Sample')),
body: Center(
child: Text(
message,
style: const TextStyle(fontSize: 24),
),
),
floatingActionButton: FloatingActionButton(
onPressed: _changeMessage,
child: const Icon(Icons.refresh),
),
);
}
}
このサンプルは、ボタンを押すたびにテキストが切り替わるシンプルなアプリです。Hello Worldの次のステップとして、StatefulWidgetを使った状態管理の基礎を学べる構成になっています。Flutterは画面の状態を管理しながら構築する仕組みを持っているため、こうした小さな動作を理解することが後々大きな開発力につながります。コードを自分で書き換えながら、どの部分がUIに影響を与えるのかを確認すると、より深い理解につながります。 また、Flutterの開発に慣れていくと、画面遷移、アニメーション、状態管理パターンなど、さらに高度な機能にも挑戦できるようになります。最初のHello Worldをしっかり理解することは、後の複雑なプログラム構築においてとても重要で、基礎を固めることが結果的に開発の効率を高めます。今回の学びを起点に、自分の想像したアプリを少しずつ形にしていきましょう。
生徒
「Hello Worldを表示するだけでも、Flutterの仕組みがわかってきた気がします!MaterialAppやScaffoldの役割が理解しやすかったです。」
先生
「とても良いですね。Flutterはウィジェットの構造がしっかりしているので、一つ一つ理解すると応用が効きやすいんですよ。」
生徒
「サンプルコードも試してみたいです。ボタンで文字が変わるのって楽しそうです!」
先生
「StatefulWidgetを学ぶと、アプリらしい動きが作れるようになります。ぜひ挑戦してみてください。」
生徒
「今回のHello Worldがすごく良いスタートになりました。次はボタンや画面遷移も学んでみたいです!」
先生
「その意欲があればどんどん成長できますよ。次のステップも一緒に進んでいきましょうね。」