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: 원격에서 가져오기

관련 문서


연락처