🫥

enumで管理してみた話

に公開

Motivation

元々以下のように管理してた。

class CharacterImage {
  CharacterImage({required this.name, required this.path});

  final String name;
  final String path;
}

final List<CharacterImage> imageData = [
   CharacterImage(name: '', path: 'path/to/file'),
   ...
];

各キャラクター毎に動画のリストを作りたくなった⇨どうしよう

Idea

別でCharacterKeyを作成⇨keyとimageDataや動画のリストをMapで紐付け

class CharacterImage {
  CharacterImage({required this.name, required this.path});

  final String name;
  final String path;
}

enum CharacterKey {a, b}

final Map<CharacterKey, CharacterImage> imageData = {
   CharacterKey.a: CharacterImage(name: '', path: 'path/to/file'),
   ...
};

final Map<CharacterKey, List<String>> MovieId = {
   CharacterKey.a: ['id1', 'id2'],
   ...
}

Merit

子WidgetへはCharacterKeyを渡すだけで、Widget内で必要なimageDataやMovieIdを取得できるようになった。

Question

Dartでenumって使われているんかな?今回初めて知った

Discussion