Flutter에서 앱을 개발하다 보면 Widget의 라이프사이클을 이해하는 것이 매우 중요하다. Flutter의 Widget은 UI를 구성하는 기본 단위로, Stateful Widget과 Stateless Widget으로 나뉘는데각 Widget은 생성, 업데이트, 제거 등의 과정을 거치며, 이 과정을 라이프사이클이라고 부른다.1. Stateless Widget LifecycleStateless Widget은 상태를 가지지 않는 위젯으로,데이터가 변하지 않는 정적인 UI를 렌더링할 때 사용된다.Create: Widget이 처음 생성될 때 호출build(): UI를 빌드하여 화면에 표시dispose: Widget이 화면에서 제거될 때 호출Stateless Widgetimport 'package:flutter..

Flutter 프로젝트를 생성하면 기본적으로 flutter_lints 라는 의존성이 붙는다.그래서 flutter_lints 와 analysis_options 로 규칙을 정하는 방법에 대해서 글을 써본다. Flutter Lints란?Flutter Lints는 Flutter 애플리케이션, 패키지 및 플러그인에 대한 권장 린트 세트를 제공하여 좋은 코딩 관행을 장려하는 패키지다.이 패키지를 사용하면 코드 품질을 높이고, 팀원 간의 일관된 코딩 스타일을 유지할 수 있다.특히, 린트 규칙을 통해 코드에서 발생할 수 있는 잠재적인 문제를 미리 감지할 수 있다는 점이 큰 장점이다.기본 사용 방법flutter_lints 패키지를 사용하여 기본적인 린트 규칙을 설정하는 방법은 간단하다.먼저, pubspec.yaml 파일..

Dart에서 객체를 생성할 때 사용하는 생성자(Constructor)에 대해 알아보자.왜냐? 대충 유지보수 할 수 있을만큼 읽는거에 익숙해졌는데,기초가 부족하다고 느꼈기 때문이다... 😢 마치 맨땅에 헤딩하듯 Swift를 공부했을 때 처럼...!기본에 충실하면 개발 속도가 나니까 😉 생성자는 클래스의 인스턴스를 만들 때 호출되며, 다양한 방식으로 정의할 수 있다.이번 글에서는 Dart에서 제공하는 여러 가지 생성자 유형을 살펴보고 각각의 특징을 이해해보자.기본 생성자기본 생성자는 클래스의 인스턴스를 생성할 때 호출되는 가장 일반적인 형태의 생성자다.위치 매개변수class Point { final double x; final double y; // 위치 매개변수를 받는 기본 생성자 Point(..

회사에서는 GitLab을 사용하는데, 개발 연습을 위해 GitHub도 함께 사용하려고 한다.근데 기존 SSH 키(id_ed25519)는 GitLab 전용으로 설정되어 있어서,GitHub 용 SSH 키를 새로 생성하고 각각의 키를 등록하고 사용하는 방법을 정리해본다.1️⃣ GitHub용 SSH 키 생성하기GitHub에서 사용할 새로운 SSH 키를 생성한다.ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_github-t ed25519 : ed25519 암호화 방식 사용-C "your_email@example.com" : GitHub 계정 이메일 입력-f ~/.ssh/id_ed25519_github : GitHub용 SSH 키 파일..

What’s new in Flutter 3.7Material 3 updates, iOS improvements, and much more!medium.com이전 글에서는 Flutter 3.7의 UI 및 성능 개선 내용을 살펴보았다.이번 글에서는 Swift 플러그인 마이그레이션, Bitcode 지원 종료 및 iOS 개발자를 위한 새로운 리소스 등을 소개하겠다.1. Swift 플러그인 마이그레이션(Swift Migration for Plugins)Apple이 Swift 기반 API를 적극 활용하면서, Flutter 플러그인도 Swift로 전환하는 작업이 진행되고 있다.그 일환으로 quick_actions 플러그인이 Objective-C에서 Swift로 마이그레이션되었다.🔹 왜 Swift로 전환해야 할까?A..

What’s new in Flutter 3.7Material 3 updates, iOS improvements, and much more!medium.com 지난 글에서 Flutter 3.7의 주요 기능 중 Material 3 지원 강화, 메뉴 바 및 계단식 메뉴, Impeller 렌더링 엔진 프리뷰, iOS 릴리스 검증 기능, DevTools 업데이트를 살펴보았다.이번 글에서는 컨텍스트 메뉴, iOS 스타일 리스트뷰, 스크롤 개선, 다국어 툴 개선, 글로벌 선택 및 새로운 플랫폼 채널 기능 등에 대해 알아보자.1. 커스텀 컨텍스트 메뉴(Custom Context Menus)이제 Flutter에서 컨텍스트 메뉴를 자유롭게 커스터마이징할 수 있다.예를 들어, 텍스트 선택 툴바에서 기본 기능 외에 이메일 전..

What’s new in Flutter 3.7Material 3 updates, iOS improvements, and much more!medium.comFlutter 3.7이 출시되었다. 이번 업데이트에서는 Material 3 지원 강화, 메뉴 바 및 계단식 메뉴 추가, 새로운 렌더링 엔진 Impeller 프리뷰, iOS 앱 릴리스 검증 기능 추가, DevTools 개선 등 다양한 기능이 포함되었다. 하나씩 살펴보자.Material 3 지원 강화Flutter 3.7에서는 Material 3(M3) 지원이 대폭 강화되었다.기존 위젯 중 다음과 같은 요소들이 M3로 마이그레이션되었다.Badge, BottomAppBar, SegmentedButton, Checkbox, DividerMenus, Dropd..

애플실리콘 MacOS 에서 라마를 받아보자 먼저 공홈으로 가준다https://www.llama.com/llama-downloads/ Download LlamaRequest access to Llama.www.llama.com 요청하기 위한 개인정보를 입력하고 스크롤 쭉 내려서이용약관 2개 동의해주면 아래와 같은 화면을 볼 수 있다.난 3.2 라이트버전? 이랑 3.1 8B가 궁금해서 일단 2개 요청해봤다.나중에 나온 3.2 3B 먼저 써보고! 괜찮으면 쭉 쓰고, 너무 가볍다 싶으면 3.1 8B 써야징 😏 근데 pip 인스톨 하라는데 난 없으니까 pip 부터 설치해주긔..brew install pip 개발하다보면 느끼는건데 홈브루 없었으면 진짜 끔찍했겠다.. 🥹 파이썬도 설치할거냐고 묻는데...

최근 회사에서 새로운 맥북을 주셔서인텔맥 -> M4 프로로 개발 환경을 바꿨다. 바꾸면서 homebrew 로 이것저것 설치하고 개발했더니안드로이드 스튜디오 내부 JDK가 자동으로 21로 되어있었다. `flutter build appbundle`로 안드로이드 앱 배포를 시도하니까이런 오류가 떴다. 사실 이전에도 같은 오류를 겪어서 겨우겨우 해결했었는데...그때는 떡하지 적혀있는 AGP가 뭔지도 몰랐다... 일단 번역기를 돌려보자에.. 그니까 Java는 최신버전 21 쓰면서 gradle 은 왜 낮은거 8.2.1 쓰냐는 .. 뭐 그런 오류다.근데 ㅠ 그거 아세요..? gradle 최신버전이랑 자바 21이랑도 호환 안되는거..어떻게 알았냐고요? 저도 알고싶지 않았어요... `flutter doctor --ver..

패캠 강의를 듣다가 SliverList 라고 하시는데 뭔지 몰라서 알아봤다.Sliver란?Flutter 공식 문서에서 Advanced UI > Slivers 라고 설명하는데, Sliver는 Flutter에서 스크롤 가능한 영역을 구성하는 기본 단위다.쉽게 말해서, 리스트나 그리드 같은 스크롤 가능한 UI 컴포넌트를 더 유연하게 만들기 위해 제공되는 "조각"!ListView 같은 위젯은 내부적으로 Sliver를 사용해서 스크롤을 처리한다.즉, Sliver는 화면을 스크롤하는데 필요한 데이터나 UI를 효율적으로 관리할 수 있도록 도와준다. 예시import 'package:flutter/material.dart';void main() { runApp(MyApp());}class MyApp extends St..

Flutter에서 서버와 데이터를 주고받을 때 JSON 형태를 자주 사용할텐데JSON 데이터를 다루다 보면, 필드 이름이 다르거나 데이터 타입을 맞춰야 하는 문제가 생길 수 있다.이 때 json_serializable 패키지를 활용해서 JSON 데이터를 다루는 방법을 알아보자@JsonSerializable()란?@JsonSerializable()클래스가 JSON 데이터를 쉽게 변환할 수 있도록 도와주는 어노테이션이 어노테이션을 class 키워드 위에 선언하면 됨JSON 데이터를 Dart 객체로 변환fromJson()하거나반대로 Dart 객체를 JSON으로 변환toJson()하는 코드를 자동으로 생성사용 방법json_serializable과 build_runner 패키지 설치dependencies: js..

Flutter에서 일정 추가 기능을 구현할 때 서버와의 통신 시간이 걸리더라도 화면이 끊기지 않게 하려면 어떻게 해야 할까?오늘은 "낙관적 업데이트(Optimistic Update)" 패턴을 적용한 코드를 살펴보자.문제 상황Schedule을 추가할 수 있는 간단한 UI를 구현한 다음, 여기에 3월 15일 오후 2시 회의 일정을 추가한다고 해보자.서버에 저장 요청을 보낸 뒤 응답을 기다리는 동안 아무 반응이 없다면 사용자 경험이 좋다고 볼 수 없으니..!여기서 낙관적 업데이트 패턴을 적용하면 이런 문제를 해결할 수 있다.화면 예시코드 예시class ScheduleProvider extends ChangeNotifier { final ScheduleRepository repository; DateTime..
- Total
- Today
- Yesterday
- 낙관적 업데이트 패턴
- slivers
- llm 설치
- 플러터
- flutter
- sliver
- fromjson()
- flutter_lints
- SWIFT
- jsonserializable
- sliverlist
- 오블완
- flutter3.7
- 플러터ios애니메이션
- 티스토리챌린지
- 오블완챌린지
- 플러터네이티브
- flutter 3.7
- 렌더링최적화
- flutter updates
- swiftmigration
- 개발신입
- jsonkey
- 플러터 업데이트
- 다트문법
- tojson()
- lints
- analysis_options
- ios
- 플러터업데이트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |