Google에서 개발하고 지원하는 오픈 소스 프로그래밍 언어입니다.클래스 기반: Dart는 클래스 기반의 객체지향 프로그래밍 언어입니다. 이는 객체의 인스턴스를 만들고, 클래스를 통해 객체를 정의하고 조작할 수 있다는 것을 의미합니다.강타입: Dart는 강타입 언어로,
var: var 키워드는 변수의 타입을 명시하지 않을 때 사용합니다. 컴파일러가 할당된 값에 따라 타입을 추론합니다. var로 선언된 변수는 다른 값으로 변경이 가능합니다. 예를 들어:final: final 키워드는 한 번 할당되면 값이 변경되지 않는 변수를 선언할 때
Provider 패키지의 일부로, 상태 관리를 담당하는 객체를 제공하고 해당 상태가 변경될 때마다 위젯 트리에 이를 알리는 역할을 합니다.ChangeNotifier는 Flutter의 내장 클래스로, 리스너에게 상태 변화를 알릴 수 있는 기능을 가지고 있습니다. Chan
이들 키워드는 비동기 프로그래밍을 위해 사용되며, 이를 이용해 앱이 무거운 작업을 수행하면서도 UI를 부드럽게 유지할 수 있게 돕습니다.'async\*': 이 키워드는 비동기 제너레이터 메서드를 선언하는 데 사용됩니다. 비동기 제너레이터는 시간이 오래 걸리는 연산이 있
Dart 언어에서 클래스를 구성하는 두 가지 다른 방법입니다. 이 두 키워드의 주요 차이점은 상속과 믹스인(mixin)의 차이에 기인합니다.extends: Dart에서 extends 키워드는 한 클래스가 다른 클래스로부터 상속을 받을 때 사용됩니다. Dart에서 클래스
add(): 리스트의 끝에 요소를 추가합니다.addAll(): 리스트에 여러 개의 요소를 추가합니다.contains(): 주어진 객체가 리스트에 포함되어 있는지 확인합니다.remove(): 리스트에서 첫 번째 인스턴스를 제거합니다.removeAt(): 지정된 인덱스에서
Provider.of: 이 메서드는 위젯 트리의 주어진 컨텍스트에서 가장 가까운 Provider를 찾아 값을 얻습니다. 선택적으로 리스너를 건너뛸 수 있으며 (listen: false), 이 경우 위젯이 데이터 변경에 따라 다시 빌드되지 않습니다.notifyListen
일반적으로, Dart는 모든 변수가 초기화되어야 합니다. 그래야만 null safety를 보장할 수 있습니다. 그러나 때로는 변수를 선언하고 초기화하는 시점을 나누고 싶을 때가 있습니다. 이 때 late 키워드를 사용하게 됩니다.아래는 late 키워드 사용 예시입니다:
ChangeNotifier의 변화를 감지하고, 그에 따라 자신의 상태를 업데이트하는 역할을 합니다.위의 코드에서 Counter 객체의 상태가 변하면 Translations 객체의 update 메서드가 호출됩니다.Counter의 현재 카운트 값을 \_value에 저장합니
Flutter의 Page Rendering Process (Frame Rendering) 아래와 같습니다.Create an element (BuildContext)initStatedidChangeDependenciesBuild일단 페이지가 완성되고 나면 다른 것을 그리
'rethrow'는 현재의 예외를 다시 던지는 키워드입니다. 예외 처리 블록에서 예외를 잡아내지만, 그 예외를 다른 곳에서도 처리해야 할 경우에 사용됩니다. 위의 예제에서 fail일때 throw 에러를 내보낸다고 가정해봅시다. searchTerm가 fail일 때 th
리스너를 통해 변경된 상태를 알릴 수 있는 기능을 제공합니다. 아래 예제의 appProv.addListener(appListener) 코드에서 addListener는 appProv 객체의 상태가 변화될 때마다 appListener 함수를 실행하라는 의미입니다. 즉,
주로 immutable 객체(불변 객체)를 변경하는 데에 사용됩니다. Dart에서 final 키워드를 사용하면 그 필드는 불변하게 됩니다. 따라서, 일단 생성되고 나면 그 필드의 값을 변경할 수 없습니다. 그렇다면 필드의 값을 변경하려면 어떻게 해야 할까요? 이 때
코드 1 TextEditingController는 클래스의 최상단에 final 키워드로 선언되어 있습니다. final로 선언하고 있어서, initState() 메서드에서 또 다시 초기화하려고 하면 오류가 발생합니다. newTodoController initState()
ProxyProvider는 여러 개의 다른 Provider들 사이의 의존성을 관리하는데 사용됩니다. 하지만 복잡하게 느껴집니다.StateNotifier는 단일 상태를 관리하는 것에 초점을 맞추고 있으며, 이로 인해, 상태를 업데이트하는 방법이 단순하고 직관적이어서, 코
addListener 메소드에서 사용되는 옵셔널 매개변수입니다. 이는 일반적으로 리스너가 추가되는 순간에 리스너가 즉시 실행될지 여부를 결정하는데 사용됩니다.fireImmediately: true리스너는 등록과 동시에 즉시 활성화되어 현재 상태에 따른 처리를 수행합니다
on은 Dart 언어에서 사용되는 키워드로, 'extension'이 다루는 대상 타입을 지정하는데 사용됩니다. 'extension'은 기존 클래스에 새로운 기능을 추가할 수 있게 해주는 Dart의 기능입니다. 위의 코드는 DateTime 클래스에 새로운 메소드들을 추
GetxController는 일반적으로 화면 (페이지 또는 뷰)에 관련된 로직을 담당합니다. 각 컨트롤러는 해당 페이지가 메모리에서 제거될 때 함께 제거됩니다. 이로 인해 메모리 누수를 방지할 수 있습니다.여기서 .obs는 GetX에게 이 변수를 "관찰"하도록 지시하는
List<AddressBookModel>과 같은 복잡한 객체가 존재 할 때, JSON 포맷으로 직렬화하여 문자열로 변환한 후 저장하는 방법json 패키지의 jsonEncode 함수를 사용하여 AddressBookModel 객체의 리스트를 JSON 문자열로 직렬화할
Builder 로직을 ‘AddressBookBuilder()’로 분리firebase와 연동 되어있는 future를 변경 ⇒ StorageManager.readData('userAddressBook')를 보게 함가져온 ‘snapshot’의 데이터를 보여준다는 것은 변하지
저장 코드api.addAddressBookItem 메서드를 통해서 특정 collection에 저장return값을 then메서드를 통해서 addressBookList에 끼워 넣고 있다.future주소록이 저장 되어있는 firebase collection에서 데이터를 가져
Dart의 타입 체크는 기본적으로 컴파일 타임에 이루어집니다. 이는 Dart가 정적 타입 언어이기 때문입니다. 그러나 dynamic 타입은 이를 우회하게 해주며, 이에 따른 잠재적인 문제는 런타임에 검출됩니다.Map<String, dynamic> 타입에서는 Str
'Getx'는 Flutter 상태 관리를 도와주는 도구입니다. 여기에는 몇 가지 핵심 개념이 포함되는데, 그 중 하나가 '.obs'입니다.'.obs'는 Observable 변수를 선언하는 데 사용됩니다. Observable 변수란 상태 변경이 감지되면 자동으로 UI를
터미널에 에러가 발생하지 않습니다.비정상적인 상태관리가 이루어 집니다.예를 들어서, 컨테이너를 삭제했습니다. 그러나 상태관리가 이루어지지 않아서 컨터네이너가 그대로 남아있습니다.Obx(() => controller.refreshShowList()); 변경 => 상태관리
InkWell클래스를 extends해서 InkWellEx.clear를 만들것 입니다. 이 위젯은 물방울 효과가 없는 클릭 이벤트를 실행합니다.InkWellEx.clear에서 'clear'는 명명된 생성자의 이름이며, 다음 괄호 안에 위치한 {Key? key, onTap
dart 언어에서 static과 get은 클래스 내에서 사용되는 키워드들입니다. 그러나 이 두 키워드는 완전히 다른 목적과 기능을 가지고 있습니다.staticstatic 키워드는 해당 멤버 변수나 메서드가 인스턴스에 속하지 않고 클래스 자체에 속한다는 것을 나타냅니다.
특정 상황에서만, 검정색 배경을 넣어서 공유할때가 필요합니다.백그라운드가 없는 QR백그라운드가 있는 QR위젯트리상 QR위젯이 검정색 백그라운드를 가질필요가 없다.그러나 공유 할 때는 검정색 백그라운드가 필요하다.이 함수는 QR 코드 이미지를 캡처하고 저장하는 주요 기능
'DropDownModel' 수 만큼 위젯이 생성 될 것,드롭 다운 버튼이 여러개 있을 때, 그 중 하나만 열려있는 상태가 될 것열리고 닫히는 애니메이션이 있을 것선택 값이 색으로 표현 될 것'FormState' 요구하는 다른 위젯에 포함 될 수 있을 것필수가 아닌 값
파이어 베이스에서 Build with Gemini 선택위의 스크린샷에서 'Firebase Blaze' 요금제 계정 등록(위의 스크린샷은 이미 등록을 마쳐서 '보기'임)파이어 베이스 등록을 마치고 https://console.cloud.google.com/ 에서
공식 문서 확인하기함수 호출 기능은 모델이 API 및 함수와 같은 외부 도구를 사용하여 최종 응답을 생성할 수 있도록 지원합니다.유저 질의: "2024년 10월 17일 보스턴 날씨는 어땠나요?"AI 동작: 유저의 질문을 이해하고 Mock API 호출.API 결과 반환: