보은군의 새로운 공고를 실시간으로 알려주는 Android 애플리케이션입니다.
-
실시간 백그라운드 감시
- WorkManager를 사용하여 15분마다 자동으로 새 공고 확인
- 앱이 종료되어도 백그라운드에서 계속 작동
- 새 공고 발견 시 즉시 푸시 알림
-
푸시 알림
- 새 공고 발견 시 상단바 알림 표시
- 알림 클릭 시 해당 공고 페이지로 자동 이동
- 중요도 높음으로 설정된 알림 채널
-
공고 목록 화면
- 깔끔한 카드 형태의 UI
- 제목, 날짜, 카테고리 표시
- 스와이프로 새로고침 기능
- 공고 클릭 시 브라우저에서 상세 페이지 열기
- 언어: Kotlin
- 아키텍처: MVVM (Model-View-ViewModel)
- 라이브러리:
- Retrofit2 + OkHttp3: 네트워크 통신
- Coroutines: 비동기 처리
- ViewModel + LiveData: 반응형 UI
- ViewBinding: 뷰 바인딩
- WorkManager: 백그라운드 작업
- RecyclerView + ListAdapter: 효율적인 리스트 표시
- SwipeRefreshLayout: 당겨서 새로고침
- Material Design Components: UI 디자인
app/src/main/java/com/boeun/announcement/
├── data/ # 데이터 모델
│ └── Announcement.kt
├── network/ # API 서비스
│ ├── ApiService.kt
│ └── RetrofitClient.kt
├── repository/ # 데이터 저장소
│ └── AnnouncementRepository.kt
├── viewmodel/ # ViewModel
│ └── AnnouncementViewModel.kt
├── ui/ # UI 컴포넌트
│ ├── MainActivity.kt
│ └── AnnouncementAdapter.kt
├── worker/ # 백그라운드 작업
│ ├── NoticeCheckWorker.kt
│ └── WorkManagerHelper.kt
└── utils/ # 유틸리티
├── NotificationHelper.kt
└── PreferenceHelper.kt
-
API 서버 URL 수정
network/RetrofitClient.kt파일의BASE_URL을 실제 서버 주소로 변경
-
알림 권한
- Android 13 이상에서는 앱 실행 시 알림 권한 요청
- 설정 > 앱 > 권한에서 수동으로 설정 가능
-
백그라운드 작업 주기
worker/WorkManagerHelper.kt에서 체크 주기 변경 가능 (기본 15분)
# Gradle 빌드
./gradlew build
# 디버그 APK 생성
./gradlew assembleDebug
# 앱 설치 및 실행
./gradlew installDebug- 최소 SDK 버전: 24 (Android 7.0)
- 타겟 SDK 버전: 34 (Android 14)
- 인터넷 연결 필수
- 백그라운드 작업을 위해 배터리 최적화 예외 설정 권장
이 프로젝트는 보은군 공고 알림 서비스를 위한 것입니다.