◼️Flutter
[Flutter Dart] 여러 Future 처리 Future.wait, Future.any
📌 Future.wait여러 Future를 동시에 실행하고, 모두 완료될 때까지 기다린다.결과를 리스트로 반환한다.await Future.wait(비동기함수들) Future main() async { List> futures = [ Future.delayed(Duration(seconds: 1), () => "Task 1 completed"), Future.delayed(Duration(seconds: 2), () => "Task 2 completed"), Future.delayed(Duration(seconds: 3), () => "Task 3 completed"), ]; List results = await Future.wait(futures); print(results); ..
[Flutter Dart] Duration 시간 객체
📌 Duration시간을 나타내는 객체기본 제공 생성자를 통해 다양한 단위를 지정할 수 있다. (초, 밀리초, 분 ..)Duration(seconds: 5); // 5초 Duration(milliseconds: 500); // 500 밀리초 Duration(minutes: 2); // 2분객체를 출력하면 표준 형식으로 시간간격이 나타난다.0:00:050 → 시간 부분 (0시간)00 → 분 부분 (0분)05 → 초 부분 (5초)void main() { Duration duration = Duration(seconds: 5); print(duration); // 0:00:05 Duration longDuration = Duration(hours: 1, minutes: 30, seconds: 15); ..
[Flutter Dart] enum
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 enum한 변수의 값을 몇 가지 옵션으로 제한하는 기능정확히 어떤 선택지가 존재하는지 정의해둘 수 있기 때문에 유용 enum Status{ before, during, after,}void main(){ Status status = Status.before; print(status) // Status.before} 속성 자체 출력속성 리스트 출력속성 인덱스 출력enum Status { before, during, after,}void main() { Status status = Status.before; // 1. name 속성: enum 값의 이름을 문자열로 반환 print(st..
[Flutter] Children, child 의 차이점
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. #코드팩토리의플러터프로그래밍2판 #공부용
[Flutter] 기본 위젯 Center, Container, GestureDetector, SizeBox, Column, Row, ListView
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. #코드팩토리의플러터프로그래밍2판 #공부용
[Dart 3.0] 클래스 제한자 base, final, interface, sealed, mixin
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. #코드팩토리의플러터프로그래밍2판 #공부용
[Dart 3.0] switch 보호구문
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. #코드팩토리의플러터프로그래밍2판 #공부용
[Dart 3.0] switch (표현식, 패턴매칭, 엄격한 검사, 보호구문)
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 switch 표현식switch 문에서 값을 반환받을 수 있다.=> 로 조건에 맞을 때 값을 반환_ : default와 같은 의미로 사용String dayKor = '월요일';String dayEnglish = switch(dayKor){ '월요일' => 'Mon', '화요일' => 'Tues', _=>'Not Found',};📌 switch 패턴 매칭값 매칭, 리스트 매칭, 개수 매칭, 리스트 자료형 매칭, Record 타입 매칭 void(dynamic anything){ switch(anything){ case 'aaa': //값 매칭 break; case [1,..
[Dart 3.0] 레코드
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 레코드값을 묶어서 저장하는 방식 (Python의 튜플 같은 타입)📌 포지셔널 파라미터 방식의 레코드(타입, 타입, ...) 레코드변수명 = (값, 값, ...);값을 입력하는 순서대로 타입을 작성해준다.레코드 특정 순서의 레코드값을 가져오고싶다면 레코드변수명.$순서번호(String, int) person = ('민', 20);print(minjui); => ('민', 20)(String, int, bool) person = ('민', 20, true);print(person); => ('민', 20, true)print(person.$1); => 민 📌 네임드 파라미터 방식의 레코드({타입 변수명, 타입 변수명,..
[Flutter Dart] Stream
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 StreamStream에 주입되는 모든 값들을 지속적으로 받아온다.반환값을 딱 한번 받아내는 Future와는 달리 지속적으로 값을 받을 수 있다.StreamStream에 .listen을 하면 받아와진다. (스트림 구독 - 단일 구독, 브로드캐스트 구독 가능)함수에서 사용할 때,async* 키워드로 스트림함수를 정의하고, yield 키워드로 스트림 값을 전달StreamController로 스트림을 수동으로 생성하고 이벤트를 추가할 수 있다. 단일 값 제공Stream singleValueStream() async* { yield 42;}void main() async { singleValueStream().listen..
[Flutter Dart] async 와 await
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다.📌 async, awaitawait 를 쓴 함수에 async를 쓴다.await : 비동기 작업이 완료될 때까지 기다린다.async : await을 사용한 비동기 함수를 정의하는 키워드. 이 함수의 반환타입은 항상 Future이다.사용방식Future 함수명() async{ await 비동기작업; return 반환;}* try-catch로 async/await 코드에서 발생한 에러를 처리한다. 사용예Future fetchData() async { await Future.delayed(Duration(seconds: 2)); // 2초 대기 return "Hello, async/await!";}void main..
[Flutter Dart] 비동기 프로그래밍 - Future
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 Future비동기 작업을 처리할 때 사용하는 객체시간이 걸리는 비동기 작업 예: HTTP 요청, 파일 읽기/쓰기, 데이터베이스 쿼리타입선언형Future 1. Future(비동기작업할함수):Future 생성자를 사용해 비동기 작업 직접 정의 2. Future변수.then(결과처리함수): 비동기 작업 종료 후 완료된 결과 처리Future future = Future(() {return 'Hello'});future.then((data){print(data);}); 3. Future.delayed(Duration객체, 비동기작업함수): 일정 시간 지연후 작업을 수행Future fetchData() { return Fut..
[Flutter Dart] 캐스케이드 연산자 '..' 키워드
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 ..동일한 객체에 대해 여러 메서드나 속성을 연달아 호출할 때 사용하는 유용한 문법매번 객체의 이름을 사용하지 않아도 되서 편리하다.기본구조object ..method() ..method() ..property = 10주의사항- .. 이후 동일한 객체를 반환한다.- .. 새로운 객체를 반환하는 경우가 있는 경우 동일 객체에 대해 캐스캐이드가 불가능하다. 새로운 객체에대해 캐스캐이드를 하려면 스페이스를 더 들어가서 호출한다. ex) object ..property = object() ..property = 10 //리스트 초기화void main() { List numbers = [] ..add(..
[Flutter Dart] static
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 static클래스의 메서드와 변수를 클래스 자체에 귀속시킨다.여러개의 인스턴스를 생성 하더라도 인스턴스끼리 하나만 존재하게된다.인스턴스끼리 공유해야 하는 정보에 지정하면된다.class Counter{ static int i = 0; Counter(){ print(i++); }}void main(){ Counter count1 = Counter(); //0 Counter count2 = Counter(); //1} #코드팩토리의플러터프로그래밍2판 #공부용
![[Flutter Dart] 제네릭 타입 - 객체지향의 꽃 <T>](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FqMaXB%2FbtsL04bBb7f%2FAAAAAAAAAAAAAAAAAAAAADKyt7BxUO3NkE9t1N8ZRwMUb4AjDATidkw40Y_Zol_a%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DuWEnDU5LF9Cuz9NZMoh7Xxi4vzg%253D)
[Flutter Dart] 제네릭 타입 - 객체지향의 꽃 <T>
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 제네릭특정 변수의 타입을 하나로 제한하고 싶지 않을 때 자주 사용한다.클래스, 메서드, 함수, 그리고 Mixin 에서 사용가능 하다.동일 제네릭문자를 가지고 있는 자리에 실행할 때 타입이 지정된다.사용형태클래스이름메서드이름함수이름minxin클래스이름흔히 쓰는 제네릭문자들T: 변수 타입 표현할 때 E: 리스트 내부 요소들의 타입을 표현할 때K: 키를 표현할 때V: 값을 표현할 때 Case 1. 클래스에서 제네릭 사용class Box { T value; Box(this.value); void display() { print("Value: $value"); }}void main() { Box intBox = ..
[Flutter Dart] 클래스 - 추상 클래스 'abstract' 키워드
코드팩토리의 플러터 프로그래밍 2판 책을 참고하여 공부용으로 작성한 게시글입니다. 📌 abstract class인스턴스화 할 필요없이 상속과 인터페이스로만 사용할 때 사용.- 인스턴스화가 불가능하다.- 추상 메서드를 정의할 수 있다. - 함수 반환타입, 이름, 매개변수만 정의하고 함수의 바디 선언을 자식클래스에서 정의하도록 강제abstract class Person{ final String name; //추상 메서드 (상속으로 사용했을 때 반드시 정의해야함) //구현강제 void sayName(); //공통기능정의 int count(){ print(name.length); }}class Person1 extends Person{ /..