구글에서 만들어 오픈소스로 공개한 SDK 한번의 구현으로 안드로이드와 IOS 양쪽 진영에 배포 가능다트는 JIT(Just-In-Time) 컴파일과 AOT(Ahead-Of-Time) 컴파일을 모두 지원JIT : 빠른 개발 속도와 반복을 가능하게해 생산성을 높여줌 AOT
객체지향 언어 , 단일 상속 지원모든 것이 객체 ( 숫자도 기본형이 아닌 객체 )dynamic & var 의 차이 dynamic : 특정 형식의 값 대입 후 다른 형식 값 넣어도 문제 xvar : 최초 대입하는 값의 형식을 사용 , 이 후에 다른 형식 대입 x💡
import 'package:flutter/material.dart';\-> material 라이브러리를 임포트 했는데 이는 구글의 material 디자인 시스템 기본 위젯을 제공한다flutter/cupertino.dart 라는 IOS 스타일 컴포넌트도 존재플러터 앱도
iOS의 노치 디자인이나 안드로이드의 상태바 하단 등 앱이 표시되는 영역으로 인해 발생하는 문제를 해결\-> 이를 해결하기 위한 방법 SafeArea 사용 center 위젯은 자식 위젯을 중앙에 표시함padding 위젯은 자식 위젯 주위에 padding을 표시\-> l
자주 사용되는 머티리얼 디자인 아이콘 🙋♂️Image 위젯은 이미지 소스(로컬 , 인터넷 등) 다양한 생성자 제공인터넷: Image.network("URL")로컬 : pubspec.yaml 파일에 이미지의 위치 선언 후 Image.asset 생성자 이용 \`\->
material 디자인 전용 기능과 스타일 옵션 제공앱의 설정과 기능 제공 페이지 이동에 필요한 애니메이션이나 기타 material 위젯 컬렉션에 포함된 위젯을 자유롭게 사용할 수 있다.앱 구조를 만드는 일을 돕는다 MaterialApp이 앱의 배관, 전기라면 Scaf
위젯들을 감싸 사용자와 상호작용을 할 수 있게 해주는 위젯상호작용을 감지하면 지정된 콜백 실행\--> 위처럼 제스처가 발생할 때 실행할 콜백과 child에 들어갈 위젯을 전달해야 함이 중에서, 몇몇 콜백은 세부정보를 인수로 전달함 ex) onTopUp은 globalPo
내비게이션 상단에 표시되는 위젯 사용자 계정 정보를 표시하는데 사용하는 위젯 accountName & accountEmail 속성은 필수로 포함시켜 작성해야 한다현재 사용자 계정 이미지 , 곧 프로필 사진과 같은 의미
"현재 주어진 context에서 위로 올라가면서 가장 가까운 Scaffold를 찾아서 반환하라."\-> 다음 코드에서 문제점Scaffold 보다 아래에 있는 위젯에서부터 올라가면서 탐색하는것이 아니기 때문에, 존재하지 않는 Scaffold 를 찾지 못하여 오류가 발생하
1. Route > 스마트폰 상에서 보이는 하나의 페이지라고 이해 2. Navigator > 새로운 화면으로 이동하고 다시 돌아오는 기능 push : navigator의 메소드로 화면에 화면을 쌓는 것과 같은 의미 > push 메소드는 context 와 ro
변수 앞에 $(달러 사인)를 사용 , 2단계 이상 depth 변수 사용시는 $를 포함하는 전체 변수를 {}로 감싸준다.Collection : 데이터들을 모아서 가지고 있는 자료구조 ( ex: List , array..)Generic : Collection 이 가지고 있
이전 스낵바 구현 코드Scaffold.of(context)methodex: Scaffold.of(context).showSnackBar(SnackBar(...))\--> 문제점 페이지 이동시 원래의 스낵바는 새롭게 생성된 BuildContext에 의해 다시 생성될 수
RaisedButton -> ElevatedButtonFlatButton -> TextButtonOutlineButton -> OUtlinedButtonTextButton은 toolbar, diaglog 혹은 다른 content 사이에 사용을 하는데, 이때 패딩을 줘서
\- 동기 : 모든 동작을 차례대로 완료 후 수행하는 것\- 비동기 : 어떤 동작이 완료가 되지 않아도 다음 동작을 수행하는 것비동기 처리를 위해 존재 Dart의 Future는 지금은 없지만 미래에 요청한 데이터 혹은 에러가 담길 그릇< 예시 >Future<
yaml 파일에 package를 넣어주자 버전을 확인하고 넣어준다.\-> 테이블을 만드는 부분은 한번만 수행되어야 한다 , 그래서 if(\_db != null) return \_db; 즉 이미 \_db에 값이 있으면 (이미 한번 실행 되었으면 ) 값이 담겨 있는 \_
코드 실행의 결과로 인해 결정되는 상수 : final코드 실행 이전부터 결정되어야 하는 상수 const \-> DateTime.now() 과 같이 실행의 결과로 나오는 값 사용 불가둘 다 "상수"이다.final String a = "final";const String
프로세스내에서 실행되는 흐름의 단위Dart는 싱글 스레드로 운영되는 언어이다.\-> 한번에 오직 하나의 작업만 수행한다는 의미플러터 앱을 실행시키는 순간 isolate라는 새로운 thread 프로세스가 생성, 즉시 작업시작 thread가 생성되는 순간 dart는 3가지
json 파일을 파일 입출력을 통해 가져오게 되면 json 데이터는 텍스트 데이터이기 때문에 String 형으로 들어오게 된다. Dart 에서 json을 다루기 위해 Map<String,dynamic> 이라는 자료형을 사용한다json 데이터는 키와 값으로 이루어져
Stack이라는 (위젯을 겹쳐, 쌓는 방식의)위젯에서 텍스트의 위치를 조절하고 싶을 때 Positioned라는 위젯을 쓴다 --> Stack 내부에서만 작동 위젯 자체에 애니메이션 속성을 부여하고 싶을 때 사용한다duration 속성은 필수적으로 작성하여야 한다cu
한 번에 원하는 데이터를 받고 끝나는 것이 아니라 지속적으로 들어오는 데이터를 기다렸다가 받아야할 때 사용하는 방법즉시 사용가능 : int기다려야 사용가능 : Future<int>즉시 사용가능 : List<int>기다려야 사용가능 : Stream<int
참고 사이트 https://dev-yakuza.posstree.com/ko/flutter/firebase/core/ firebase_core : 해당 패키지는 필수적으로 불러와야 함.cloud_firestore : 데이터를 저장하고 다루는 패키지 ( 회원의