Flutter와 Firebase의 만남 — 고급 연동 패턴과 실전 인증 처리
·
Flutter
Firebase는 Flutter와 환상의 궁합을 자랑한다.특히 인증 처리(Firebase Auth)는 몇 줄의 코드로 시작할 수 있지만,실전에서는 그 구조와 패턴 설계가 앱의 확장성과 유지보수성에 큰 영향을 준다.이번 글에서는 단순 연동을 넘어서 고급 구조와 인증 처리 패턴을 소개한다.🔐 Firebase Auth의 기본 흐름Firebase 인증은 이메일/비밀번호, 구글, 애플, 카카오 등 다양한 로그인 방식을 지원한다.기본 플로우는 다음과 같다:Firebase 콘솔에서 인증 방식 활성화firebase_auth 패키지 설치로그인/로그아웃 처리 구현final auth = FirebaseAuth.instance;// 로그인await auth.signInWithEmailAndPassword( email: '..
Flutter에서 비동기 완전 이해하기 — Future, Stream, Isolate 이야기
·
Flutter
화면이 멈추지 않도록 만드는 것.Flutter에서 비동기는 단순한 기술이 아니라, 앱의 ‘자연스러움’을 유지하는 철학이다.이번 글에서는 Future, Stream, Isolate를 중심으로 Flutter의 비동기 처리 방식에 대해 제대로 정리해보자.⏳ Future — 약속된 결과, 언젠가는 온다Future는 '미래의 어떤 시점에 결과가 도착할 것'이라는 약속이다.서버에서 데이터를 가져올 때, 파일을 읽을 때 등 다양한 곳에서 사용된다.Future fetchData() async { await Future.delayed(Duration(seconds: 2)); return "데이터 수신 완료";}이런 Future는 다음처럼 await를 통해 기다릴 수 있다:void load() async { Stri..
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. 센..