WebView & WebViewController
프로그래밍/플러터 2024. 2. 24. 14:20WebView & WebViewController

개념 정리 콜백 함수 - 일정 작업이 완료되면 실행되는 함수 : 특정 조건을 만족할 때만 실행되기에 Callback - 화면 터치 , 로딩 완료 등 특정 조건을 만족할 때 실행된다. - ex) onPageFinshed , onWebViewCreated 등 on이 붙은 함수에서 자주 사용됨 웹뷰 위젯 - 앱에서 웹 브라우저 기능을 구현해줌 - 네이티브 컴포넌트에 비해서 느리고 부자연스럽지만 웹 페이지를 그대로 앱에서 사용할 수 있다는 장점이 있다. - setJavascriptMode : 웹뷰에서 자바스크립트 실행 여부 결정 - loadRequest : 설정한 url로 이동 플러그인 설치 https://pub.dev/packages/webview_flutter webview_flutter | Flutter ..

BuildContext란?
프로그래밍/플러터 2024. 2. 23. 21:31BuildContext란?

서론 플러터 코드를 보면 늘 BuildContext를 사용하는데 그냥 있거니 하고 지나치다가 좀 제대로 정리하려고 한다. BuildContext란? BuildContext 정의 1) A handle to the location of a widget in the widget tree widget tree에서 현재 widget의 위치를 알 수 있는 정보 2)Each widget has its own BuildContext, which becomes the parent of the widget returned by the StatelessWidget.build or State.build function. 각각의 위젯은 자기 자신만의 BuildContext를 가지고 있다 이 BuildContext는 statel..

스플래시 스크린 앱 작성
프로그래밍/플러터 2024. 2. 21. 18:41스플래시 스크린 앱 작성

Stateless Widget & Stateful Widget - 플러터는 선언적으로 UI를 구성한다. : 위젯 내의 build 함수 내에서 상태를 반영하여 UI를 빌드 - f ( build ) : 앱의 상태 state를 반영하기 위해 사용자 인터페이스를 빌드 - state : ui를 새로 그리기 위해 필요한 데이터 State State 즉 상태라는 것은 실행 중인 앱의 메모리에 존재하는 모든 것 혹은 UI 빌드하기 위한 데이터 해당 State의 변화를 감지하여 새로 화면을 다시 그릴지 아니면 State상태 변화에 관계 없는 위젯을 만들지 플러터 프로젝트 설계를 할 때 생각해봐야할 문제이다 . 1) Statefull - 아무래도 사용자와 상호작용할 필요가 있음 - 사용자 입력, 데이터 입출력, 블루투스 ..

플러터의 기본 위젯들
프로그래밍/플러터 2024. 2. 20. 00:23플러터의 기본 위젯들

위젯이란 Everything is a Widget 모든 것은 위젯이다. - 위젯이란 현재 주어진 상태를 기반으로 어떤 UI를 구현할지 정의 : 플러터 화면의 모든 것들은 위젯이라고 봐도 무방 - 위젯의 상태가 변경이 되면 변경 상태에 맞게 다시 UI를 그린다 : 변경 없는 위젯은 그대로 두고 변경이 있는 위젯들만 새로 그림 - 위젯은 다른 위젯을 포함할 수 있으며 부모와 자식 관계로 구성된다 : 트리 구조 child를 가지는 위젯 - 자식을 하나만 가지는 위젯 1) Container - 자식을 담는 컨테이너 역할 - 배경 , 너비 , 높이 , 테두리 등 지정 가능 2) GesturDetector - 위젯에 제스처 (터치) 기능을 제공 - 탭 , 드래그 , 더블 클릭 같은 기능 제공 - 터치 시 함수 실..

플러터 입문하기
프로그래밍/플러터 2024. 2. 19. 22:07플러터 입문하기

플러터란? - 구글이 구현한 크로스 플랫폼 프레임워크 : 현재 리엑트 네이티브랑 플러터 2개를 중점적으로 사용중 - 플러터의 코드로 어플 및 웹 까지 지원 가능 : 개발 공수가 줄어든다. - 플러터는 스키아 엔진에 위젯을 직접 그리고 이벤트를 실행하여 퍼포먼스가 RN대비 좋음 기본 프로젝트 실행 아래의 코드를 실행해서 간단히 어플에 글자를 출력 // 머티리얼 디자인 관련 코드 import // 플러터의 기본 위젯을 사용할 수 있ㅇ므 import 'package:flutter/material.dart'; void main() { // 플러터 프로젝트를 실행 runApp( // 머티리얼 디자인 기반 위젯을 사용하게 해주는 위젯 MaterialApp( // 화면 전체를 차지하며 레이아웃을 도와주고 UI기능 제..

Expand 위젯 에러 : RenderFlex children have non-zero flex but incoming height constraints are unbounded.
프로그래밍/플러터 2024. 2. 19. 14:57Expand 위젯 에러 : RenderFlex children have non-zero flex but incoming height constraints are unbounded.

서론 코드를 작성하다 보면 Expand를 써서 지정된 부분의 화면을 꽉차게 만들고 싶을 때가 있다. 그런데 이게 간혹 보면 Column이나 Row위젯 안에 넣을 때 에러가 자주 나기 시작함.... 에러 내용 ======== Exception caught by rendering library ===================================================== The following assertion was thrown during performLayout(): RenderFlex children have non-zero flex but incoming height constraints are unbounded. Expand 위젯을 쓸 때 나오는 위의 에러에 대해서 정리를 좀 ..

Unable to boot the Simulator
프로그래밍/플러터 2024. 2. 19. 09:26Unable to boot the Simulator

서론 안드로이드 스튜디오에서 ios 시뮬레이터를 실행하니까 'Unable to boot the Simulator.'라는 에러가 뜸... 분명 지난번에는 잘 됐는데 또 먼 상황인지 모르겠다. 본문 찾아보니까 xcode의 캐시를 삭제하라고 나옴.. 1) 맥의 설정에 들어간다 2) 일반에 들어간다 3) 저장공간에 들어간다 4) 개발자 i 아이콘을 누른다 5) xcode 관련 모든 데이터를 삭제한다. 그런 다음 다시 안드로이드 스튜디오에 들어가서 ios simulator를 실행시키면 제대로 동작하게 된다 . 참고 https://stackoverflow.com/questions/72229589/flutter-xcode-error-unable-to-boot-the-simulator Flutter: XCode err..

Getters and Setters
프로그래밍/플러터 2024. 2. 18. 17:07Getters and Setters

서론 플러터 세미나 듣다가 제대로 알지 못했던 부분이라 정리하려고 한다. 보통 setter나 getter를 쓰긴해도 변수에서 받을 때 set , get 이렇게 작성한 적이 없다보니 확실하게 정리해보자 Getter - 값을 가져올 때 사용 - 매개 변수가 없음 - 프라이빗 변수를 가져 올 수 있음 - 자바에서는 getName() 이런 식으로 사용했으나 다트에서는 좀 다름 Class Membership { int _id; int get id { return this._id; } } Setter - 값을 세팅할 때 사용 - 요즘은 불변성을 추구한다고 하여 set으로 객체의 필드값을 변경하는 것은 좋지 않음 - 파라미터가 있어 해당 필드 값을 변경 Class Membership { int _id; int set..

다트 비동기 프로그래밍
프로그래밍/플러터 2024. 2. 10. 16:52다트 비동기 프로그래밍

동기 / 비동기 - 동기 : 요청을 하면 응답을 받을 때 까지 기다림 - 비동기 : 요청을 한 후 대기하지 않고 다른 거 하다가 요청 오면 그거 받음 Future - 클래스 - 미래 어떤 값을 받을 지 지정가능 void main(){ Future name; // 미래에 받을 String값 Future number; // 미래에 받을 int값 Future isOpened; // 미래에 받을 boolean값 } void main() { addNumbers(1, 1); } void addNumbers(int number1, int number2){ print('$number1 + $number2 계산 시작!'); // ➊ Future.delayed()를 사용하면 일정 시간 후에 콜백 함수를 실행할 수 있음 F..

다트 객체지향 프로그래밍
프로그래밍/플러터 2024. 2. 10. 16:10다트 객체지향 프로그래밍

객체지향 프로그래밍의 필요성 - 모든 코드를 main()함수에다가 정의하면 코드 조짐 : 유지보수 빡세고 가독성 최악 - 변수와 메서드를 특정 클래스에 종속되게 함으로서 객체지향 프로그래밍을 할 수 있음 - 클래스라는 설계도를 사용해서 데이터의 속성 , 기능을 정의하여 객체지향적으로 코드 작성 가ㅡㄴㅇ 클래스 - 일종의 설계도 // class 키워드를 입력 후 클래스명을 지정해 클래스를 선언합니다. class Idol { // ❶ 클래스에 종속되는 변수를 지정할 수 있습니다. String name = '블랙핑크'; // ❷ 클래스에 종속되는 함수를 지정할 수 있습니다. // 클래스에 종속되는 함수를 메서드라고 부릅니다. void sayName() { // ❸ 클래스 내부의 속성을 지칭하고 싶을 때는 th..

728x90
728x90
image