🐈
Flutterアプリ開発の1歩目 Mac OS向け
※sdkなどのインストールは済んでいる前提
・アプリディレクトリの作成
flutter create my_app
・試しに起動
open -a Simulator
flutter run -d ios
・main.dartを修正
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(const MoteruApp());
}
class MoteruApp extends StatelessWidget {
const MoteruApp({super.key});
Widget build(BuildContext context) {
return MaterialApp(
title: 'Moteru Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.pinkAccent),
useMaterial3: true,
),
home: const MissionPage(),
);
}
}
class MissionPage extends StatefulWidget {
const MissionPage({super.key});
State<MissionPage> createState() => _MissionPageState();
}
class _MissionPageState extends State<MissionPage> {
int _index = 0;
static const _missions = [
'Start conversations with a smile.',
'Share a compliment today.',
'Take a deep breath before replying.',
];
void _showNextMission() {
setState(() {
_index = (_index + 1) % _missions.length;
});
}
Widget build(BuildContext context) {
final theme = Theme.of(context);
return Scaffold(
appBar: AppBar(
title: const Text('Today\'s Mission'),
),
body: Padding(
padding: const EdgeInsets.all(24),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Tap the button to get a quick mission you can finish in seconds.',
style: theme.textTheme.titleMedium,
textAlign: TextAlign.center,
),
const SizedBox(height: 24),
DecoratedBox(
decoration: BoxDecoration(
color: theme.colorScheme.secondaryContainer,
borderRadius: BorderRadius.circular(24),
),
child: Padding(
padding: const EdgeInsets.all(24),
child: Text(
_missions[_index],
textAlign: TextAlign.center,
style: theme.textTheme.headlineSmall?.copyWith(
color: theme.colorScheme.onSecondaryContainer,
height: 1.4,
),
),
),
),
const SizedBox(height: 24),
FilledButton.icon(
onPressed: _showNextMission,
icon: const Icon(Icons.refresh),
label: const Text('Another idea'),
),
],
),
),
);
}
}
・simを起動
open -a Simulator
・使用デバイスのIDを確認
flutter devices
・アプリの検証
ビルドしてアプリ起動までやってくれる
flutter run -d <シミュレータのID>
・dartでコードを書いてアプリを開発する
・実機検証
flutterアプリのルートで以下を実行
open ios/Runner.xcworkspace
Xcodeが開くので:
- 左上のプロジェクト(Runner)を選択
- Targets → Runner → Signing & Capabilities
- 「Team」で自分の Apple ID を選択
- (初めてなら「Add an Account」から Apple ID を追加)
- Bundle Identifier がユニークになるように編集
例: com.example.myapp → com.yourname.myapp - 上部の実行ターゲットに 接続している iPhone を選択
- flutter run -d <id>を実行
- iphoneで設定アプリ → 一般 → VPNとデバイス管理 or プロファイルとデバイス管理」→「“○○(デベロッパ名)”を信頼」 をタップ
- ターミナル表記のInstalling and launching... を待つ(あまりに長い場合、一度中断して再度flutter runを実行)
Discussion