본문 바로가기

IT/프로젝트 및 실습

안드로이드 어플리케이션 [알러빗가계부]




어플리케이션 이름 : 알러빗가계부



개발 기간 :  

 2018.1.12 ~ 2018.1.18



사용 기술 :


 ■ 개발 환경 : Windows7 64bit Professional + Android Studio 3.0.1

 ■ 개발 언어 : JAVA

 ■ 데이터 베이스 : Android sql lite

 ■ 레이아웃 : LinearLayout + GridView



기획의도 : 


별을 세는 것 보다는 돈을 세는 것의 관심 있는 필자의 친구 정양은 요즘들어 '김생민의 영수증'이란 TV프로를 재미있게 보고 있다고 하였다.

매날의 지출에 대해 얼마나 효율적으로 돈을 사용하고 있는 가와 앞으로 얼마나 계획적으로 사용할 수 있도록 (어느 기간까지 얼마를 사용하면 되는가)

등을 간단하게 평가를 할 수 있는 어플리케이션이 있으면 좋겠다고 필요하다고 하였다.


위와 같은이유로 조금 필자의 아이디어를 가미하여, 

지출에 대한 평가 항목을 '알러빗!!!', '그뤠잇!!!', '스튜핐!!!' 이라는 세가지 항목으로 나누어 그것을 달력형태로 시각적으로 보여줄 수 있도록 

한다면 어떨까 라는 기획의도로 만들었다.




[설명]

누적 예산액 : 

그날까지 사용할 수 있는 금액을 말한다. 만약 하루 예산을 10000원으로 잡았다면 1일날은 누적 사용액은 10000이고, 2일날 누적 사용액은 20000원이다.







  : 지출 상태가 예산에 맞게 상당히 효율적임을 뜻한다.

  : 지출 상태가 상당히 효율적이지는 않으나 합리적인 소비를하고 있음을 뜻한다.  

  : 지출 상태가 과소비하고 있는 경향이 있으므로, 소비에 관한 주의를 바람을 뜻한다.





구성화면 :




구성화면 : activity_main



구성화면 : activity_sub



위와 같이 단순하게 2개의 화면으로 이루어져 있다.



실행화면 : 




고찰 :


먼저 이번 개발에서 가장 비중있게 다루었던 부분은 캘린더 뷰(Calender View)를 직접 커스텀(custom)한 것과 데이터의 저장이였다.


안드로이드에 내장되어있는 캘린더 뷰를 이용하여 개발하려고 하였으나(꿀빨아보려고함)


실제로 각 텍스트나 아이템에 관한 부분의 색상이나, 뷰들로 인해 내장된 캘린더뷰를 사용하는 것보다 직접


커스텀하여 개발하는 것이 적합하다고 생각되었다.


허나 오랜만에 안드로이드 스튜디오와 JAVA를 다뤄보니 생각보다 까먹은 것들이 많아서, 삽질하는 시간이 길었다.


특히, 개발기간 중 3일은 Android Studio의 gradle파일 문제로 인한 빌드 문제로 소요되었는 데, 정말 울화통이 치밀어 오르는 시간이였다. 


추가적으로 어떠한 데이터베이스를 이용할 지 고민을 많이 했었는데,


mysql을 사용하지않고 sql lite를 사용하기로 했다.


그 이유는 사실은 mysql 같은 데이터 베이스 서버는 많이 다뤄보았고,


sql lite는 실제로 다뤄보지 않았다.


배포목적으로 만든 어플리케이션도 아니고, 본인의 지출내역이 공개되는 것이 싫다고 한 정양의 말을 토대로 


그냥 로컬 데이터베이스인 sql lite를 사용하였다.


처음다뤄봐서 겁먹었던 것과 달리 일반적인 데이터서버 쿼리문과 데이터 처리를 다루는 DBHELPER라는 클래스를 이용하여 어렵지 않게 구현하였다.


그 외에는 역시나 데이터는 만든 적든 컬럼이 하나 늘어나면 늘어날수록 처리해야하는 일들이 기하급수적으로 많아져


개발이라기 보다는 인형눈알 붙이는 것과 같은 노가다작업의 반복이였다. ㅂㄷㅂㄷ



아쉬운 점은 


사실 디자인 부분에 있어서 나름 신경쓴다고 신경썼지만 디자인이 많이 아쉽고


(데드풀 아이콘은 어차피 한사람만 쓰는 것이니까 대중적인 UI 원칙은 신경쓰지 않음)


추가적으로 실제로 지출을 입력해야 한다는 것이 아쉬웠다.


현금 결제같은경우는 상관없지만 요즘은 네이버 페이나 카드 같은 결제 수단을 사용하면,


실제로 결제완료 sms가 오거나 결제를 다룰 수 있는 데이터가 형태적으로 만들어진다는 것을 알고있다.


만약 그런정보를 자동으로 입력되게끔 한다면 하루 사용한 금액을 손수 입력할 필요가 없게될 것이다.


콘텐츠 프로바이더를 이용하여 메세지를 분석하여 결제완료 형식의 문자가 온다면 거기서 정보만 추출하여 요소를 갱신시켜주면 될 것이다.


단순 sms 문자는 그렇게 하면 될것이나 네이버 페이나 이외의 다른 결제수단은 구현 방법이 전혀 생각도 안나서 고민도 안해봤을 뿐더러


(물론 방법은 있을것이라 믿는다)


허나 현재 공부하고 있는 머신러닝에 대해 책 하나는 일단 끝마쳐야 하기에 간단하게 사용할 어플에 그러한 노오오오오오력을 들이고 싶지 않았다.


너무 이론적인 것만 공부하는 것과 달리 실제로 프로젝트를 해서 가뭄의 단비같은 시간이였다. 


부들부들했지만 재밌었다.