카테고리 보관물: 자작 앱 소개

Box Finder

제작동기

상자나 서랍에 잡동사니를 넣어두는 경우가 많습니다. 처음에는 무엇이 들어 있는지 알지만 시간이 조금 지나면 필요한 물건이 어디 있는지 모르게 됩니다. 다행히 찾는 경우도 있지만 찾느라 시간만 허비하는 경우가 있습니다. 이럴 때 넣어둔 물건을 등록해 두고 쉽게 찾을 수 있는 앱이 있으면 좋겠다는 생각으로 제작하게 되었습니다.

제작과정

이전에 제작했던 앱과는 다르게 DB 연동 부분을 변경했습니다. 기존에는 DB 연동 Helper 클래스를 따로 제작하거나 라이브러리를 이용했습니다. 이번에는 Room Persistence Library 를 이용해서 제작했습니다. Room Persistence Library는 DB 연동 부분을 추상화해서 작업의 생산성을 높여줍니다. 일종의 ORM(Object-relational mapping) Tool 역할을 한다고 할 수 있습니다. 실제 사용해 보니 처음에 익숙하지 않았던 부분과 Primary Key, Foreign Key 등을 마음대로 정의할 수 없어서 정확한 방법을 알아내느라 고생한 것을 제외하면 꽤 만족스러웠습니다.

개발언어는 Java가 아닌 Kotlin 으로 진행했습니다. 기존의 코드를 간결하게 해주고 여러가지 장점이 있어 선택하게 되었습니다. 하지만 작업을 진행하다보니 Java와 다른 부분이 있고 대부분 공개된 코드가 Kotlin 이 아니어서 변환작업에 시간이 더 소요되었습니다. 완전하게 학습이 되지 않다보니 잘못코딩을 해서 헤매는 경우도 있었습니다. 언어 자체로 보면 발전한 것은 맞지만 아직 널리 사용되지는 않고 있다고 느껴졌습니다.

카메라와 갤러리의 사진을 사용하다 보니 사용권한을 따로 허락을 받아야 하는 부분을 처리해야 했습니다. Android 6.0 Marshmallow 부터 적용되었고 별도의 추가 작업이 필요했습니다.

일단 물건이 들어있는 상자나 서랍의 사진과 제목 그리고 내용물을 등록합니다. 검색어를 입력하면 색상이 강조되어 어디에 들어있는지 쉽게 알수 있도록 제작했습니다.

등록화면
검색화면

다음 주소에서 확인하실 수 있습니다.

https://play.google.com/store/apps/details?id=jaeyoung.kim.boxfinder.free

Takt Time Calculator

제작동기

단순하고 반복적인 일을 할 때 한 단위 별로 시간이 얼마나 소요되는지 알아야 할 경우가 있습니다. 이럴 때 소요된 시간의 평균 시간을 알 수 있는 앱을 개발했습니다. 기본적으로 시작, 종료, 멈춤 기능이 있었습니다. 시작과 종료를 반복하면 시작/끝 시간을 누적하고 집계해서 평균시간을 표시하도록 제작되었습니다. 초 단위로 측정을 하게 되어 있어 간단하게 사용할 수 있는데 천분의 일초까지는 측정이 되지는 않았습니다. 기존의 앱은 정밀한 측정이 필요없을 때 사용할 수 있도록 그대로 두었습니다. 더 정확한 시간 측정을 할 수 있는 Takt Time Calculator 앱을 개발하게되었습니다. Takt Time이 앱의 기능과 가장 근접한 정의라고 생각되었습니다. 그래서 앱 이름 일부로 사용하게 되었습니다.

제작과정

이전에 개발했던 앱에서 측정되는 시간의 정밀도만 높이면 될 것이라고 생각했습니다. 시간을 측정할 때 Chronometer 클래스를 사용했는데 초단위까지만 지원한다는 것을 알게 되었습니다. 그렇다면 다른 클래스를 사용해야 할 것 같은데 마땅히 사용할 것이 없었습니다.

검색을 하다보니 필자와 같은 고민을 하는 사람들이 있다는 것을 알게 되었습니다. 친절하게도 Chronometer 클래스를 상속해서 천분의 일초까지 사용할 수 있게한 클래스들이 공개되어 있었습니다. 필자가 참조한 클래스는 다음 주소에서 확인하실 수 있습니다.

https://github.com/antoniom/Millisecond-Chronometer

공개된 클래스를 참조해서 천분의 일초까지 기록할 수 있도록 앱을 수정했습니다. 천분의 일초까지 표시하려고 하니 화면상의 위치를 조정하는 부분이 생각보다 어려웠습니다. 기존에 사용하던 LinearLayout, RelativeLayout 등을 사용하지 않았습니다. 그대신 ConstraintLayout 로 화면을 구성해서 조금 더 시간이 소요 되었습니다.

Takt Time Calculator 실행 화면

Takt Time Calculator 실행 화면

완성된 앱은 다음 주소에서 확인해 보실 수 있습니다.

https://play.google.com/store/apps/details?id=jaeyoung.kim.takttimecalculator.free