전체 글 372

[다트] enhanced enum - String 값으로 Enum 값 얻기

🎯 Dart 언어에서의 enhanced enum은 기존의 열거형(enum)에 더 많은 기능을 추가하여, 각 열거형 값에 메서드를 추가하거나, 계산된 프로퍼티를 포함시킬 수 있게 해줍니다. 이는 코드의 가독성과 유지 보수성을 크게 향상시킬 수 있는 강력한 기능입니다. Enhanced Enum의 주요 특징 - 메서드 추가: 각 열거형 값에 대해 메서드를 정의할 수 있습니다. - 프로퍼티 추가: 열거형 값에 계산된 프로퍼티를 추가할 수 있습니다. - 타입 안전성: 열거형을 사용함으로써 코드 내에서 타입 안전성을 보장받을 수 있습니다. String 값으로 Enum 값 얻기: Static Method 예시 enhanced enum을 사용하여 String 값을 입력받아 해당하는 열거형 값을 반환하는 static m..

무기/다트 2024.02.17

[플러터] Equatable 패키지 사용하기

플러터(Flutter)에서 개발을 진행하다 보면, 상태 관리와 관련하여 객체의 동등성(equality)을 확인해야 하는 상황이 자주 발생합니다. 이러한 문제를 해결하기 위해 Equatable 패키지를 사용하는 것이 일반적인 방법 중 하나입니다. 이 글에서는 Equatable 패키지가 무엇이고, 왜 플러터 개발에서 이를 사용하는지에 대해 설명하려고 합니다. Equatable 패키지란? Equatable은 Dart의 객체들이 서로 동등한지를 쉽게 확인할 수 있도록 도와주는 패키지입니다. Dart에서는 기본적으로 객체의 동등성을 == 연산자를 통해 확인할 수 있으나, 이는 기본적으로 객체의 식별자(identity)를 기반으로 합니다. 즉, 두 객체가 물리적으로 같은 인스턴스일 때만 true를 반환합니다. 이는..

[플러터] 화면 전환 시 이미지가 튀어나오는 문제 수정

로컬 이미지 활용 플러터에서 네트워크 이미지가 아닌 로컬로 저장해둔 이미지를 사용하는 경우에도 위젯이 아래로 밀리는 경우가 있습니다. 이미지가 차지할 영역을 미리 알고 있지 못하는 경우입니다. 플러터에서 로컬 이미지 사용시의 일반적인 코드입니다. Image.asset( 'assets/images/sea_of_stars.png', fit: BoxFit.fitWidth, ), 화면에 보이는 모습은 다음과 같습니다. 이미지 위젯 아래 쪽의 위젯(예시에서는 텍스트 위젯)이 밀려나는 것을 볼 수 있습니다. 이러한 현상을 개선하려면 이미지의 높이 값을 지정해 주면 됩니다. Image.asset( 'assets/images/sea_of_stars.png', fit: BoxFit.fitWidth, height: Med..

[VS Code] 플러터 개발에 Android Studio 대신 VS Code를 사용하게 된 계기

플러터 개발을 시작하면서부터 안드로이드 스튜디오를 사용해 왔습니다. 초보자를 위한 플러터 강의 대부분이 안드로이드 스튜디오를 사용했기 때문에 자연스러운 선택이었다고 생각합니다. VS Code로도 플러터 개발을 할 수 있다는 것을 알았지만, 사용자에게 불친절하다는 선입견을 가지고 있었습니다. 안드로이드 스튜디오 사용에 만족했기 때문에 지금까지 잘 사용하고 있었습니다. 최근 깃헙 코파일럿 챗 기능이 VS Code에서 출시되었을 때 VS Code로 전환하는 것을 잠깐 생각했습니다. 안드로이드 스튜디오에서는 해당 기능을 사용할 수 없었기 때문입니다. 하지만 안드로이드 스튜디오에서도 언젠가 출시될 것이라고 믿었고, 지금은 지원되고 있습니다. 그런 식으로 안드로이드 스튜디오를 계속 사용해왔습니다. 그러다 어제 Fi..

유물 2024.01.27

<플러터> DateTime 다루기

🧭 DateTime 메서드 .toLocal() DateTime 타입의 데이터를 현지 시간으로 표현 .toUtc() DateTime 타입의 데이터를 utc 기준으로 표현 .difference(DateTime other) 파라미터로 넘어온 날짜로부터 차이나는 일수를 반환 DateUtils .dateOnly(DateTime date) 년월일까지만 반환 (시, 분, 초는 00으로 반영) .isSameDay(DateTime? dateA, DateTime? dateB) dateA와 dateB가 같은 날짜 인지 확인 (시, 분, 초 무시)

<독서> 종이달 - 가쿠타 미쓰요

📖 부정없이 행복하기를 부정을 통해 얻은 행복은 순간이었다. 오지 않은 미래를 상상하는 것만으로는 현실감이 없다. 미래의 나에게 미안하지만 순간의 쾌락을 뿌리치기 쉽지 않다. https://www.yes24.com/Product/Goods/15343499 종이달 - YES24 가쿠다 미쓰요 장편소설 『종이달』. 소설은 자신이 근무하던 은행에서 1억 엔을 횡령하고 태국으로 도주 중인 41세 주부 우메자와 리카의 회상을 중심으로 이야기가 전개된다. 횡령 사건 직후 www.yes24.com

클래스/모험가 2023.06.28

<플러터> 패키지 사용시 앨범명 등 한글화하기

🧭 photo_manager 제가 한글화를 하고자 한 패키지는 photo_manager 입니다. 앨범명을 불러오는데 기본적으로 영어로 나옵니다. flutter localization 플러터 앱에 localization을 적용합니다. pubspec.yaml 수정 dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: any main.dart 수정 import 'package:flutter_localizations/flutter_localizations.dart'; ... return const MaterialApp( ..., localizationsDelegates: [ GlobalMaterialLocalizations.d..