반응형 hive13 Hive 데이터 포맷 변경으로 인한 크래시 방지 방법 (AppSetting, UserSetting 안전 마이그레이션) 문제 상황앱을 개발하면서 가장 흔히 겪는 문제 중 하나는 데이터 모델의 변화입니다. 특히, 로컬 데이터 저장소로 Hive를 사용 중이라면 모델에 필드를 추가하거나 필드의 순서를 변경할 때 기존 데이터와의 충돌로 앱이 크래시하는 문제가 발생할 수 있습니다.💥 크래시 상황 예시초기 버전: AppSetting 또는 UserSetting 모델에 country 필드가 없었습니다.새 버전: country와 같은 새로운 필드가 추가되거나 필드 순서가 변경되었습니다.결과: 앱이 실행될 때 _box.get(key)가 잘못된 바이너리 포맷을 읽어 HiveError를 발생시키며 크래시합니다.이 문제는 앱 업데이트 후 데이터 모델이 변경될 때 특히 위험하며, 이를 방치하면 많은 사용자 이탈을 초래할 수 있습니다. 이번 글에.. 2025. 5. 7. [50살에 플러터 개발 도전기] 앱 업데이트 후 멈춤 현상? Hive bool 필드 추가 시 발생한 초기화 이슈 해결기 2025년 4월 11일, 스터디덕 개발 일지안녕하세요. 저는 플러터 개발자를 꿈꾸는 50세 개발자입니다.요즘 집중력 향상 앱인 ‘스터디덕(Study Duck)’을 개발하며 사용자에게 도움이 되는 기능을 하나씩 추가하고 있습니다.오늘은 제가 실제로 겪은 Hive 데이터 모델 업데이트 문제와 그것을 어떻게 해결했는지를 공유하려고 합니다.Flutter로 앱을 개발하시는 분들, 특히 Hive를 사용하는 분들께 도움이 되길 바랍니다.기능 추가 배경스터디덕은 공부에 집중하는 시간을 늘리기 위해 만든 앱입니다.최근 유저들에게 집중 호흡 모드 기능을 제공하고 싶었습니다.그래서 앱 설정에 아래와 같은 필드를 추가했습니다.@HiveField(5) @Default(true) bool autoBreathingExercise,.. 2025. 4. 11. 위치 추적앱 안드로이드와 iOS, 한 코드로 통합할 수 있을까? Flutter에서는 dart:io의 Platform.isAndroid와 Platform.isIOS를 사용하여 플랫폼별로 다른 로직을 실행할 수 있습니다.즉, 하나의 코드에서 안드로이드와 iOS의 백그라운드 GPS 로직을 구분해서 실행할 수 있습니다.🏗️ 플랫폼별 구현 방식기능안드로이드 (Android)iOS백그라운드 실행 방식Foreground Service + WorkManagerBackground Modes + Significant Location Change권한 요청ACCESS_BACKGROUND_LOCATION 필요NSLocationAlwaysUsageDescription 필요위치 업데이트 방법getPositionStream() 사용getPositionStream() 또는 Region Monit.. 2025. 2. 12. iOS에서 백그라운드 위치 추적 구현하기 안드로이드에서는 Foreground Service를 활용하면 되지만, iOS는 백그라운드에서 GPS를 실행할 수 있는 정책이 다릅니다.iOS는 사용자의 배터리 소모를 줄이기 위해 앱이 백그라운드 상태일 때 대부분의 작업을 제한합니다.하지만 Background Modes와 Significant Location Changes (중요 위치 변경), Region Monitoring을 사용하면 조깅 앱에서도 지속적인 위치 추적이 가능합니다.1️⃣ iOS에서 백그라운드 위치 추적을 위한 설정🔹 (1) Info.plist에 백그라운드 권한 추가ios/Runner/Info.plist 파일을 열고 다음을 추가합니다.NSLocationAlwaysAndWhenInUseUsageDescription조깅 기록을 위해 사용자의.. 2025. 2. 12. Flutter 실시간 경로 시각화: 조깅 앱에 Google Maps 적용하기 안녕하세요!지난 포스트에서 다룬 백그라운드 위치 추적 기능을 바탕으로, 오늘은 실시간으로 사용자의 운동 경로를 지도에 표시하는 방법을 알아보겠습니다.dependencies: google_maps_flutter: ^2.3.0 flutter_polyline_points: ^1.0.0 latlong2: ^0.9.0🗺 Google Maps 설정하기먼저 Google Maps API 키를 설정해야 합니다.Android 설정android/app/src/main/AndroidManifest.xml iOS 설정ios/Runner/AppDelegate.swiftimport UIKitimport Flutterimport GoogleMaps@UIApplicationMain@objc class.. 2025. 2. 12. Flutter 백그라운드 위치 추적 앱 개발하기: WorkManager와 Riverpod로 구현하는 조깅 앱 안녕하세요! 오늘은 Flutter에서 백그라운드 위치 추적을 구현하는 방법에 대해 자세히 알아보겠습니다.특히 조깅 앱을 예시로 들어 실제 구현 방법을 상세히 설명해드리려고 합니다.📱 백그라운드 위치 추적의 도전과제조깅 앱을 개발할 때 가장 큰 도전과제는 앱이 백그라운드에 있거나 화면이 꺼져있을 때도 지속적으로 위치 정보를 추적해야 한다는 점입니다.Android에서는 배터리 최적화로 인해 백그라운드 작업을 제한하는데, 이를 해결하기 위해서는 Foreground Service를 사용해야 합니다.🛠 필요한 패키지들dependencies: flutter: sdk: flutter workmanager: ^0.5.1 geolocator: ^9.0.0 hive: ^2.2.3 hive_flutter:.. 2025. 2. 12. 이전 1 2 3 다음 반응형