Flutter에서 Custom Widget 제대로 만들기 — 재사용 가능한 컴포넌트 설계
·
Flutter
Flutter를 처음 시작했을 땐 모든 UI를 직접 구성하는 재미가 있었다.하지만 프로젝트가 커질수록 반복되는 코드에 지치고, 조금의 수정이 전체 앱에 영향을 주는 일이 생기기 시작했다.이제 우리는 고민해야 한다. "이걸 위젯으로 분리할 수 없을까?"Flutter에서 재사용 가능한 Custom Widget을 만드는 일은 유지보수성과 생산성을 모두 높여주는 길이다.🧱 Stateless vs Stateful 위젯 선택 기준커스텀 위젯을 만들기 전, 먼저 결정해야 할 건 Stateless로 만들지 Stateful로 만들지이다.StatelessWidget: UI는 고정, 입력만 받아서 출력할 때StatefulWidget: UI가 상태 변화에 따라 바뀔 때가능하면 Stateless로 시작하고, 필요한 경우 St..
상태 관리 마스터하기 — Provider, Riverpod, Bloc 비교와 선택 가이드
·
Flutter
Flutter를 어느 정도 다루게 되면 필연적으로 부딪히는 고민이 있다.“상태 관리를 어떤 방식으로 할까?”위젯에서 직접 상태를 다루는 건 처음엔 괜찮지만, 앱이 커질수록 복잡함은 폭발한다.이 글에서는 가장 널리 쓰이는 Provider, Riverpod, Bloc의 철학과 사용 예시, 장단점을 비교하여어떤 상황에서 어떤 도구를 선택하면 좋을지 이야기해보려 한다.🔹 Provider — 간단하고 직관적인 상태 관리Provider는 Flutter 팀이 공식적으로 권장하는 방식으로, InheritedWidget의 복잡함을 감쌌다.ChangeNotifier를 기반으로 상태를 관찰하고 UI를 업데이트할 수 있다.class Counter extends ChangeNotifier { int count = 0; v..
Flutter와 네이티브의 연결고리 — Platform Channel 실전 입문
·
Flutter
Flutter는 강력한 UI 프레임워크지만, 때로는 네이티브(Android 또는 iOS)의 기능이 꼭 필요할 때가 있다.예를 들어 배터리 잔량을 가져오거나, 기기의 고유 센서를 사용해야 하는 경우 말이다.이럴 때 등장하는 게 바로 Platform Channel이다.이 글에서는 Flutter에서 네이티브 기능을 호출하는 구조인 Platform Channel을Android (Kotlin)과 iOS (Swift) 기준으로 차근차근 설명해 보겠다.📦 Platform Channel 구조 이해하기Platform Channel은 Flutter ↔ Native 간의 통신을 위해 사용되며, 세 가지 주요 타입이 있다:MethodChannel: 단방향 또는 요청-응답 방식EventChannel: 스트림 방식 (ex. 센..
CustomPainter 완전 정복 — Flutter에서 나만의 캔버스를 그려보자
·
Flutter
Flutter를 처음 배웠을 때, 나는 단순히 "위젯을 조립해 UI를 만드는 프레임워크"라고만 생각했다.하지만 어느 날, 디자인 시안 속 곡선과 패턴, 그림자들을 보며 깨달았다.아... 이것만으론 부족하구나.그때 처음 마주한 개념이 바로 CustomPainter였다.직접 선을 그리고, 면을 채우고, 캔버스를 내 마음대로 휘젓는 그 경험은Flutter에서 또 다른 자유를 얻는 느낌이었다.🎨 CustomPainter란?Flutter는 대부분의 UI 요소를 위젯으로 구성한다. 하지만 더 섬세한 표현이 필요할 땐,CustomPainter를 사용해 직접 도형이나 경로를 그릴 수 있다.마치 웹에서 canvas를 다루는 것과 비슷한 느낌이다.🧱 기본 구조 이해하기class MyPainter extends Cust..
Flutter 게시판 앱 만들기 — APK 만들기부터 실기기 설치까지 완전 가이드
·
Flutter/Flutter 게시판 앱 만들기
게시판 앱, 이제 정말 완성됐다.이제 우리가 만든 이 Flutter 앱을 실제로 실행 가능한 앱 파일 (APK)로 만들어보자.Flutter는 Android용 APK를 빌드해서 직접 핸드폰에 설치하거나, Play Store에 배포할 수도 있다.이번 글에서는 APK 만들기 → 설치하기 과정을 단계별로 정리해보자.🛠 APK란?APK는 Android Package의 약자로, Android 앱을 설치하는 실행 파일이다.Flutter는 `flutter build apk` 명령으로 APK 파일을 생성할 수 있다.🚧 APK 빌드 단계1️⃣ **디버그 모드 APK (개발용):**flutter build apk --debug2️⃣ **릴리즈 모드 APK (배포용):**flutter build apk --release릴..
Flutter 게시판 앱 만들기 — 감성 앱의 마무리는 어둠 속의 편안함
·
Flutter/Flutter 게시판 앱 만들기
화려한 기능과 디자인을 갖춘 앱도, 밤이 되면 불편할 수 있다.눈이 편안한 다크 모드는 이제 선택이 아닌 필수이다.이번 글에서는 Flutter 게시판 앱에 다크 모드 완전 대응을 적용해보자.시스템 설정에 따라 자동으로 전환되거나, 직접 테마를 토글할 수 있도록 구성할 수 있다.🌓 ThemeMode란?MaterialApp에서는 themeMode 속성으로 앱의 테마 모드를 설정할 수 있다.MaterialApp( theme: lightTheme, darkTheme: darkTheme, themeMode: ThemeMode.system,)ThemeMode.system은 디바이스의 설정에 따라 자동 전환된다.🌞 라이트 & 🌚 다크 테마 설정아래는 각각의 테마를 설정하는 예시이다:final lightTh..