본문 바로가기
반응형

hive13

플러터에서 조깅 앱을 만들 때 백그라운드에서 GPS 위치를 계속 저장하는 방법 조깅 앱을 개발할 때 가장 중요한 기능 중 하나는 사용자가 스마트폰 화면을 꺼두거나 다른 앱을 사용하더라도 GPS 위치를 지속적으로 저장하는 것입니다.하지만 안드로이드에서는 배터리 최적화를 위해 백그라운드 작업을 일정 시간이 지나면 자동으로 종료시킵니다.이를 해결하려면 Foreground Service를 활용해야 합니다.🚀 Foreground Service란?Foreground Service는 사용자에게 지속적으로 실행 중임을 알리는 서비스입니다.예를 들어, 조깅 앱이 실행 중일 때 상태바(Notification)에 "조깅 기록 중"과 같은 메시지를 띄우면, 해당 서비스는 시스템이 강제 종료하지 않습니다.🎯 WorkManager 대신 Foreground Service 사용하기WorkManager는 주.. 2025. 2. 12.
플러터에서 WorkManager로 GPS 위치를 백그라운드에서 저장하는 방법 안녕하세요, 기술 블로거 [Maccrey]입니다.이번에는 플러터에서 WorkManager 패키지를 활용하여 백그라운드에서 GPS 위치를 받아와서 Hive에 저장하는 방법에 대해 알아보겠습니다.특히 스마트폰이 꺼져도 계속해서 위치를 저장할 수 있는 방법에 대해 초보자도 쉽게 이해할 수 있도록 풀어볼게요.1. GPS 위치 백그라운드 작업 제한 이해하기플러터에서 GPS 위치를 백그라운드로 받아오는 작업을 하려고 할 때, 대부분의 Android 기기에서는 백그라운드 작업을 제한합니다.앱이 백그라운드에서 실행 중일 때, 시스템 자원을 절약하고 배터리 소모를 줄이기 위해 자동으로 앱을 종료시킬 수 있습니다. 그러나 조깅 앱과 같은 경우, 스마트폰이 꺼져도 계속 위치를 추적해야 하므로 이러한 제한을 우회해야 합니다... 2025. 2. 12.
[50살에 플러터 개발 도전기] 플러터에서 GPS 백그라운드 작업 구현: WorkManager, Background Fetch, Isolate를 사용한 경험 안녕하세요! 이번에는 설 연휴를 맞아 실제 기기에서 플러터 프로젝트를 테스트해보면서 느낀 점을 공유하려고 합니다.주제는 바로 GPS 위치를 백그라운드에서 받아 Hive에 저장하는 코드 구현과 그 과정에서 사용한 Flutter 패키지들입니다.이번에는 WorkManager, Background Fetch, 그리고 Isolate 세 가지를 사용했는데, 각 패키지의 장단점과 백그라운드 작업의 어려움에 대해 자세히 다뤄보겠습니다.구독!! 공감과 댓글,광고 클릭은 저에게 큰 힘이 됩니다. 1. WorkManager: 백그라운드 작업의 시작플러터에서 백그라운드 작업을 처리하는 데 있어 가장 많이 사용되는 패키지 중 하나가 WorkManager입니다.제가 처음 이 패키지를 접했을 때 가장 인상 깊었던 점은 간단한 설정.. 2025. 2. 3.
[50살에 플러터 개발 도전기] Hive 패키지 문제 해결 여정 안녕하세요, 플러터 개발자를 꿈꾸는 50세의 개발자입니다. 오늘은 허밍버드 팀과 함께 학습관리 앱을 개발하면서 겪었던 특별한 경험을 공유하려 합니다.Hive 패키지에서 발생한 문제우리 팀은 학습관리 앱 개발 도중 Hive 패키지를 사용하면서 예상치 못한 문제가 발생했습니다. 앱을 종료하고 다시 실행하면 Hive에 저장했던 데이터가 null로 변하는 이상한 증상이 나타난 것입니다. 이 문제는 처음에 쉽게 해결될 것처럼 보였지만, 실제로는 복잡한 원인이 숨겨져 있었습니다.문제 원인 파악문제를 해결하기 위해 팀원들과 함께 이틀간 다양한 시도를 했습니다. 여러 로그를 분석하고, 공식 문서를 다시 검토하며 원인을 찾으려 노력했죠. 결국, 문제의 핵심은 model이 자동으로 Dynamic으로 변경되면서 캐스팅이 이.. 2025. 1. 17.
파이어베이스에서 데이터를 플러터에서 캐싱[ Hive 패키지 로컬 스토리지 이용 ] Hive 패키지를 사용하여 Firebase 데이터베이스와 로컬 데이터베이스를 동기화하고 캐싱하는 방법을 설명드리겠습니다.Hive는 경량 키-값 저장소로, Flutter 애플리케이션에 로컬 저장소를 구현하는 데 유용합니다.1. 패키지 설치먼저 pubspec.yaml 파일에 다음 패키지를 추가합니다.dependencies: flutter: sdk: flutter firebase_core: ^2.5.2 firebase_database: ^9.1.0 hive: ^2.2.3 hive_flutter: ^1.1.0 path_provider: ^2.0.122. Firebase 초기화Firebase를 초기화하는 코드를 main.dart 파일에 추가합니다.import 'package:flutter/mate.. 2024. 7. 27.
파이어베이스에서 데이터를 플러터에서 캐싱[ sqflite 패키지 로컬 스토리지 이용 ] Firebase에서 데이터를 플러터 앱에서 캐싱하는 방법과 Firebase에서 데이터가 업데이트되거나 삭제될 때 캐싱을 다루는 방법에 대해 알아보겠습니다.이를 위해서 우리는 sqflite 패키지를 사용하여 로컬 데이터베이스를 구현하고, Firebase와의 동기화를 처리하는 방법을 살펴볼 것입니다.1. 패키지 설치먼저 firebase_core, firebase_database, sqflite, path 등의 패키지를 설치해야 합니다.pubspec.yaml 파일에 다음과 같이 추가합니다dependencies: flutter: sdk: flutter firebase_core: ^2.5.2 firebase_database: ^9.1.0 sqflite: ^2.2.1 path: ^1.8.32. Fir.. 2024. 7. 26.
반응형