- 홈 화면에 웹과 동일한 framer-motion 스타일 애니메이션 적용 - 멤버 화면 카드 스와이프 디자인으로 재구현 - 인스타그램 딥링크 지원 (url_launcher, AndroidManifest queries) - flutter_svg 추가로 SVG 아이콘 동적 strokeWidth 지원 - 바텀 네비게이션 아이콘 strokeWidth 웹과 동일하게 조정 - 멤버 화면 툴바 그림자 제거 및 인디케이터 그림자 최적화 - 탭 전환 시 애니메이션 재생 기능 추가 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
46 lines
1.2 KiB
Dart
46 lines
1.2 KiB
Dart
/// 앨범 모델
|
|
library;
|
|
|
|
class Album {
|
|
final int id;
|
|
final String title;
|
|
final String? albumType;
|
|
final String? albumTypeShort;
|
|
final String? releaseDate;
|
|
final String? coverOriginalUrl;
|
|
final String? coverMediumUrl;
|
|
final String? coverThumbUrl;
|
|
final String? folderName;
|
|
final String? description;
|
|
|
|
Album({
|
|
required this.id,
|
|
required this.title,
|
|
this.albumType,
|
|
this.albumTypeShort,
|
|
this.releaseDate,
|
|
this.coverOriginalUrl,
|
|
this.coverMediumUrl,
|
|
this.coverThumbUrl,
|
|
this.folderName,
|
|
this.description,
|
|
});
|
|
|
|
factory Album.fromJson(Map<String, dynamic> json) {
|
|
return Album(
|
|
id: json['id'] as int,
|
|
title: json['title'] as String,
|
|
albumType: json['album_type'] as String?,
|
|
albumTypeShort: json['album_type_short'] as String?,
|
|
releaseDate: json['release_date'] as String?,
|
|
coverOriginalUrl: json['cover_original_url'] as String?,
|
|
coverMediumUrl: json['cover_medium_url'] as String?,
|
|
coverThumbUrl: json['cover_thumb_url'] as String?,
|
|
folderName: json['folder_name'] as String?,
|
|
description: json['description'] as String?,
|
|
);
|
|
}
|
|
|
|
/// 발매 년도 추출
|
|
String? get releaseYear => releaseDate?.substring(0, 4);
|
|
}
|