반응형
반응형
Consumer Class provider 패키지의 일부 provider와 함께 특정 데이터의 변경 사항을 수신하고 위젯 트리의 일부를 다시 빌드하는 데 사용 Provider.of를 명시적으로 호출하지 않고도 제공자의 값을 확인하고 사용할 수 있는 위젯 전체를 빌드하지 않고 제공된 데이터에 따라 필요한 위젯만 선택적으로 리빌드하여 프로세스를 최적화 일반적으로 Consumer 위젯은 데이터의 변경 사항을 수신할 위젯트리 내에 하위 위젯으로 배치 제공된 데이터에 의존하는 위젯 하위 트리를 정의하는 빌더 함수 필요 Consumer( builder: (context, value, child) { // provider의 값에 따라 달라지는 위젯 하위 트리 // 값이 변경될 때 리빌드된 위젯 반환 }, ) 구문 플..
HttpClient 란? HTTP 서버와 통신하기 위한 HTTP 클라이언트 HTTP 요청을 HTTP 서버에 보내고 응답을 받음 동일한 서버에 대한 여러 요청 간에 세션 쿠키 및 기타 쿠키를 포함한 상태 유지 HttpClient는 낮은 수준의 HTTP 기능을 제공하기 때문에 개발자 친화적인 API인 http 패키지를 권장 구문 getUrl / postUrl import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; // HttpClient 인스턴스 생성 var client = HttpClient(); try { // API 설정 HttpClientRequest request = await client.getUrl('url..
dio Dart/Flutter용 HTTP 클라이언트 패키지 헤더 설정, 인터셉터, 파일 업로드 및 다운로드, 쿠키 관리 등 지원 비동기 작업을 위해 async/await 문법과 함께 사용 가능 간단하고 직관적인 API 제공, 손쉽게 HTTP 요청, 생성, 응답 처리 할 수 있도록 함 구문 import 'package:dio/dio.dart'; final dio = Dio(); void getHttp() async { final response = await dio.get('https://dart.dev'); print(response); } 프로젝트 의존성 추가 터미널에서 아래의 명령어 입력 dio 패키지 설치 flutter pub add dio 프로젝트 기본 UI 설계 UI 버튼을 누르면 버튼 아래의 ..
dynamic Dart언어에서 제공하는 특별한 타입 모든 유형의 값을 나타낼 수 있는 동적 타입 컴파일러가 해당 값을 검사하지 않고 직접 실행 설명 추론할 수 있는 데이터타입은 명시적으로 정의할 필요가 없습니다. 그러나 명시된 데이터타입의 문제점은 이 변수가 항상 한가지의 데이터타입을 유지하여야 한다는 것입니다. 만약 때에 따라서 변수를 다른 데이터타입으로 할당할 경우가 생기는데, 이런 경우를 고려하여 보다 동적인 변수를 만들고 싶을 때 dynamic 키워드를 사용하여 재할당 할 수 있습니다. 쉽게 말하면, 변수에 데이터타입을 따지지 않고 값 저장이 가능하다는 이점이 있습니다. dynamic의 필요성 String message = 'hello?'; message = 1234; // error : A va..
포스팅 참고 사항 포스팅에서 진행한 환경 OS : Windows 10 IDE : Visual Studio Code Emulator : Pixel 5 API 27 (Android-x86 emulator), Windows (windows-x64) 포스팅에서의 예시 프로젝트 다운로드 포스팅에서 다루는 예시 프로젝트는 아래의 깃허브 링크에서 다운로드 받을 수 있습니다. '7_memo_CRUD_example' 폴더를 확인해주세요. https://github.com/luvris2/flutter_memo_app 할 것 이번 포스팅에서는 DB가 연동되었다는 가정하에 데이터 조회, 추가, 수정, 삭제 기능을 구현합니다. 생략한 것 MySQL 연동 및 쿼리 실행 부분은 이전 포스팅에서 진행하였으므로 생략합니다. DB에서 ..
메모 관리를 위한 MySQL 설정 MySQL - 테이블 생성 memo 테이블 생성 컬럼은 아래와 같음 특이사항 메모 추가 시간 자동 등록 : createDate의 Deafault/Expression : now() 메모 수정 시간 자동 업데이트 : updateDate의 Default/Expression : now() on update now() Default/Expression에 위와 같이 입력하면 자동으로 그림처럼 변경 됨 FK 설정 이 포스팅은 로그인된 유저에게만 메모를 작성하도록 설계되어 있음 로그인되어 있는 유저의 인덱스 번호가 필요 참고 : users 테이블의 정보는 다음과 같음 Flutter - MySQL 연동 포스팅의 내용이 매우 길어질 것 같아서 아래의 포스팅의 링크로 대처 합니다. 기본적인..