Page:
developer guide
Clone
2
developer guide
sanjeok77-tech edited this page 2026-02-22 14:45:25 +09:00
개발자 가이드
프로젝트 개요
- 프로젝트명: ShiftRing (교대링)
- 플랫폼: Android (Kotlin)
- 지원 버전: Android 8.0 (API 26) ~ Android 16 (API 34)
- 버전: v1.1.9
프로젝트 구조
ShiftRing/
├── app/
│ └── src/main/
│ ├── kotlin/com/shiftring/
│ │ ├── alarm/ # 알람 관련
│ │ ├── ui/ # UI 관련
│ │ └── data/ # 데이터 관련
│ ├── assets/
│ │ ├── MANUAL.md # 사용자 매뉴얼
│ │ └── CHANGELOG.md # 변경 이력
│ └── AndroidManifest.xml
├── docs/ # 문서
└── version.json # 버전 정보
알람 아키텍처
전체 흐름
[알람 예약] → [AlarmManager] → [AlarmReceiver] → [AlarmActivity]
↑ ↓ ↓ ↓
[SharedPrefs] [Doze Mode] [WakeLock] [화면 켜짐]
핵심 컴포넌트
AlarmUtils.kt: 알람 예약/취소 로직AlarmReceiver.kt: 알람 수신 및 처리AlarmActivity.kt: 알람 UI 및 해제AlarmForegroundService.kt: 포그라운드 서비스
근무 패턴
전주 공장 (4팀 순환)
20일 주기: 주간 → 주간 → 주간 → 주간 → 주간 → 휴무 → 휴무 → 야간 → 야간 → 야간 → 야간 → 야간 → 휴무 → 석간 → 석간 → 석간 → 휴무 → 휴무 → 주간 → 주간
논산 공장 (3팀 순환)
3일 주기: 주간 → 야간 → 석간 (월~금 근무, 토~일 휴무)
데이터 저장
SharedPreferences
ShiftAlarmPrefs:
- selected_team: String (A/B/C/D)
- selected_factory: String (Jeonju/Nonsan)
- time_ju: String (주간 알람 시간)
- time_seok: String (석간 알람 시간)
- time_ya: String (야간 알람 시간)
- snooze_min: Int (스누즈 시간)
APK 빌드
./gradlew assembleRelease
출력: app/build/outputs/apk/release/app.apk
버전 관리
version.json 형식
{
"versionCode": 1119,
"versionName": "1.1.9",
"apkUrl": "https://git.webpluss.net/sanjeok77/ShiftRing/releases/download/v1.1.9/app.apk",
"changelog": "버그 수정 내용",
"forceUpdate": false
}
릴리즈 태그
v1.1.9 → Releases → assets에 APK 업로드
Wiki 업데이트 (푸시 방법)
Wiki는 별도의 Git 저장소로 관리됩니다.
SSH로 푸시
# 1. Wiki 저장소 클론
git clone git@git.webpluss.net:sanjeok77/ShiftRing.wiki.git
cd ShiftRing.wiki
# 2. 마크다운 파일 작성/수정
vim new-page.md
# 3. 푸시
git add .
git commit -m "Add new page"
git push
HTTPS로 푸시 (토큰 사용)
# 1. Personal Access Token 생성
# GitLab/Gitea → Settings → Access Tokens → api 스코프
# 2. 토큰으로 클론
git clone https://username:TOKEN@git.webpluss.net/sanjeok77/ShiftRing.wiki.git
# 3. 수정 후 푸시
git add .
git commit -m "Update wiki"
git push
# 4. 보안: 토큰 숨기기 (다음부터는 토큰 없이 푸시 가능)
git remote set-url origin https://username@git.webpluss.net/sanjeok77/ShiftRing.wiki.git
git config credential.helper store
Git 명령어 요약
git status: 변경 사항 확인git add .: 모든 파일 스테이징git commit -m "메시지": 커밋git push: 원격에 푸시git pull: 원격에서 가져오기
관련 문서
연락처
- 개발자: sanjeok77
- 이슈: https://git.webpluss.net/sanjeok77/ShiftRing/-/issues