diff --git a/README.md b/README.md new file mode 100644 index 0000000..9d58ce3 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# 쉬운 가전 리모컨 (EasyAppliance) + +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.