본문 바로가기
반응형

전체글969

[당신이 잠든 사이에] 포그라운드 서비스와 백그라운드 서비스의 변천사 (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.
Firebase Cloud Functions V2 정복 (요금제 업그레이드 필요) Firebase Cloud Functions를 V1에서 V2로 마이그레이션하고,Cli를 이용해서 테스트하고 배포까지 진행하는 과정을 기록했습니다. 2023년에 Firebase Cloud Functions V1에 대한 글을 작성했는데,해당 글을 수정하여 V2 버전에 대한 내용으로 다시 채우게 되었습니다. V1버전에 대한 지원이 중단될 예정이므로, V2 버전으로 마이그레이션 바랍니다.V2버전에 대한 마이그레이션 방법은 공식 문서를 참고하거나, 이 글을 통해 진행하실 수 있습니다.  Firebase에도 AWS의 서버리스 프레임워크 AWS Lambda 처럼, 서버리스를 지원합니다.그 서비스 이름은 바로 'Cloud Functions' 입니다.  도입 배경저같은 경우에는, 한정적인 서버 자원에서 서버의 과부하를 .. 2025. 3. 9.
Paging3 - insertSeparators 활용하여 갤러리 구현하기 사진 갤러리에서 날짜 데이터를 추가해야 할 일이 생겼습니다. Paging3는 PagingData로 데이터가 감싸져 있어서, 내부 데이터를 다룰 수가 없는 불편함이 있는 만큼insertHeaderItem(), insertFooterItem(), insertSeparator() 같은 내부 함수들을 지원합니다.  이 중 insertSeparator()를 활용하면, 우리가 갤러리 앱에서 볼 수 있는 UI를 쉽게 구현할 수 있습니다.@CheckResult@JvmSyntheticpublic fun PagingData.insertSeparators( terminalSeparatorType: TerminalSeparatorType = FULLY_COMPLETE, generator: suspend (T?, .. 2025. 2. 20.
반응형