- 기여자: 이승진, 조준호
- 기존 알람 앱에 미션 시스템과 벌칙 시스템을 결합한 알람 앱을 개발한다.
- 늦잠으로 인하여 좋지 않은 상황이 발생하는 것을 방지한다.
- 잠을 깨는 데 도움 주는 미션을 통해 재 취침을 방지한다.
- 벌칙을 통해 정시 기상에 대한 경각심을 높여준다.
- 최신 OS에서도 정상적으로 사용할 수 있도록 최적화한 앱을 개발한다.
- SNS 및 SMS를 활용한 벌칙 알람 애플리케이션인 '알람런(Alarm Run)'의 한계
- 터치 한 번만으로 알람을 끌 수 있어 다시 취침할 가능성이 크다.
- 개발이 중단되어 최신 OS에서는 알람 기능을 사용할 수 없다. (오류 발생 및 강제종료)
- 2022년 1월 기준, ESD 점유율 1위인 Google Play에 등록되어 있지 않다.
- '알라미(Alarmy)'와 같은 미션 알람 애플리케이션은 지속적으로 다운로드 되고 있음(Google Play 기준)
- 벌칙 기능과 미션 기능을 결합한 알람 애플리케이션은 존재하지 않음
- 미션 시스템과 벌칙 시스템을 적절하게 결합한 알람 애플리케이션을 사용함으로써 시너지 효과가 기대됨
Android 8.0(Oreo) 이상 버전에 최적화됨.
- 알람 객체
- 알람 설정 화면을 통해 알람 추가 시, 입력한 값에 따라 '알람 객체'가 생성된다.
- 알람 설정 화면을 통해 알람 수정 시, 변경한 값에 따라 '알람 객체'의 필드가 변경된다.
- 알람 실행 과정
- 메인 화면의 리스트에 저장된 '알람 객체'는 '백그라운드 서비스' 내에 상주하는 알람 매니저에 의하여 관리된다.
- 알람 시간이 되면 '알람 객체' 정보를 '알람 리시버'에 전달한다.
- '알람 리시버'는 전달받은 '알람 객체'를 알람 ON 화면의 Activity에 전달하고, 알람 ON 화면을 호출한다.
- 미션 및 벌칙 수행
- 미션 활성화 시, 시작 버튼을 통해 미션 화면을 호출한다.
- 벌칙 활성화 시, '타이머'를 불러와 작동시킨다.
- '타이머' 시간 초과 시, 벌칙 화면을 불러오고 '벌칙'을 수행한다.
제목 | 내용 | 설명 |
---|---|---|
hour | int | 알람 시간(시) |
minute | int | 알람 시간(분) |
week | boolean[] | 요일별 알람 활성화 여부(일~토) |
name | String | 알람 이름 |
ringtoneUri | Uri | 알람음(Audio 파일 식별자) |
ringtoneVolume | int | 알람 음량(0~100) |
vibration | boolean | 진동 출력 여부 |
mission | boolean[] | 종류별 미션 활성화 여부 |
penalty | boolean[] | 종류별 벌칙 활성화 여부 |
phone | String | 벌칙 시 문자메시지 발신번호 |
메인 화면(알람 리스트)
- 좌: 권한 활성화 후 앱을 처음 실행할 때 또는 리스트에서 모든 알람을 삭제하였을 때
- 우: 알람을 추가 또는 수정할 경우 알람 리스트에 반영
- 알람 추가: [추가] 버튼 누르기
- 알람 수정: 리스트에서 수정을 원하는 알람 항목 누르기
알람 추가 및 수정
- 좌: 알람 설정 화면(시간, 요일, 알람 이름, 알람음, 미션, 벌칙)
- 우: [♬] 버튼(알람음 선택 버튼)을 누르면 위와 같이 알람음 선택기 호출
모든 요일 토글 버튼(일~토)을 비활성화하면 알람이 OFF됨(상단의 [알람 끄기] 버튼이 이를 한번에 수행함)
알람 ON 화면
- 좌: 기본적인 알람 ON 화면(미션과 벌칙을 비활성화 하였을 경우)
- 우: 미션을 활성화하면[미션 시작하기] 버튼이 추가된다. 벌칙을 활성화하면 상단에 타이머 남은 시간이 출력된다.
타이머 시간은 150~300초 사이가 적합할 것으로 생각됨
미션 화면
- 좌: 사자성어 퀴즈 미션 예시
- 우: 수학(사칙연산) 퀴즈 미션 예시
[미리보기 종료] 버튼은 알람 설정 화면에서 미리보기를 하였을 경우에만 활성화된다. 실제 알람 미션 수행 시에는 활성화되지 않는다.
벌칙 화면
- 좌: 타이머 시간 초과 시, 알람 설정 시 입력한 연락처로 문자메시지 전송
- 우: 실제로 문자메시지가 전송되었음을 확인할 수 있음
미션 수행 중 타이머 시간을 초과하기 전에 버튼 입력이 감지되면 타이머가 처음부터 재시작된다.
-
정확한 알람 시스템을 위해 필요한 개선사항
- 애플리케이션 사용자 임의 종료 방지(전원 버튼, 홈 버튼, 백 버튼 등의 입력 차단)
- 기기를 재시작한 후 애플리케이션을 실행하지 않아도 자동으로 백그라운드 서비스 시작
- 알람 리스트를 저장하기 위한 파일 관리 시스템 구현
-
사용자의 편의성 측면에서 필요한 개선사항
- 다양한 미션 시스템 구현(QR/바코드, 모션 인식, 다양한 주제의 퀴즈/퍼즐 등)
- 다양한 벌칙 시스템 구현(SNS 게시글 업로드, 갤러리 이미지 전송 등)
- 벌칙 설정 시, 사용자 자유도 향상(최대 연락처 수 증가, 전송할 내용 입력하기 등)
- 벌칙 설정 시, 기기에 저장된 연락처 연동하기
- 요일 뿐만 아니라 특정한 알람 날짜를 선택할 수 있도록 캘린더(달력)와 연동하기