TIL 8/9 Flutter공부

송은우·2022년 8월 9일
0

TIL

목록 보기
16/61

int number1 = 1;
number1 is String; //false
number1 is int; //true

number1 is! int; 로 계산함

List

indexOf, add remove length 같은 것들을 List가 다 지원함

Map

Map
Map<String,String>dictionary={
'harry potter':'해리포터'
};
print(dictionary);
print(dictionary.entries);
같은 방식으로 dictionary접근이 가능함.
얘는 addAll({'spiderman':'스파이더맨'})가능
dictionary['harry potter']로 접근 가능함
remove도 가능
keys values entries 같은것들 가능

Set

final Set<String> names={
'Code Factory',
'Flutter',
};
print(names.contains('Flutter'));
같은 것들 가능

여기는 ===이 아니라 ==이다는거 생각해야됨
여기도 ==은 object같은 경우 포인터를 비교함

for in 문이 value만 쭉 도는 for문임

enum 가능

main 밖에
addNumbers(){
print("addNumbers");
}
같은 방식으로 적으면 그냥 함수가 된다
js 의 object형식을 조금 더 좋게 바꾼 느낌
어차피 js의 function도 object다

여러 프로젝트를 중심으로 강의가 진행될 것
프로젝트 중심으로 앱을 만들어보면서 필요한 내용을 익히는 형태로 구성된 강의를 선호한다. 그 편이 입문자들이 몰입하기 쉬운 형태의 강의이기도 하고, 주구 장창 이론만 설명하는 강의나 부분적인 기능 구현만 하는 형태의 강의로는 개발에 대한 감을 잡기 어렵기 때문이다.
Provider를 다룰 것
Flutter를 어느정도 공부하게되면 State management를 다루어야 하는데, 여러 상태관리 패키지 중에 가장 기본이 된다고 생각하는 패키지가 Provider이다. 입문자라면 일단 Provider 부터 익히고, 추후 필요에 따라 GetX를 공부하거나 Bloc, Riverpod 등으로 넘어가면 된다고 생각한다. 그래서 아쉽지만 다른 상태관리를 가르치는 강의들은 추천목록에서 제거 되었다.
핵심 Keyword 들이 정리가 잘 되어 있을 것
강의의 목차만 보더라도, 어떤 내용이 중요하고, 해당 섹션에서 어떤 내용을 배워야하는지 파악이 가능하다. 전부 영어 강의이기 때문에 영어를 원어민 수준으로 하지 않는 이상, 100% 이해할 수는 없는 노릇. 어떤 내용이 중요한지 목차에서 부터 파악이 되어야, 강의를 들을때 해당 키워드를 집중해서 들을 수도 있고, 구글링을 할때도 알아야 검색하기가 쉽다.

이 부분이 가장 flutter을 볼 때의 기준이 되어야 한다
addNumbers(int x,[int y=20,int z=30]){
}
같은 형태로 기본값 설정

addNumbers({required int x, required int y, required int z}){}
같은 방식도 가능
호출 시에는
addNumbers(x:10,y:20,z:30); 같은 방식으로 named parameter 설ㅈ어
arrow 함수로도 쓸 수 있다
int addNumebrs(int x,int y)=>x+y
같은거 가능
typedef 함수의 body가 없는 느낌
//signature 라고 함 typedef를
typedef Operation = double Function(int x,int y, int z);

int add(int x,int y, int z)=>x+y+1;
void main(){
Operation operation=add;
}
같은 느낌으로 타이핑이 된다면 쉽게 넣을 수 있음 di 에 쓸 수 있는 느낌?

flutter는 SDK 로 컴파일 한다. 위젯 라이브러리 같은 프레임워크 이기도 하다.
위젯 + utility package같은 것들이 있음
dart는 다양한 곳에 다 쓸수 있음. webapp까지 가능함

UI as code
flutter는 모든 부분이 widget이다
widget tree를 알아야 flutter를 이해하기 편하다

전부 다 code로 작성하기에 drag, drop이 아님. visual editor 없음

futter는 버튼같은 것들은 모든 픽셀을 다루기에 widget.button같은 것을 참조하는 것이 아님
엔진이 있어서 모든 픽셀을 컨트롤 함

버전은 자주 바뀌지만, 그렇게 큰 문제는 아님

폴더들 설명
.idea 폴더 : androidstudio 설정에 대한 부분
.vscode : vscode 설정에 대한 부분
android 폴더 : 플러터 코드가 android 코드가 만들어지기 위한 실제 데이터들을 가지고 있는 부분
build 폴더 : android, java폴더 모든게 fluttersdk로 만들어진 실제 결과물
ios : android와 동일함
lib폴더 : dart파일들이 들어가는 부분 우리가 실제로 수정 하는 부분
test 폴더 : 자동화 테스트 넣는 부분

.metadata : 플러터는 빌드를 위한 메타데이터
.packages 와 동일
.flutter_complete_guide.iml : flutter sdk 와 internal dependencies와 같은 부분
pubspec.yaml : dependency 관리. package.json과 유사함

profile
학생의 마음가짐으로 최선을 다하자

0개의 댓글