하루가 커밋으로 남는다면
개발자는 하루를 커밋 기록으로 돌아볼 수 있습니다. 언제 무엇을 했는지가 시간순으로 남고, 잔디를 보면 꾸준했던 날과 쉬었던 날이 한눈에 보입니다. LifeCommit은 이 방식을 스마트폰 사용에 옮긴 개인 기록 앱입니다. 어떤 앱을 언제 얼마나 썼는지가 커밋으로 쌓이고, 잔디(Contribution Graph)와 Git 그래프로 보여 줍니다.
GitHub 저장소는 공개되어 있고, 첫 버전(v0.1.0)의 APK는 Releases에서 받을 수 있습니다.
무엇을 보여 주나
- 오늘: 사용 시간, 상위 앱, 가장 오래 쓴 앱을 요약하고 하루를 라이프 그래프로 그립니다. 커밋을 누르면 자세한 내용을 보고, "오늘의 한 줄"로 메모 커밋도 남길 수 있습니다.
- 주·월·연: 기간별로 가장 많이 쓴 앱과 브랜치 통계를 봅니다. 월과 연에서는 잔디도 함께 표시됩니다.
- 브랜치: 앱을 web, media, sns, game, work, life, etc, system 브랜치로 나눕니다. 분류를 바꾸면 과거 기록까지 함께 바뀝니다.
- 터미널:
git log,git search <키워드>같은 명령으로 기록을 조회합니다.
개인정보를 먼저 설계했습니다
사용 기록은 민감한 정보라서, 기능보다 데이터가 어디에 머무는지를 먼저 정했습니다.
- 공개 빌드는
INTERNET권한을 선언하지 않습니다. 기록은 기기 밖으로 나가지 않습니다. - 기록은 기기 안 SQLite에 SQLCipher로 암호화해 저장하고, 키는 Android Keystore가 보호합니다.
- 화면 내용, 입력한 글자, 메시지는 읽지 않습니다. 공개 빌드가 기록하는 것은 어떤 앱이 언제 앞에 있었는지뿐입니다.
- 요청하는 권한은 사용 정보 접근, 부팅 완료 수신, 알림 전송 세 가지입니다.
JSON 백업 파일은 암호화되지 않으니, 내보낸 파일은 직접 안전한 곳에 보관해야 합니다.
한계도 적어 두었습니다
디지털 웰빙과 숫자가 다를 수 있습니다. 화면을 끈 채 음악만 듣는 시간처럼 앱이 화면에 떠 있지 않은 시간은 세지 않습니다. 절전 기능이나 강제 종료로 수집이 끊긴 구간은 지어내지 않고 "수집 확인 불가"로 표시합니다. 직장 프로필과 보안 폴더의 앱은 수집되지 않습니다. 자세한 경우는 README의 "알아 두실 점"에 정리했습니다.
설치하기
Releases에서 LifeCommit-oss-<버전>.apk를 받아 설치합니다. 릴리스 노트에 APK의 SHA-256과 서명 인증서 지문이 있으니 확인해 보세요. 설치 뒤에는 사용 정보 접근 권한을 켜고, 화면을 한 번 껐다 켜면 기록이 쌓이기 시작합니다. 설치 전의 사용 기록은 가져오지 않습니다.
위치, 통화, 메신저 답장까지 기록하는 확장판 LifeCommit+도 있지만, 민감한 권한이 필요해서 APK로는 배포하지 않고 소스 빌드로만 제공합니다.
피드백
피드백이나 버그는 GitHub Issues로 남겨 주세요.
