[flutter]便利なlive templates、スニペット集

2020/10/12に公開

はじめに

flutterのスニペット紹介です。
Riverpod(Provider) + StateNotifierの構成だとよく使いそうなものを上げています

環境

バージョン
flutter 1.22.1(MacOS)
state_notifier 0.6.0
flutter_state_notifier 0.6.1
freezed 0.12.1
freezed_annotation 0.12.0
flutter_riverpod 0.11.1

live templates

StateNotifier + freezed

freezedで状態クラス作ってStateNotifierも一緒にくっつけてる方へ

import 'package:flutter/foundation.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:state_notifier/state_notifier.dart';

part '$FILE_NAME$_state.freezed.dart';


abstract class $CLASS_NAME$State with _$$$CLASS_NAME$State {
  const factory $CLASS_NAME$State({}) = _$CLASS_NAME$State;
}

class $CLASS_NAME$StateNotifier extends StateNotifier<$CLASS_NAME$State> {
  $CLASS_NAME$StateNotifier() : super(const $CLASS_NAME$State()) {}
}

ConsumerWidget

RiverpodでConsumerWidgetを使う方へ

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/all.dart';

class $CLASSNAME$ extends ConsumerWidget {
  
  Widget build(BuildContext context, ScopedReader watch) {
    return Container();
  }
}

Data class

firestoreからとってきたデータをfreezedでデータクラスにしている方へ
これにfromSnapshot factoryコンストラクタやtoMapメソッドをつけるといいと思います

import 'package:flutter/foundation.dart';
import 'package:freezed_annotation/freezed_annotation.dart';

part '$FILE_NAME$.freezed.dart';


abstract class $CLASS_NAME$ implements _$$$CLASS_NAME$ {
  const factory $CLASS_NAME$({}) = _$CLASS_NAME$;
  const $CLASS_NAME$._();
}

Singleton

シングルトンクラスを作成している方へ

class $CLASSNAME$ {
  factory $CLASSNAME$() => _instance;
  
  $CLASSNAME$._internal();
  
  static final _instance = $CLASSNAME$._internal();
}

おわりに

どれも大した記述量ではありませんが、多少時間節約はできると思います。お役に立てたなら幸いです。
なにか間違い、アドバイスがございましたらコメントにお願いします

Discussion