무기/다트 9

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

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

무기/다트 2024.02.17

<다트> Stopwatch - 함수 호출 완료 시간 검토

🧭 함수 호출 시간 개발을 하다보면 함수 호출이 완료되기 까지 시간이 얼마나 걸리는지 확인해야 할 필요가 있거나 확인하고 싶을 때가 있습니다. Stopwatch 이럴 때 사용하는 클래스가 Stopwatch입니다. 바로 사용해 보겠습니다. void yourFunction() { final stopwatch = Stopwatch()..start(); // something to do... stopwatch.stop(); print('Microseconds:${stopwatch.elapsedMicroseconds}'); } 함수 시작시 stopwatch를 start하고, 종료 직전 stop하면 함수 안에서 시간이 얼마나 소요되는지 확인할 수 있습니다. 📌 https://api.flutter.dev/flutte..

무기/다트 2023.04.08

<다트> == true, == false 사용하지 마세요

🧭 == true, == false nullable 타입의 변수의 null 여부에 따라 조건문을 분기하는 경우가 있습니다. 첫번째 방법은 변수?.isEmpty == true 처럼 null 인 경우 false가 되도록 판단하는 것입니다. 두번째 방법은 변수?.isEmpty ?? false 처럼 사용하는 것입니다. 저는 두번째 방법을 추천드립니다. 이유는 2가지 입니다. 우선 변수가 null 이면 false 라고 쉽게 파악할 수 있습니다. 첫번째 방법을 사용한 경우 null은 true가 아니니까 false 구나라고 한단계 더 생각해야 합니다. 다음으로 해당 값이 null일 수 없는 경우를 바로 알 수 있습니다. null이 아닌 경우 dart lint 도구가 필요없는 코드라고 hint를 줄 것입니다.

무기/다트 2022.11.17

<Dart> 객체의 DateTime 값을 기준으로 정렬

🧭 sort list의 sort 메서드를 활용하면 list를 정렬할 수 있습니다. sort 메서드의 인자로는 비교함수를 대입하게 됩니다. 단순 오름차순/내림차순의 경우에는 비교함수를 생략하고 sort() 메서드의 호출만으로 정렬이 됩니다. sort 메서드는 원본 list를 변경하는 파괴적 메서드입니다. compareTo 정렬 기준이 단순 값이 아닌 객체의 특정 프로퍼티 등인 경우에는 compareTo 함수를 통해 비교하게 됩니다. list.sort((a, b) => a.dateTime.compareTo(b.dateTime)); DateTime 타입은 추가 가공없이 compareTo로 비교 가능합니다. 📌 https://api.flutter.dev/flutter/dart-core/List/sort.html..

무기/다트 2022.10.24

<Dart> Linter 사용하기

complie 단계에서의 에러를 사전에 체크해 주는 것은 android studio 같은 IDE를 사용하는 주요한 이유이다 이 때 Lint를 활용하면 +++ WHAT +++ 개발자가 원하는 에러 / 스타일 / 패키지 관련 안내 / 경고 / 에러를 발생시켜 +++ WHY +++ 개인적으로는 일관된 개발 습관을 기르고, 조직적으로는 통일된 개발 형식을 공유할 수 있다는 장점이 있다 +++ HOW +++ 1. pub.dev 에서 'pedantic' 검색 2. pubspec.yaml 에서 dev_dependencies 아래에 'pedantic: ^1.11.0' 입력(2021-05-06 기준) ※ dependencies 와 dev_dependencies 의 차이점: 전자는 배포단계에서 적용 / 후자는 개발단계(테..

무기/다트 2021.05.06

<Dart> Dart Style Guide - prefix letter ㄴㄴ?

가벼운 프로젝트를 완료하고 한숨 돌릴 겸 Dart 공식문서를 읽어나가고 있다 Dart Style Guide에서 prefix letter를 사용하지 않도록 권장하고 있다 - good: defalultTimeout - bad: kDefaultTimeout 예전과 달리 compile 단계에서 많은 부분이 걸려지기 때문이라고.. (변수가 타입, 범위, 가변성 등 많은 내용을 함축) 기존에 학습할 때 상수를 구분하는 용도로 k를 사용했던 걸로 기억하는데 상수를 불러오는 용도(자동완성 기능 활용)로 활용하는 것은 나쁘지 않은 것 같다

무기/다트 2021.04.27