목록Flutter (21)
HIT해

Lazy Loading ( 지연 로딩 )필요한 시점에 데이터를 불러오거나 객체를 생성하여 메모리와 자원을 효율적으로 사용하는 기법즉, 한꺼번에 모든 데이터를 미리 준비하지 않고, 사용자가 필요로 할 때마다 점진적으로 처리하는 방식 특징무거운 작업이나 데이터 로딩을 필요할 때만 수행초기 로드 시간을 줄이고 메모리 사용을 최소화스크롤이나 UI 인터랙션, 페이지네이션에 따라 점진적으로 데이터 또는 UI를 생성 ListView로 확인해보자ListView( children: [ ListTile(title: Text('Item 1')), ListTile(title: Text('Item 2')), ListTile(title: Text('Item 3')), // 모든 아이템들을 한꺼번에 생성 ..

BuildContext위젯 트리 내에서 현재 위젯의 위치를 나타내는 핸들 역할을 하는 객체build() 메서드 내에서 인자로 전달되며, context를 통해 위젯 트리 상의 상위 위젯, 상태 관리 객체 등 다양한 정보를 탐색할 수 있다위젯 트리에서 조상 위젯을 탐색하거나, 데이터를 내려주고 받는 데 꼭 필요한 연결고리 역할을 한다.예제void main() { runApp(MyApp()); // MyApp은 최상위 위젯}class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', home: HomeScreen()..

플러터에는 3가지 트리가 있습니다.1. Widget Tree2. Element Tree3. RenderObject Tree Flutter는 위젯을 사용해 UI를 선언하고, 위젯들은 빈번하게 재생성되는데만약 화면을 하나의 트리만으로 관리한다면, 부모 위젯의 변화는 모든 자식까지 불필요하게 빌드 및 렌더링을 하게돼성능 저하가 발생합니다 > 한 가지 트리를 여러 레이어로 나누어 해결한다 Widget Tree설계도는 언제든 새로 그려도 부담이 없듯, 단순히 "UI가 어떻게 보여야 하는지"를 정의한다불변 오브젝트UI의 설계도생성과 파기 비용이 매우 적어 자주 바뀌어도 부담이 없다상태를 직접 가지지 않음변경시 새 Widget Instance를 만들어 Element에게 전달Element Tree가변 오브젝트Widge..

retrofit | Dart package retrofit | Dart packageretrofit.dart is an dio client generator using source_gen and inspired by Chopper and Retrofit.pub.dev pubspec.yamldependencies: retrofit: '>=4.0.0 =7.0.0 =2.19 build_runner: '>=2.3.0 json_serializable과 함께 사용하면 좋다는 것을 알 수 있다,기존의 Json 통신구조를 살펴보자.Future함수를 통해 http통신을 진행해 변환되지않은 JSON코드 받아오기JSON코드를 모델에 담아 직렬화직렬화된 JSON을 FutureBuilder에 담아 실행.FuterBuilde..

json_serializable | Dart packagejson serializable 은 json 직렬화 역직렬화 도구입니다. 자동 코드 생성:json_serializable을 사용하면 JSON 직렬화/역직렬화를 위한 boilerplate 코드를 자동으로 생성할 수 있습니다.이를 통해 개발자가 직접 fromJson(), toJson() 메서드를 작성할 필요가 없어집니다. 간편한 사용:클래스에 @JsonSerializable() 어노테이션을 추가하면 json_serializable이 자동으로 필요한 코드를 생성합니다. 이를 통해 JSON 처리 로직을 쉽게 구현할 수 있습니다. 유연한 설정:JsonSerializable 어노테이션에는 다양한 옵션을 설정할 수 있습니다. 예를 들어 필드 이름 매핑, 기본..
https://m.blog.naver.com/whdals0/223086755185 Flutter - iOS Archive 시 발생하는 오류 (Command PhaseScriptExecution failed with a nonzero exit code) 수정방법Flutter 로 개발 후 스토어에 올리기 위해서 Xcode 로 Archive 하는 과정에서 발생 한 오류 (Command ...blog.naver.com

1. 내 애플리케이션 > 앱설정 > 플랫폼Android 패키지명, 키해시 설정2. 내 애플리케이션 > 앱설정 > 앱키네이티브 앱 키, REST API 키 복사 후import 'package:flutter/material.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';import 'package:flutter/services.dart'; // SystemChrome을 사용하기 위해 필요import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart';import 'common/view/splash_screen.dart'; // SplashScreen의 경로에 따라 수정해주세요.void m..
백엔드와 통신으로 값을 받고 그 값들중에서 키값이 일치하는 값들만 받아서 저장해야하는 상황이 있었다. 내가 해결한 방식은 저장된 값의 길이만큼 반복문을 돌고 해당하는 키값을 배열에 저장하는 방식으로 해결했다. 해결방식 var pushData = context.watch().pushData; var matchedData = []; for (var i = 0; i < pushData.length; i++) { if (pushData[i].containsKey(ownPillId.toString())) { matchedData.add(pushData[i][ownPillId.toString()]); } } pushData에는 전체 값이 들어가있고 matchedData에는 빈 배열이 들어가있다. pushData가 ..