뒤로
맨듀
맨듀 ·

flutter로 클론코딩 시작 전 Dart 이해하기

개발자가 되고 말거야!를 외쳤지만 계속 붕 떠다니고만 있습니다. 이것저것 하고는 있는데 말만 하고 있는 것 같네요.
창업 부트캠프 멤버분 중 한분이 앱개발 스터디원을 모집하신다고 하셔서 아~무것도 할 줄 모르는 제가 마음만 들고 참여했습니다.

클론코딩을 하기로 했고 먼저 Dart에 대해 이해하는 것이 좋다고 하셔서 강의를 듣고 있어요.

Dart 공부부터 클론 코딩하는 과정까지 지켜봐주세요!

강의 : https://nomadcoders.co/dart-for-beginners (노마드코더 Dart 시작하기)

# 1.The Var Keyword
1) var 키워드 사용

함수나 메소드 내부에 지역변수 선언 할 때

​2) 명시적 타입지정

class에서 변수나 property를 선언 할 때

​

함수나 메소드 안에서 지역변수를 사용한다면 var를 사용. 컴파일러가 타입을 인지하고 있기 때문에 일일이 타입을 지정하지 않아도 된다.

​

변수 수정시 타입을 지키세요! var 사용이 가장 권장된다.

image.png

#1.2 Dynamic Type
여러가지 타입을 가질 수 있는 변수에 사용하는 키워드.

타입을 지정하면 dynamic 안에서는 타입을 알 수 있지만 밖에서는 알 수 없음. 지정한대로.

항상 써야 할 필요는 없다. 필요한 때에만 사용.

image.png

#1.3 Nullable Variables

Null safety는 개발자가 null값을 참조할 수 없도록 하는 것. null 값을 참조하면 런타임 에러가 뜸.

런타임 에러는 사용자가 앱을 사용하는 중에 에러가 뜬 다는 것. 컴파일 전에 에러를 찾는 것이 중요한데 그게 바로 null safety가 한다.

​

null safety가 없는 코드. string length가 0인지 아닌지 판별하는 함수.

image.png

string을 보내야하는 곳에 null을 보냈기 때문에 런타임 에러가 난다. 사용자의 기기에서!

null을 삭제하는 것은 좋지 않다. null 상태도 가질 수 있어야함. 문제는 참조할 때 발생.

​

dart에서는 어떤 변수가 null이 될 수 있음을 정확히 표시해야 한다.

​

예시) 이렇게 하면 안됨. nico는 오직 String이어야 함.

image.png

이 경우에 nico가 null,String 모두 되게 하려면

image.png

물음표를 붙여주면된다. string ?(or) null의 의미가 된다. 모든 변수는 non-nullable.

​

#1.4 Final Variables

변수 선언하면 수정 가능한 변수가 만들어지는데 변경할 수 없게 하려면 final을 선언.

javascript나 typescripte의 const와 같다.

image.png

#1.5 Late Variables

late는 final이나 var 앞에 붙여줄 수 있는 수식어다. 초기 데이터 없이 변수를 선언 할 수 있게 해준다.

필요한 데이터가 없을 수 있으니 데이터 없이 변수를 생성하고 나중에(late) 받는 것.

image.png

final변수이니 변수를 또 만들 수 없다.

image.png

이렇게 출력하려고 하면 할당 받지 않았기 때문에 dart가 막아준다.

flutter에서 api와 작업할 때 많이 보게 될 것. late 변수를 만들고 api 요청을 보낸 후 api에서 값을 보내주면 그걸 late 변수에 넣어준다.

​

#1.6 Constant Variables

javascript나 typescript와는 다르다. javascript, typescript의 const는 final과 비슷하다.

image.png

final과 똑같이 동작한다. 수정 안됨.

! 중요한 건 const는 compile-time에 알고 있는 값이어야 한다는 것.

예를 들어 api 키가 있다면, const에 넣어주면 절대 안바뀔거고 컴파일이 될 때 그 값을 알고 있을거야.

API 요청을 한다고 가정해보면 / fetchApi , 컴파일러는 api의 변수값 모른다.

> 왜냐면 api에서 불러와야 하니까 >> 그건 final !

앱스토어에 앱을 올리기 전에 알고 있는 값이라는 것. 값을 알고 있다면 const ,

어떤 값인지 모르고 그 값이 api로부터 오거나 사용자가 입력해야하는 거라면 final이나 var이 되어야 한다.

​

#1.7 Recap

복습하기! 복습 영상 보며 위 내용 추가 및 정리하기!

주니어 메이커들 그룹의 글
3

댓글

로그인 후 댓글을 남길 수 있습니다.

이상선
이상선

개발 이야기 같이 하고 싶으면 연락 주세요. 과외도 해 드려요 https://open.kakao.com/o/sM7NofEf