Flutterでアプリを作るときに 「カレンダー」「Todo」「メモ」「設定」複数の機能を入れる方法」

スポンサーリンク


Flutterでアプリを作るときに「カレンダー」「Todo」「メモ」「設定」みたいに複数の機能を入れる方法」は、基本的にアプリを画面(ページ)ごとに分けて管理します。

ここがFlutterアプリ設計の一番重要な考え方です。

Flutterで複数機能を作る基本構成

一番よくある構成はこれです。

lib/
├ main.dart
├ screens/
│ ├ home_screen.dart
│ ├ calendar_screen.dart
│ ├ todo_screen.dart
│ └ settings_screen.dart
├ models/
│ └ todo.dart
├ services/
│ └ database.dart
└ widgets/
└ todo_tile.dart

役割はこう

フォルダ 内容
screens 画面
models データ構造
services DB・API
widgets 部品

= 大きいアプリはフォルダで機能を分ける

画面を切り替えて複数機能を作る

一番よく使うのが
BottomNavigationBar(下のメニュー)

例:

ホーム
カレンダー
Todo
設定

みたいなアプリ

画面切り替えの基本コード


  1. import 'package:flutter/material.dart';
  2. import 'calendar_screen.dart';
  3. import 'todo_screen.dart';
  4. class HomeScreen extends StatefulWidget {
  5.   @override
  6.   _HomeScreenState createState() => _HomeScreenState();
  7. }
  8. class _HomeScreenState extends State<HomeScreen> {
  9.   int _selectedIndex = 0;
  10.   final List<Widget> _screens = [
  11.     CalendarScreen(),
  12.     TodoScreen(),
  13.   ];
  14.   void _onItemTapped(int index) {
  15.     setState(() {
  16.       _selectedIndex = index;
  17.     });
  18.   }
  19.   @override
  20.   Widget build(BuildContext context) {
  21.     return Scaffold(
  22.       body: _screens[_selectedIndex],
  23.       bottomNavigationBar: BottomNavigationBar(
  24.         currentIndex: _selectedIndex,
  25.         onTap: _onItemTapped,
  26.         items: [
  27.           BottomNavigationBarItem(
  28.             icon: Icon(Icons.calendar_today),
  29.             label: 'Calendar',
  30.           ),
  31.           BottomNavigationBarItem(
  32.             icon: Icon(Icons.check),
  33.             label: 'Todo',
  34.           ),
  35.         ],
  36.       ),
  37.     );
  38.   }
  39. }

これでカレンダーとTodoを切り替えできるアプリになる。

機能ごとにパッケージを使う

Flutterは自分で全部作るより
pub.devのパッケージを使うのが普通

よく使う例

機能 パッケージ
カレンダー table_calendar
Todo保存 sqflite
ローカル保存 shared_preferences
状態管理 provider / riverpod
通知 flutter_local_notifications

例(カレンダー)

flutter pub add table_calendar

大きいアプリの作り方

複数機能アプリはこの順番で作ると成功します

作る順番

① ホーム画面
② 画面切り替え
③ Todo機能
④ データ保存
⑤ カレンダー機能
⑥ 通知機能
⑦ 設定画面

全部一気に作ろうとすると100%詰む

アプリ設計のイメージ

例えば

マイライフ管理アプリ
├ カレンダー
├ Todo
├ メモ
├ 習慣トラッカー
├ 設定

Flutterでは

1アプリ = 複数画面の集合

と思えばOK。

Flutterでアプリ作る人の構成

かなりリアルな構成

lib
├ main.dart
├ screens
│ ├ home
│ ├ calendar
│ ├ todo
│ ├ memo
│ └ settings
├ models
├ services
├ providers
└ widgets

→ この構成にするとプロっぽいアプリになる


Flutterアプリ開発は

UI(画面)

ロジック

データ保存

この3つで出来ています。

部分
UI カレンダー画面
ロジック Todo追加
データ SQLite保存

これを機能ごとに作るのがコツ。