GetIt – 간단하고 강력한 의존성 주입 관리
·
Flutter
​GetIt은 Flutter에서 의존성 주입(Dependency Injection, DI)을 간편하게 구현할 수 있도록 도와주는 라이브러리입니다. 이를 통해 싱글턴 객체를 효율적으로 관리하고, 애플리케이션 전역에서 동일한 인스턴스를 손쉽게 호출할 수 있습니다.​왜 GetIt을 사용해야 할까?전역 객체 관리: Provider 없이도 의존성을 전역적으로 관리할 수 있습니다.​싱글턴 패턴 지원: 한 번 등록하면 앱 어디서든 동일한 인스턴스에 접근할 수 있습니다.​직관적인 API: getIt() 한 줄로 객체를 가져올 수 있습니다.​생성자 주입 지원: 팩토리 패턴을 통해 객체 생성 로직을 유연하게 관리할 수 있습니다.​GetIt 설치dependencies: get_it: ^7.6.4 GetIt 인스턴스 등록i..
Flutter Hive
·
Flutter
Flutter에서 로컬 데이터를 저장할 때 가장 많이 사용되는 라이브러리 중 하나가 Hive다. SQLite와 달리 스키마를 정의할 필요가 없고, 빠른 속도를 자랑하며, 복잡한 관계형 데이터 없이도 간단한 데이터 저장 및 관리가 가능하다. 이 글에서는 Hive의 개념부터 설치, 설정, 예제 코드까지 상세히 설명해보겠다.1. Hive란?Hive는 경량 Key-Value 기반 NoSQL 데이터베이스로, Flutter 및 Dart 애플리케이션에서 로컬 데이터를 저장할 때 사용된다.다음과 같은 특징이 있다.빠른 성능: SQLite보다 읽기/쓰기 속도가 빠르다.NoSQL 구조: 테이블을 정의할 필요 없이, 객체를 바로 저장할 수 있다.직렬화 불필요: JSON처럼 변환할 필요 없이, Dart 객체 그대로 저장이 가..
Flutter에서 ButtonStyle 마스터하기 – 완벽 가이드
·
Flutter
Flutter에서 버튼은 앱의 주요 상호작용 요소 중 하나입니다. 하지만 기본 버튼 스타일을 그대로 사용하는 경우 디자인이 다소 밋밋할 수 있습니다. 이번 글에서는 Flutter의 ButtonStyle을 활용해 다양한 스타일을 적용하는 방법을 정리해보겠습니다.Flutter의 버튼 스타일링을 다룰 때 ButtonStyle을 이해하는 것이 핵심입니다. 이를 통해 색상, 크기, 패딩, 테두리, 그림자 등의 다양한 속성을 커스터마이징할 수 있습니다.ButtonStyle 기본 개념Flutter의 ButtonStyle은 ElevatedButton, TextButton, OutlinedButton 등에 공통적으로 적용할 수 있는 스타일 속성을 정의하는 클래스입니다. 즉, 버튼을 꾸밀 때 하나의 스타일을 여러 버튼에 ..
Flutter에서 GPU 렌더링 이해하기: Skia에서 Impeller까지
·
Flutter
Flutter는 강력한 UI 프레임워크로서 빠른 렌더링을 제공하기 위해 GPU(Graphics Processing Unit)를 적극 활용합니다. 특히, Skia 엔진을 사용하여 다양한 플랫폼에서 일관된 그래픽 성능을 보장해왔습니다. 하지만 성능 향상과 최적화를 위해 Flutter 팀은 새로운 렌더링 엔진인 Impeller를 도입했습니다. 이번 글에서는 Flutter의 GPU 렌더링 과정과 Impeller 엔진의 등장 배경 및 특징을 자세히 살펴보겠습니다.1. Flutter의 렌더링 엔진: Skia와 ImpellerSkia: 기존의 렌더링 엔진Flutter는 기본적으로 Skia라는 2D 그래픽 엔진을 사용하여 UI를 렌더링합니다. Skia는 Chrome, Android 등에서도 사용되는 강력한 오픈소스 그..
Flutter Secure Storage
·
Flutter
Flutter 앱을 개발할 때, 사용자 인증 정보, API 키, 토큰과 같은 민감한 데이터를 안전하게 저장하는 것은 필수적입니다. flutter_secure_storage 패키지는 iOS에서는 Keychain, Android에서는 EncryptedSharedPreferences를 활용하여 보안성이 뛰어난 데이터 저장소를 제공합니다.이 글에서는 flutter_secure_storage의 필요성, 설정 방법, 사용법 및 추가 기능에 대해 알아보겠습니다.왜 flutter_secure_storage를 사용해야 할까?보안이 중요한 이유는 데이터가 노출되면 사용자 정보 유출, API 남용 등의 위험이 발생할 수 있기 때문입니다. flutter_secure_storage를 사용하면 다음과 같은 이점이 있습니다.민감한..
Flutter에서 애니메이션
·
Flutter
Flutter는 강력하고 유연한 애니메이션 기능을 제공하여, 개발자가 매력적이고 직관적인 사용자 경험을 만들 수 있도록 돕습니다. 애니메이션은 앱의 인터페이스를 보다 자연스럽고 역동적으로 만들기 때문에, 효과적으로 활용하면 더욱 멋진 애플리케이션을 개발할 수 있습니다.이번 글에서는 Flutter에서 제공하는 암시적 애니메이션(Implicit Animations) 과 명시적 애니메이션(Explicit Animations) 의 차이점과 활용 방법을 소개하겠습니다. -> 나름 공부하면서 적은거라 미흡한 부분이 있습니다 Flutter 애니메이션의 종류Flutter의 애니메이션은 크게 암시적 애니메이션(Implicit Animation) 과 명시적 애니메이션(Explicit Animation) 으로 나눌 수 있습..
Flutter에서 BLoC 패턴 제대로 이해하기
·
Flutter
Flutter에서 상태 관리는 항상 고민되는 부분입니다. 여러 가지 방법이 있지만, 규모가 커질수록 명확한 구조가 필요한데, 그중 하나가 BLoC(Business Logic Component) 패턴입니다. 이번 글에서는 BLoC 패턴이 무엇인지, 왜 사용하는지, 그리고 실제 코드 예제를 통해 적용하는 방법을 정리해보겠습니다.BLoC 패턴이란?BLoC 패턴은 비즈니스 로직과 UI를 분리하는 아키텍처 패턴입니다. 즉, UI와 상태 관리 로직을 독립적으로 유지하여 유지보수성과 테스트 가능성을 높이는 방식입니다.BLoC 패턴을 사용하는 이유UI와 로직 분리 → UI 코드와 비즈니스 로직을 명확히 구분하여 가독성을 높입니다.일관된 상태 관리 → 이벤트와 상태를 사용해 관리할 수 있어 예측 가능한 코드 작성이 가능..
Flutter 3.29 & Dart 3.7 업데이트
·
Flutter
Flutter와 Dart는 개발자 생산성 향상과 더 나은 사용자 경험을 위해 꾸준히 진화하고 있습니다. 이번 Flutter 3.29와 Dart 3.7 업데이트에서는 특히 렌더링 엔진, 플랫폼 인터롭, 웹 성능, DevTools 개선 등 여러 핵심 기능들이 대폭 강화되었습니다. 아래에서 주요 변경 사항을 살펴보겠습니다.1. 엔진 및 렌더링 개선iOS – Impeller가 기본 렌더러로 전환Skia 완전 제거: 이제 iOS에서는 Skia 대신 Impeller가 유일한 렌더러로 사용됩니다.바이너리 크기 감소 및 성능 최적화: 불필요한 코드가 제거되어 앱의 크기가 줄고, 렌더링 효율이 크게 향상되었습니다.새로운 렌더링 기능: BackdropFilter 최적화와 ImageFilter.shader 생성자 등을 통해..
PopupMenuButton (팝업 메뉴 버튼)
·
Flutter
PopupMenuButton (팝업 메뉴 버튼)Flutter에서 제공하는 드롭다운 형태의 팝업 메뉴 위젯으로, 특정 아이콘이나 버튼을 클릭하면 여러 선택지를 포함한 메뉴가 나타납니다.Transform.translate( offset: const Offset(6, 0), child: PopupMenuButton( /// 팝업 메뉴의 테두리와 round 처리 shape: RoundedRectangleBorder( ..
Flutter의 렌더링 파이프라인: Build 단계 이해하기
·
Flutter
Flutter는 뛰어난 성능과 부드러운 애니메이션을 제공하는 UI 프레임워크입니다. 이러한 성능을 유지하기 위해 내부적으로 렌더링 파이프라인을 활용하는데, 이 과정은 크게 Build → Layout → Paint 단계로 나뉩니다.이번 글에서는 그중에서도 첫 번째 과정인 Build 단계에 대해 자세히 알아보겠습니다. 이 단계에서는 화면을 구성하는 위젯 트리(Widget Tree) 를 생성하며, 상태 변화가 발생할 때마다 빌드가 다시 실행됩니다.1. Flutter의 렌더링 파이프라인Flutter에서 UI가 화면에 표시되는 과정은 다음 세 단계로 진행됩니다.Build 단계: 위젯 트리를 생성하고 업데이트하는 단계입니다.Layout 단계: 위젯의 크기와 위치를 계산하는 과정입니다.Paint 단계: 실제 화면에 ..