Open4

flutter refactoring note

mahmah

import文の順序性

dart: で始まるDartの組み込みライブラリ
package: で始まる外部パッケージ
同じパッケージ内の相対パスによるimport

// Dartの組み込みライブラリ
import 'dart:async';
import 'dart:math';

// 外部パッケージ
import 'package:flutter/material.dart';
import 'package:http/http.dart';

// 同じパッケージ内の相対パスによるimport
import 'src/models.dart';
import 'src/widgets.dart';

同じパッケージ内は相対パスによるimportが推奨の模様。

mahmah

グローバルに設定してたローカル通知をSingletonでクラス管理してみる

LocalNotificationManagerクラスに切り出し

import 'package:flutter_local_notifications/flutter_local_notifications.dart';

class LocalNotificationManager {
  // Singletonインスタンス
  static final LocalNotificationManager _instance = LocalNotificationManager._internal();

  factory LocalNotificationManager() {
    return _instance;
  }

  // コンストラクタ
  LocalNotificationManager._internal();

  // FlutterLocalNotificationsPluginインスタンス
  final FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin =
      FlutterLocalNotificationsPlugin();

  // 初期化関数
  Future<void> init() async {
    const initializationSettingsAndroid =
        AndroidInitializationSettings('app_icon');
    final initializationSettings =
        InitializationSettings(android: initializationSettingsAndroid);

    await _flutterLocalNotificationsPlugin.initialize(initializationSettings);
  }
}