얼마 전 자기계발 관련한 책을 읽다가 흥미로운 부분을 발견했습니다. 먼저 자기가 생존할 나이를 자기만의 기준으로 정합니다. 그 다음 남은 시간을 보여주는 프로그램을 PC에 설치해서 항상볼 수 있도록 했다는 내용이었습니다. Life Clock 혹은 Death Clock 이라고 불리우는 것 같았습니다.
언급된 프로그램을 검색해 보았으나 필자가 생각했던 형태는 아니었습니다. 앱도 검색을 해 보았는데 비슷한 것은 있었습니다. 하지만 필자의 생각과 일치하는 앱은 없어서 직접 제작해 보기로 했습니다. 앱 이름은 인생 시계로 정했습니다.
제작
인생의 남은 시간을 계산할 때 여러가지 요소가 있었습니다(수면, 기다리는 시간…). 간단하게 생일과 내가 살고자 하는 나이(과학적인 바탕이든 그냥 정한 것이든…)를 기준으로 계산해서 표시하도록 작업했습니다. 설정화면에서 생일과 살고자 하는 나이를 선택하도록 했습니다.
생일, 살고자 하는 나이 설정
설정된 정보를 가지고 앞으로 남은 연, 월, 일, 시간, 분, 초가 나타나도록 작업했습니다. 생각해 보니 얼마나 살아왔는지의 정보도 보여주면 좋을 것 같았습니다. 아래 부분에 조금 작게 나타나도록 했습니다. 또 살아온 시간이 어느 정도의 비율인지도 궁금해서 같이 나타나도록 추가했습니다.
남은 시간, 살아온 시간 및 비율 표시
앱을 실행하면 볼 수 있지만 항상 그럴 수는 없을 것 같았습니다. 그래서 홈 화면에 위젯형태로 추가할 수 있도록 했습니다. 모두 보여주기에는 공간이 부족해서 남은 연, 월, 일이 표시되도록 했습니다. 위젯을 터치하면 앱이 실행되어 더 자세한 시간을 확인할 수 있도록 했습니다.
홈 화면에 위젯을 추가한 모습
실제 생일과 나이를 입력하고 보니 생각보다 많은 시간을 살아왔고 남은 시간이 많지 않다는 것이 느껴졌습니다.
각자의 느낌은 모두 다르겠지만 인생을 열심히 잘 살아가는데 조금이라도 동기부여가 되었으면 좋겠습니다.
앱의 기능에 따라서 날짜를 선택해야 하는 경우가 있습니다. DatePicker 를 사용하면 되는데 기본적으로 달력형태로 나타납니다. 과거의 날짜를 선택해야 하는 경우 달력형태는 여러번 이동해야 해서 적합하지 않습니다. Spinner 형태로 변경하는 방법을 알아보겠습니다. 그리고 DatePicker 가 표시되었을 때 버튼이 보이지 않는 문제도 같이 다루어 보도록 하겠습니다.
DatePicker Spinner 형태로 변경
이 글에서는 DatePicker 를 xml 에 추가하는 형태가 아닌 소스코드에 추가한 경우로 한정해서 알아보도록 하겠습니다. 먼저 코드를 보겠습니다.
7, 9~11 행을 추가합니다. 앱을 실행하고 버튼을 터치해보면 Spinner 형태의 달력이 나타나는 것을 확인할 수 있습니다.
Spinner 형태로 나타난 DatePicker
버튼이 보이지 않는 문제
그런데 대화상자의 아래쪽에 공백이 많고 있어야 할 확인, 취소 버튼이 보이지 않는 것을 알 수 있습니다. 테마와 관련해서 나타난 현상인 것으로 추측되는데 글자의 색상이 대화상자의 배경색과 동일해서 보이지 않게 된 것입니다. 대화상자의 아래쪽을 터치해 보면 버튼 자체는 동작한다는 것을 알 수 있습니다.
테마쪽 부분을 변경해 보았으나 버튼이 보이지 않는 문제가 해결되지 않았습니다. 결국 다음의 코드를 추가해서 보이게 되도록 했습니다.