Flutter 기초

똔또니·2023년 12월 3일

Flutter

목록 보기
3/4

Dart는 객체 지향 프로그램

변수와 타입

const : compile 시점에 상수 처리 될 경우에 활용
final : 프로그램의 진행 중에 상수 처리 될 경우에 활용

가변형

var value = 1;
value = 'is Error?' --> type이 바뀌면 에러
var = 2; --> 재할당 ok

dynamic dynamicValue - 100;
dynamicValue = 'Hello'; --> type이 바뀌어도 재할당 가능

클래스

  • 필드
  • 메서드
  • 생성자 :클래스의 인스턴스를 생성하는데 사용되는 코드
    - Default constructors: 기본 생성자로, 생성자를 선언하지 않을 경우 제공되는 생성자
    • Named constructors: 개발자가 필요에 의해 생성한 생성자로, 클래스에 대한 여러 생성자를 구현하거나, 추가적인 클래스의 명확성을 제공
    • Redirecting onstructors : 목적이 동일한 생성자로 전달하기 위한 생성자로, 생성자의 본문은 비어있지만, 전달 된 생성자에 대해 초기값 등을 구현할 때 활용
    • Const constructors : 상수 생성자로, 클래스가 불변의 객체를 생성하는 경우 활용
    • Factory constructors : 매번 새로운 인스턴스를 만들지 않는 생성자를 활용할 때 사용. 이미 존재하는 인스턴스를 반환하거나 단순한 초기값을 부여가 아닌 연산이 필요한 객체 생성 시 활용

함수

리턴타입 함수명 (매개변수) {
함수 내 동작할 코드
}

비동기 프로그래밍

동기성 : 모든 코드가 순차적으로 진행되는 형태
비동기성 : 코드가 동시다발적으로 실행이 되어서 순차적으로 보장을 할 수 없는 형태

async / await / Future : 1회만 응답을 돌려받는 경우
async* / yield / Stream : 지속적으로 응답을 돌려받는 경우

Future<void> todo (int second) async {
await Future.delayed(Duration(seconds : second));
print('TODO DONE in $seocond seconds');

todo(3);
todo(1);
todo(5);

비동기성 프로그래밍은 위의 todo 함수가 동시로 실행되기 때문에 1,3,5대로 출력됨.

Stream<int> todo() async* {
int counter = 0;

while (counter <=10) {
	counter++;
    await Future.delayed(Duration(seconds: 1));
    print('TODO is Running $counter');
    yield counter;
    }
    
    print('TODO is Done');
}
todo().listen((event) {});

profile
우당탕탕

0개의 댓글