Files
washing_machine_app/README.md

2.0 KiB

쉬운 가전 리모컨 (EasyAppliance)

SmartThings 가전(세탁기·에어컨 등)을 어르신도 쉽게 쓸 수 있도록 만든 안드로이드 앱. 큰 글씨·고대비·큰 버튼의 직관적 UX로, 등록된 기기 중 한 대를 골라 상태 확인과 켜기/끄기, 시작 매크로를 제공합니다.

주요 기능

  • 한 대 선택 조작: 관리자 화면에서 조작할 기기 1대를 선택
  • 숨김 관리자 진입: 화면 위쪽 양쪽 모서리를 동시에 약 1.5초 길게 누르면 진입 (어르신이 실수로 들어가지 않도록)
  • 큰 상태 표시: 운전 중/꺼짐, 남은 시간, 에어컨 온도 등
  • 관리자에서 표시 정보·기능 on/off, 기기 이름·사진 변경(기본 이미지 + 직접 추가)
  • 시작 매크로: "시작"을 누르면 물 온도·수위 등 설정을 적용한 뒤 자동 시작
  • 연결 끊김 시 화면 중앙 큰 경고창 + 다시 연결하기(백그라운드 재시도, 복구 시 자동 해제)
  • 설정은 저장되어 앱을 껐다 켜도 유지, 앱 복귀/주기적 폴링으로 최신화
  • 폴드/플립 대응 반응형 레이아웃, 삼성 뒤로가기 지원

SmartThings 연결

관리자 화면에서 SmartThings Personal Access Token을 입력하면 실제 기기 목록/상태/제어에 연결됩니다. 토큰이 없으면 샘플(목업) 데이터로 동작합니다. 토큰은 https://account.smartthings.com/tokens 에서 발급합니다.

빌드

Android SDK와 JDK 17+ 필요.

./gradlew :app:assembleDebug     # 디버그 APK
./gradlew :app:testDebugUnitTest # 단위 테스트

릴리즈 서명 빌드는 프로젝트 루트에 keystore.properties(gitignore됨)가 있을 때만 서명됩니다:

storeFile=/절대/경로/키스토어.keystore
storePassword=...
keyAlias=...
keyPassword=...
./gradlew :app:assembleRelease

기술 스택

Kotlin, Jetpack Compose(Material3), DataStore, Retrofit + kotlinx.serialization, Coil. minSdk 24 / targetSdk 35.