DART(10)
-
Flutter Build Runner - Filesystem Error 대응 방법
Flutter를 업데이트를 했더니, 잘되던 Build Runner에 오류가 발생했다. Build Error Error: The class 'FileSystemEvent' can't be extended, implemented, or mixed in outside of its library because it's a sealed class. 휘리릭 검색해보니 Dart 3.1부터 Sealed Class를 적용하면서 발생하는 문제라고 한다. ※ Sealed Class에 대해 자세히 알고 싶으면 Sealed Classes in Dart: Unlocking Powerful Features의 내용을 참고할 것. Error 해결 그래서 어떻게 해결했는가? Dart가 업데이트 됐으면 다른 라이브러리도 업데이트가 필요하..
2023.08.29 -
What's new in Flutter 2022
Dart enum : enhanced_enumerations Before : extension 사용 필수 enum Water { frozen, boiling } extension Members on Water { int waterToTemp(Water water) { switch (water) { case Water.frozen: return 32; break; default: return 212; break; } } String convertToString() => 'The $name water is ${waterToTemp(this)}F.'; } void main() { print(Water.frozen.convertToString()); } => The frozen water is 32F. Afte..
2022.07.06 -
Flutter Project 생성하기
사전 준비 Visual Studio Code로 개발을 하려는데 Flutter Extension 설정이 되어 있지 않다면? 🔗 Mac - Visual Studio Code에서 Flutter 설정 및 프로젝트 시작하기를 먼저 진행한다. 프로젝트명 작성 시 주의사항 🔗 Flutter Doc Project Name Rule 프로젝트를 생성하기 전에 프로젝트명의 규칙을 확인하자. 전부 소문자만 사용 (The name should be all lowercase) 분리된 단어에 언더바 사용 (with underscores to separate words) 오직 알파벳과 숫자만 사용 (Use only basic Latin letters and Arabic digits: [a-z0-9_]) 숫자로 시작하지 말 것 (th..
2022.06.25 -
Dart Async programming - Stream
Stream Stream은 비동기식 데이터 시퀀스를 제공한다. Streams provide an asynchronous sequence of data. 데이터 시퀀스는 사용자 생성 이벤트나 파일에서 읽은 데이터를 포함한다. Data sequences include user-generated events and data read from files. Stream API에서 await for 또는 listen() 을 사용해서 Stream을 처리할 수 있다. You can process a stream using either await for or listen() from the Stream API. Stream은 오류에 반응하는 방법을 제공한다. Streams provide a way to respond t..
2022.06.24 -
Dart Async programing - Future, await
Future class Null safety 비동기식 연산의 결과이다. The result of an asynchronous computation. 시작하고 바로 결과값을 반환 또는 발생시키는 동기식 연산과 달리, 비동기식 연산은 연산이 시작되고 즉시 결과값을 얻지 못한다. 비동기식 연산은 파일을 읽거나 데이터베이스를 읽거나 웹 페이지를 가져오는 등의 시간이 걸리는 외부의 어떤 프로그램을 기다려야 할 때가 있다. 비동기식 연산은 결과를 사용할 수 있을 때까지 모든 연산을 막기보다는 결국에는 결과가 완료될 Future를 즉시 반환한다. An asynchronous computation cannot provide a result immediately when it is started, unlike a syn..
2022.06.23 -
Dart의 형변환 - List, Map, Set
간단하게 List, Map, Set의 형변환을 알아보자. 사실 알아본다기 보다는 메모해두자~ List void main() { List bts = ['RM', 'Jin', 'Suga', 'J-Hope', 'Jimin', 'V', 'JK', 'RM']; print(bts); print(bts.asMap()); // List -> Map print(bts.toSet()); // List -> Set } => [RM, Jin, Suga, J-Hope, Jimin, V, JK, RM] {0: RM, 1: Jin, 2: Suga, 3: J-Hope, 4: Jimin, 5: V, 6: JK, 7: RM} {RM, Jin, Suga, J-Hope, Jimin, V, JK} Map void main() { Map bt..
2022.06.22 -
Dart의 함수를 알아보자
함수 구조 void printHello() { print('Hello'); } void : 결과값의 타입을 지정해준다. void : return 값이 없음을 의미 -> void는 삭제 가능 반환하는 값이 있는 경우 : 해당 타입으로 지정 eg. int, String, ... printHello : 함수의 이름 () : parameter 입력 { } : 함수의 기능 구현 Parameter (매개변수) Parameter 또는 Argumemt라고도 한다. Positional Parameter 입력한 순서에 따라 값이 정해지는 타입 double divideNumber(int x, int y) { return x / y; } void main() { print(divideNumber(4, 2)); // => 2 ..
2022.06.22 -
Dart - Null safety & Dart Codelab Exercise
Null safety 명시적으로 null 값을 사용하겠다고 설정하지 않는 한 변수에 null 값을 대입할 수 없는 non-nullable로 간주한다. 기본적으로 변수에 null 값이 지정되지 않도록 해주어 그로인해 발생하는 오류 방지한다. version : Dart 2.12 and Flutter 2 // Without null safety: bool isEmpty(String string) => string.length == 0; main() { isEmpty(null); } 위 코드를 Null safety가 적용되지 않은 상태에서 실행하면 .length를 호출할 때 NoSuchMethodError가 발생하게 된다. 이는 null 값을 가진 string 변수의 타입이 Null 클래스이므로 length g..
2022.06.21