2025.12.07G·30앱이 안 열려요 (딥링크, 유니버설 링크 완전 정복)
카카오톡이나 문자의 링크를 눌렀는데 앱이 안 켜지고 웹페이지만 뜹니다. Android App Links, iOS Universal Links 설정, 그리고 `go_router` 처리까지 딥링크의 모든 것을 파헤칩니다.
FlutterDeepLinkBogun
→2025.12.06G·28JOIN을 했는데 데이터가 안 와요 (Foreign Key와 Supabase)
게시글(Post)을 가져올 때 작성자(User) 정보도 같이 보고 싶은데 `null`만 뜹니다. Foreign Key 설정부터 `select(*, users(*))` 문법, 그리고 M:N 관계, Inner Join, Count까지 완벽하게 파헤칩니다.
SupabaseSQLDatabase
→2025.12.03G·26푸시 알림이 안 와요 (FCM과 APNs의 함정)
안드로이드는 오는데 iOS는 조용합니다. 혹은 앱이 켜져 있을 때만 옵니다. Background/Terminated 상태 처리, APNs 인증서, 그리고 Notification Channel 설정까지 완벽하게 해결합니다.
FlutterFCMPushNotification
→2025.12.01G·25내 코드를 훔쳐보지 마세요 (난독화와 Release 에러)
Debug에선 잘 되는데 Release에서만 죽나요? 범인은 '난독화'입니다. R8의 원리, Mapping 파일 분석, 그리고 Reflection을 사용하는 라이브러리를 지켜내는 방법(@Keep)을 정리해봤습니다.
FlutterSecurityObfuscation
→2025.11.30G·24앱 용량이 왜 100MB죠? (Flutter 다이어트 비법)
기능도 별로 없는데 앱 용량이 100MB? 사용자는 무거운 앱을 설치하지 않습니다. 이미지 최적화, 폰트 경량화, ABI 필터링, 그리고 Android App Bundle(AAB)까지, 확실한 다이어트 비법을 공개합니다.
FlutterOptimizationPerformance
→2025.11.29G·23앱 심사가 거절당했어요 (리젝 사유 TOP 5와 대처법)
애플과 구글 심사관들은 깐깐합니다. 테스트 계정 로그인 실패, 개인정보처리방침 누락, 그리고 악명 높은 IPv6 네트워크 문제와 UGC(사용자 생성 콘텐츠) 정책 위반까지, 리젝을 피하는 5가지 체크리스트.
FlutterAppStorePlayStore
→2025.11.28G·22Android 빌드가 빨간 줄을 뱉어요 (Gradle의 늪에서 탈출하기)
안드로이드는 Xcode보다 낫다고요? Gradle 지옥에 빠져보면 그 말이 쏙 들어갈 겁니다. minSdkVersion 충돌, Multidex 에러, Namespace 변경(Gradle 8.0), JDK 버전 문제, 그리고 의존성 트리 분석까지 완벽하게 해결해 봅니다.
FlutterAndroidGradle
→2025.11.27G·21iOS 빌드가 터졌어요 (Xcode의 저주와 CocoaPods 디버깅)
어제는 됐는데 오늘은 안 되는 iOS 빌드. CocoaPods 의존성 지옥, M1/M2 아키텍처(arm64) 충돌, 서명(Signing) 문제, 그리고 CI/CD에서의 Fastlane 설정까지 완벽하게 파헤칩니다.
FlutteriOSXcode
→2025.11.26G·20와이파이를 껐는데 앱이 멈췄어요 (완벽한 오프라인 모드 구현하기)
엘리베이터만 타면 앱이 먹통이 됩니까? connectivity_plus로 네트워크 상태를 감지하고, Hive로 데이터를 캐싱하며, Optimistic UI와 Background Sync(WorkManager)를 통해 끊기지 않는 사용자 경험을 만드는 법을 배웁니다.
FlutterNetworkOffline
→2025.11.25G·19로그아웃 좀 그만 시켜라 (JWT 토큰 자동 갱신의 정석)
앱 켤 때마다 로그인하라고요? 사용자는 떠납니다. Access Token 만료 시 Refresh Token으로 몰래 갱신하고, 실패했던 요청을 재시도하는 완벽한 인터셉터(Interceptor) 패턴을 구현해 봅니다.
FlutterAuthJWT
→2025.11.23G·18앱이 죽었어요: _TypeError (Null is not a subtype of String)
서버에서 잘 오던 데이터가 갑자기 앱을 죽입니다. 'type Null is not a subtype of type String' 에러의 원인과, 안전한 JSON 파싱을 위한 Null Safety 전략을 정리해봤습니다.
FlutterJSONDart
→2025.11.22G·17API가 무한 로딩에 걸렸을 때 (Timeout 처리)
서버가 죽었는지 1분째 로딩바만 돌아가고 있습니다. http 패키지와 Dio에서 타임아웃을 설정하는 방법, 그리고 사용자에게 '잠시 후 다시 시도해주세요'라고 말하는 우아한 방법을 정리해봤습니다.
FlutterNetworkAPI
→2025.11.21G·16앱 켜자마자 데이터가 필요할 때 (비동기 초기화 패턴)
로그인 정보나 설정을 불러오기 전에 메인 화면이 먼저 떠버립니다. main() 함수에서 기다려야 할까요, 아니면 스플래시 화면을 만들어야 할까요? 3가지 초기화 전략을 비교합니다.
FlutterArchitectureAsync
→2025.11.20G·15화면을 갔다 왔는데 스크롤이 초기화됐어요 (PageStorage의 비밀)
탭을 바꿨다가 돌아오면 리스트가 맨 위로 올라가 있나요? AutomaticKeepAliveClientMixin 없이도 스크롤 위치를 기억하는 마법, PageStorage와 Key의 활용법을 공개합니다.
FlutterUIStateManagement
→2025.11.20G·14이미지가 안 떠요 (캐싱, 메모리, 그리고 에러 처리)
네트워크 이미지가 엑박(X)으로 뜨거나, 리스트 스크롤 시 버벅거림(Jank)이 발생하나요? cached_network_image 사용법부터 메모리 캐시(LruCache) 최적화, 그리고 SSL 인증서 문제까지 해결해드립니다.
FlutterImagePerformance
→2025.11.19G·13Riverpod 상태가 자꾸 초기화돼요 (autoDispose의 배신?)
페이지를 나갔다 돌아오니 열심히 입력한 데이터가 다 날아갔습니다. Riverpod의 autoDispose가 범인일까요? 캐싱 전략과 keepAlive, 그리고 invalidate의 차이를 명확히 구분해 봅니다.
FlutterRiverpodStateManagement
→2025.11.18G·12ProviderNotFoundException 해결법 (Context의 비밀)
분명히 Provider로 감쌌는데 찾을 수 없다고 에러가 뜹니다. BuildContext와 위젯 트리의 '족보' 관계를 이해하면, 이 에러는 다시는 당신을 괴롭히지 못합니다.
FlutterStateManagementProvider
→2025.11.17G·11setState를 썼는데 왜 화면이 안 바뀌죠? (불변성의 중요성)
분명 코드를 실행했는데 화면은 그대로입니다. 리스트에 add를 했는데 반응이 없습니다. Dart의 메모리 참조(Reference)와 불변성(Immutability)을 이해하면, 당신의 앱은 다시 살아납니다.
FlutterStateManagementDart
→2025.11.16G·10화면이 자꾸 깜빡거려요 (Rebuild의 함정)
상태만 바꿨는데 왜 이미지까지 다시 로딩될까요? FutureBuilder를 build 안에 넣는 실수부터 const 생성자, RepaintBoundary까지, 플러터 앱이 번개처럼 파닥거리는 원인을 잡습니다.
FlutterPerformanceOptimization
→2025.11.15G·09TextField 포커스가 자꾸 풀립니다 (재렌더링의 함정)
글자 하나 칠 때마다 키보드가 내려가고 포커스가 풀리나요? 당신이 저지른 '컨트롤러 초기화' 실수를 찾아드립니다. TextEditingController와 build() 메서드의 관계를 완벽하게 파헤칩니다.
FlutterUIStateManagement
→2025.11.14G·08이미지 비율이 자꾸 깨집니다 (BoxFit 정복)
사용자가 올린 사진이 찌그러져서 오이가 되었습니다. 디자이너는 화를 냅니다. BoxFit.cover, contain, fill의 차이를 명확히 이해하고, AspectRatio 위젯으로 완벽한 프레임을 짜봅시다.
FlutterUIImage
→2025.11.13G·07아이폰 노치에 UI가 가려질 때 (SafeArea)
아이폰 X 이후, 직사각형 화면의 시대는 끝났습니다. 노치와 홈 인디케이터로부터 당신의 UI를 지키는 방법, 그리고 SafeArea를 쓰지 말아야 할 때를 정리해봤습니다.
FlutterUILayout
→2025.11.12G·06키보드가 올라오면 UI가 다 깨집니다 (Bottom Overflow)
로그인 화면을 만들었는데 키보드가 올라오니 노란 줄무늬 에러가 뜹니다. resizeToAvoidBottomInset부터 스크롤 뷰, 그리고 채팅 앱을 위한 reverse 팁까지, 키보드 대응의 모든 것을 정리해봤습니다.
FlutterUIKeyboard
→2025.11.11G·05Column 안에 ListView 넣을 때 에러 해결 (Unbounded Height)
Column 안에 ListView를 넣으면 왜 화면이 하얗게 변하거나 에러가 날까요? '무한한 높이'의 역설을 이해하고, Expanded와 Slivers로 우아하게 해결하는 방법을 정리해봤습니다.
FlutterUILayout
→2025.11.10G·04RenderFlex overflowed 에러 해결: 노란 줄무늬의 악몽
Flutter 개발자라면 피할 수 없는 노란색/검은색 줄무늬 에러. 단순히 Expanded로 감싸는 게 답이 아닐 수 있습니다. 플러터의 제약 조건(Constraints) 시스템을 완벽하게 이해해봤다.
FlutterUILayout
→2025.09.09O·03스타트업, 제발 React Native 쓰세요 (솔직한 2년 사용기)
iOS와 Android 개발자를 따로 채용할 돈이 없어서 선택한 React Native. 생산성은 2배였지만, 네이티브 모듈과 버전 업그레이드 지옥에서 겪은 생생한 경험담을 공유합니다. 그리고 왜 Expo가 게임체인저인지 설명합니다.
React NativeMobileCross Platform
→2025.09.08O·02스타트업이 네이티브 앱을 만들면 망하는 이유 (Flutter 도입기)
창업 초기, iOS와 Android 앱을 모두 만들어야 했을 때 저는 과감하게 Native(Swift/Kotlin)를 버리고 Flutter를 선택했습니다. 개발 속도 2배, 비용 절감 50%의 효과를 본 경험과, 크로스 플랫폼 개발의 현실적인 장단점을 '스타트업 생존' 관점에서 공유합니다.
MobileFlutterReact Native
→2025.08.14O·01Flutter: 스타트업이 선택해야 할 단 하나의 앱 프레임워크
React Native와 Flutter 사이에서 고민 중인가요? 다트(Dart) 언어의 매력부터 스키아(Skia) 엔진을 통한 네이티브급 성능, 그리고 선언형 UI(Declarative UI)의 철학까지. 왜 수많은 기업들이 플러터로 넘어가고 있는지, 그 기술적 배경과 장단점을 심층 분석합니다.
MobileFlutterCross-Platform
→