본문 바로가기
반응형

[클라이언트]196

[당신이 잠든 사이에] 포그라운드 서비스와 백그라운드 서비스의 변천사 (Service, IntentService, JobIntentService, WorkManager, AlarmManager) '당신이 잠든 사이에' 앱을 2017년부터 개발하여 유지하면서, 'Service' 에 대한 정책적인 변화를 겪어왔습니다.이번 글에서는 'Service' 의 개념과 종류, 그리고 정책이 변화되면서 무엇이 없어졌고 생겼는지에 대한 변천사도 간단히 정리해보려 합니다.  글을 읽기 전에,AlarmManager의 다양한 함수들(set, setExact, setExactAndWhileIdle, setAlarmClock)와Doze/App Standby/Idle/배터리 최적화 제외 등의 개념을 작성해 놓은 글이 있어서, 먼저 참고하시면 좋을 것 같습니다https://hevton.tistory.com/899 [AlarmManager] - Doze, App StandBy, 배터리 최적화, Idle 상태에 대해Doze 모드.. 2025. 3. 31.
Paging3 적절히 판단해서 사용하기 채팅 로그 서비스 개발에 사용했던 Paging3에 대한 경험을 기록합니다. Room 기반으로 채팅 데이터를 기록하고, 이 데이터를 Paging3 를 활용하여 보여줍니다.하지만 원하는 요구사항에 항상 Paging3가 맞아 떨어지진 않았습니다.Paging3를 사용할지 직접 구현할지를 결정하고, 그 경험을 기록합니다. 1. Gallery 뷰에 Paging3 활용 사례우선, Paging3를 활용했던 경우에 대해서 먼저 이야기하겠습니다. Gallery 뷰의 진입점은 채팅방 -> 갤러리로 이뤄지고 있습니다.휴대폰의 기본 갤러리 앱 처럼, N x 3의 그리드 형식으로 사진들을 보여줘야 하고날짜에 따라 날짜 헤더 구분자 또한 필요합니다. 우선 이 요구사항들을 기반으로, Paging3를 구현하게 된다면 두 가지 방법이 .. 2025. 3. 17.
Paging3 - insertSeparators 활용하여 갤러리 구현하기 사진 갤러리에서 날짜 데이터를 추가해야 할 일이 생겼습니다. Paging3는 PagingData로 데이터가 감싸져 있어서, 내부 데이터를 다룰 수가 없는 불편함이 있는 만큼insertHeaderItem(), insertFooterItem(), insertSeparator() 같은 내부 함수들을 지원합니다.  이 중 insertSeparator()를 활용하면, 우리가 갤러리 앱에서 볼 수 있는 UI를 쉽게 구현할 수 있습니다.@CheckResult@JvmSyntheticpublic fun PagingData.insertSeparators( terminalSeparatorType: TerminalSeparatorType = FULLY_COMPLETE, generator: suspend (T?, .. 2025. 2. 20.
✓ Built build/app/outputs/flutter-apk/app-debug.apk 무한 로딩 옛날에는 이런 적이 없었는데 요즘에는 앱을 빌드하다 보면 아래 부분에서 무한으로 멈춥니다..✓ Built build/app/outputs/flutter-apk/app-debug.apk  언젠가는 갑자기 됐다가.. 언젠가는 또 갑자기 안되고..이건 정말 앱을 개발하면서 굉장히 스트레스 받는 시간이었습니다 ㅜ..ㅜ이런 저런 방법을 다양하게 시도해봤고, 그 과정을 통해 일종의 방식을 나열해보게 되었습니다. 터미널에서 다음과 같은 순서로 진행하면 됩니다. 1.dart fix --apply 2.flutter clean  3.flutter build apk 4.휴대폰의 연결을 해제했다가 연결 5.adb shell pm clear {패키지} 6.flutter run  도움이 되셨길 바랍니다..저는 정말 다양하게 검색.. 2024. 11. 2.
반응형