미션알람 — 문제를 풀어야 꺼지는 알람시계
확실히 깨워주는 알람 구구단·퀴즈 미션을 풀어야 꺼지는 알람. 끄고 다시 잠드는 걸 막아줍니다.

알람을 껐는지도 기억 안 나는데 눈 떠보니 지각이었던 적, 있으시죠. 저는 그게 반복돼서 이 앱을 만들었습니다.
미션알람은 알람을 끄려면 문제를 먼저 풀어야 하는 알람시계입니다. 비몽사몽 상태로는 못 푸는 문제라서, 손이 먼저 알람을 꺼버리고 다시 눕는 일이 생기지 않습니다.
■ 미션 16종
구구단 · 두 자리 × 한 자리 · 두 자리 × 두 자리 · 덧셈뺄셈 / 오늘 날짜 입력 · 요일 맞추기 / 문장 따라 쓰기 · 거꾸로 타이핑 / 기억력 숫자 · 틀린 숫자 찾기 · 순서대로 탭 · 짝 맞추기 / 객관식 퀴즈 · 가위바위보 · 흔들어 깨우기 · 걷기
'랜덤'으로 두면 매일 다른 문제가 나옵니다. 시중 알람 앱을 몇 개 써봤는데 미션이 한두 종류뿐이라 며칠이면 손이 외워버리더군요. 그게 이 앱에서 미션을 16종까지 늘린 이유입니다.
■ 난이도는 문제 수로
1문제만 풀고 가볍게 끌 수도, 10문제를 다 풀어야 꺼지게 할 수도 있습니다. 객관식 퀴즈만은 하나라도 틀리면 처음부터 다시 시작합니다. 찍어서 넘어가는 걸 막으려고 이 미션에만 규칙을 다르게 뒀습니다.
■ 알람 기본기
· 요일별 반복 — 평일만, 주말만, 매일, 한 번만
· 빠른 알람 — 지금부터 5분·10분·30분·1시간 뒤
· 다시 울림 — 간격 3·5·10분 중 선택, 최대 횟수 지정
· 알람음 11종 — 종소리, 마림바, 피아노, 새소리, 사이렌 등
· 볼륨과 진동을 따로 조절
■ 만들면서 가장 오래 붙잡은 것
문제 난이도가 아니라 "알람이 진짜로 울리는가"였습니다.
소리는 서서히 커집니다. 최대 볼륨으로 갑자기 시작하면 심장이 먼저 놀랍니다. 그래서 작은 소리에서 시작해 8단계에 걸쳐 약 10초 동안 올라가도록 했습니다. 놀라서 깨는 것과 깨어나는 것은 다릅니다.
폰을 껐다 켜도 알람이 남아 있습니다. 안드로이드는 재부팅하면 예약해 둔 알람이 사라집니다. 그래서 부팅을 감지해 저장된 알람을 다시 예약하는 처리를 따로 넣었습니다.
잠금화면 위로 바로 뜹니다. 알람이 울릴 때 화면을 켜고 잠금화면 위에 전체화면으로 미션을 띄웁니다. 잠금을 풀고 앱을 찾아 들어가야 한다면 그사이에 다시 잠들 테니까요.
반복 알람은 울리는 즉시 다음 회차를 예약합니다. 오늘 알람을 끄지 않고 넘어가도 내일 것이 살아 있습니다.
최신 안드로이드는 정확한 시각 알람에 별도 권한이 필요합니다. 그 권한이 없으면 알람이 몇 분씩 밀릴 수 있어서, 설정에서 바로 허용할 수 있게 안내를 넣어뒀습니다.
■ 그 밖에
· 12개 언어를 앱 안에서 바로 바꿀 수 있습니다
· 설치하고 바로 시작할 수 있습니다
· 광고 제거 상품을 구매할 수 있습니다
확실하게 일어나야 하는 날, 확실하게 깨워 드립니다.
메이커 노트 — 이렇게 만들었어요
알람을 끈 기억조차 없이 지각한 아침이 반복돼서 만들었습니다.
시중 앱을 몇 개 써보니 미션이 한두 종류뿐이라 며칠이면 손이 외워버리더군요. 문제를 푸는 게 아니라 손가락이 순서를 기억해서 누르는 상태가 됩니다. 그래서 미션을 16종으로 늘리고 랜덤 옵션을 넣어, 매일 다른 문제가 나오게 하는 데 집중했습니다.
만들면서 제일 오래 붙잡은 건 문제 난이도가 아니라 "알람이 확실히 울리는가"였습니다. 안드로이드에서 알람 앱은 생각보다 취약합니다. 재부팅하면 예약이 통째로 사라지고, 절전 기능이 시각을 미루고, 최신 버전은 정확한 시각 알람에 별도 권한까지 요구합니다. 결국 부팅 감지 후 재예약, 절전 상태에서도 깨우는 예약 방식, 권한이 없을 때의 안내를 각각 따로 처리해야 했습니다. 이 부분이 전체 작업의 절반쯤 됐습니다.
소리에서도 하나 바꿨습니다. 처음엔 설정한 볼륨으로 바로 울리게 했는데, 직접 써보니 깨는 게 아니라 놀라더군요. 작은 소리에서 시작해 8단계로 약 10초에 걸쳐 올라가도록 고쳤습니다.
Flutter로 만들었고 12개 언어를 지원합니다. 기능을 넓히기보다 '아침에 확실히 깨운다'는 한 가지를 제대로 하는 쪽으로 방향을 잡았습니다.
카테고리: 유틸리티
태그: #알람-알람시계-미션알람-기상알람-지각방지-구