feat: EasyAppliance app v0.3.0 (SmartThings elderly-friendly remote)

This commit is contained in:
tkrmagid
2026-08-05 14:37:31 +09:00
parent a8eccd2c68
commit 39a4543640
46 changed files with 2719 additions and 2 deletions

View File

@@ -1,4 +1,51 @@
# washing_machine_app
# 쉬운 가전 리모컨 (EasyAppliance)
세탁기 앱 저장소입니다. (edit test: 2026-08-05, 저장된 Gitea 토큰으로 푸시 검증)
SmartThings 가전(세탁기·에어컨 등)을 어르신도 쉽게 쓸 수 있도록 만든 안드로이드 앱.
큰 글씨·고대비·큰 버튼의 직관적 UX로, 등록된 기기 중 한 대를 골라 상태 확인과
켜기/끄기, 시작 매크로를 제공합니다.
## 주요 기능
- 한 대 선택 조작: 관리자 화면에서 조작할 기기 1대를 선택
- 숨김 관리자 진입: 화면 위쪽 양쪽 모서리를 동시에 약 1.5초 길게 누르면 진입
(어르신이 실수로 들어가지 않도록)
- 큰 상태 표시: 운전 중/꺼짐, 남은 시간, 에어컨 온도 등
- 관리자에서 표시 정보·기능 on/off, 기기 이름·사진 변경(기본 이미지 + 직접 추가)
- 시작 매크로: "시작"을 누르면 물 온도·수위 등 설정을 적용한 뒤 자동 시작
- 연결 끊김 시 화면 중앙 큰 경고창 + 다시 연결하기(백그라운드 재시도, 복구 시 자동 해제)
- 설정은 저장되어 앱을 껐다 켜도 유지, 앱 복귀/주기적 폴링으로 최신화
- 폴드/플립 대응 반응형 레이아웃, 삼성 뒤로가기 지원
## SmartThings 연결
관리자 화면에서 SmartThings Personal Access Token을 입력하면 실제 기기 목록/상태/제어에
연결됩니다. 토큰이 없으면 샘플(목업) 데이터로 동작합니다. 토큰은
https://account.smartthings.com/tokens 에서 발급합니다.
## 빌드
Android SDK와 JDK 17+ 필요.
```bash
./gradlew :app:assembleDebug # 디버그 APK
./gradlew :app:testDebugUnitTest # 단위 테스트
```
릴리즈 서명 빌드는 프로젝트 루트에 `keystore.properties`(gitignore됨)가 있을 때만
서명됩니다:
```properties
storeFile=/절대/경로/키스토어.keystore
storePassword=...
keyAlias=...
keyPassword=...
```
```bash
./gradlew :app:assembleRelease
```
## 기술 스택
Kotlin, Jetpack Compose(Material3), DataStore, Retrofit + kotlinx.serialization, Coil.
minSdk 24 / targetSdk 35.