'주열이 형이 선물해준 안드로이드 마케팅에 관련 된 책'입니다.
이 글을 빌어(
사실, 처음에는 '혼자 쓸껀데?, 마켓에?, 내가?, 올려?, 이걸?' 뭐 이런 느낌이었습니다.
만!
뭔가 하다 보면 욕심도 생기고 재미도 생기면서, 시작할 때와는 다른 생각을 하게 되고, 확장되는 생각은 멈출 수가 없었습니다. 최근에 굉장한 행복?을 느끼고 있는 것 또한 사실입니다. 나도 '무엇'인가 할 수 있구나! 라는 생각을 하고 있으니까요. 한때(대학생) 저는 농담 1%를 가미해 스스로를 "
어쨋거나 우여곡절 끝에 앱을 출시하게 되었습니다.
과정은 이렇습니다.
1. 왜?!
- 여친느님의 친구 부부가 종각에서 일을 합니다.- 종종 맛집을 찾으러 다닐 때, 맛은 못 보고 그 동네 지리만 구경하다 온 경험이 있습니다.
- '서울열린데이터광장'에 주차장 정보가 있습니다.
2. 어떻게?
- 무려 1달, 주 5일, 하루 8시간 = 160시간(대략)을 공부함- 대학 교과 과정으로 따졌을 때 '1 과목 / 1 학기' = 60시간(대략 완전 이행 시)
- 나는 약 3 과목을 1 달 동안 배웠음
- 나만 쓸 생각으로 기획 -> 쓸데없는 기능은 다 빼고, 핵심 사항만 표현
3. 기본 구상
- 지도를 띄워 주차장을 표시한다.- 내 위치 주변을 탐색한다.
- 목적지 위치 주변을 탐색한다.
- 소스에 반드시 '주석'달기
4. 제작
- 최초 구글 맵의 이해없이 무작정 달려들어 3일이란 시간을 낭비하고 맵을 띄우는 방법을 알아냈습니다. 이전의 버전인 API V1 버전은 사용하지 않고 API V2 버전의 맵을 사용했습니다. 책을 통해 구현해 낸 것이 아니라 온전히 구글과 스텍오버플로를 통해 'Ctrl+ㅊ&ㅍ'을 사용하였습니다. 몇몇은 그렇게 붙여 넣는 것도 실력이 좋은 거라며 칭찬해줬지만, 다른 개발자 들이 두루의 블로그에서 'Ctrl + ㅊ&ㅍ'을 사용하는 것을 목표로 달릴 "생각!"입니다. 생각..:)- 제가 맵 위에 마커를 통한 '목표지점 보여주기'형식의 재료는 오로지 '서울열린데이터광장'에서 제공해 준 '주소'밖에 없었습니다. 어떻게 하면 '주소'를 '위도,경도'로 변환할 수 있을까 생각하며 구글링을 했습니다. 이때 했던 생각은 '내가 구현하려는 모든 기능은 가능하다' 였던 것 같습니다. 또 하루를 투자하여 기능을 구현해 냈습니다.만, 구글에서 만든 일종의 제어장치? 때문에 하루에 2500건 이상의 서버로의 요청은 하지 못하는 관계로 다음날을 기약했습니다.
- 이제 원하는 주소의 목록(JSON)과 좌표(txt)를 얻었습니다. 이제 두 파일을 합쳐 하나의 DB로 형성하는 일만 남았습니다. 파일, 버퍼스트림, 토큰라이저, 서브스트링 등의 기능을 마구잡이로 사용해본 결과 하루만에 두 파일을 내가 원하는 형태로 만들 수 있었습니다. 드디어 DB의 최종 구현이 되었습니다.
- 이제 최종 구현된 DB의 '경도와 위도'를 이용해 맵 위에 표시하는 일만 남았습니다. 이것을 구현함으로 써 기본 구상의 90%는 달성한 것과 마찬가지 입니다. 기본적인 구상을 달성하는 데 만도 1주일이란 시간이 걸렸습니다. IT직군이 '왜 박봉인지'는 모르겠으나 '왜 야근을 하는가'에 대한 대답을 이해할 수 있는 시기였습니다. 구글 API 개발자 페이지를 참조해 무난하게 하루동안 맵 위에 주차장 위치를 찍어내는데 성공했습니다. 그리고 다음 날 일반/버스 전용/ 이륜차 전용 등의 아이콘도 추가하게 되었습니다.
- 마지막으로 내 위치 주변 반경을 통해 맵을 축소/확대 하고 목적지 위치를 검색해 그 주변의 맵을 확대/축소 하기만 하면 됩니다. 시간의 흐름 상 이미 구현은 해 놨지만 후반부에 이를 언급한 이유는 '까먹어서'입니다. 다시 중간에 끼워넣기가 번거롭고 글의 분량도 이렇게 늘릴 수 있지 않나;; 생각합니다. ㅎ ㅔㅎ ㅔ
5. 완성
- 가장 먼저 든 생각은 '왜 나는 쓰레기를 만들었나' 하는 것입니다..ㅠㅠ 그만큼 형편없어 보였습니다. '처녀작 이니까', '1달 공부로 얼마나 하겠어' 따위의 생각은 하지 않았습니다. 너무나 초라해 보였습니다. 하지만 '다듬으면 되지'라는 생각으로 눈물을 머금고 다듬기에 들어갑니다., 만! 역시나 UI는 여성분들의 감각을 따라갈 수 없음을 다시 한 번 절실하게 느끼게 됩니다.(6. 문제점(대부분 테스트 & 테스터 의 중요성)
- 첫째. 맨 처음 화면에서 버튼을 누르면 '맵 로딩하는 시간& 주차장 마킹하는 시간'동안 '멈춰 보이는 현상'을 개발자인 저는 로그를 보면서 기다렸지만 다른사람 눈에는'멈춤'현상이 될 수 있다는 것을 인희형이 말씀해 주셔서 바로 고쳤습니다.
= 해결은 다중 스레드를 통한 상태 진행 바를 통하여 했습니다. 시각적으로 안정감을 주고 뭔가 멈추지 않고 작동되고 있다는 인상을 주면 충분했습니다.(
- 둘째. '종각'을 치면 '미국 플로리다 우정의 종각'으로 이동되는 현상을 여친님께서 발견해 주셨습니다. 앞서 '왜?' 부분에서 언급했듯이 종각에 종종 갑니다. 이 계기를 통해 플로리다의 우정의 종각에 한번 쯤 가보고 싶어졌습니다. ^^;
= 해결은 '주소 검색창'에서 검색된 순간 '대한민국'이 아니면 "주소를 다시 입력하라"는 토스트를 띄움으로 써 땜빵해 놨습니다. 이 글을 쓰기 약 21시간 전에 더 좋은 아이디어가 생각났으나 집에선 해결할 수 없어서, 월요일 아침에 해결하기로 마음 먹었습니다.
- > 해결방법 : 주소 검색창에서 받아오는 스트링에 +"대한민국"을 넣으면 깔끔하게 해결될 것으로 기대하고 있습니다.
- 셋째. GPS가 켜져 있지 않으면 강제로 종료되는 현상
= 구글을 통해 GPS가 켜져 있지 않으면 설정 페이지로 이동하도록 넣어놨고, 혹시라도 사용자의 위치를 잡지 못하면 강제로 '독도'로 보내지게 설정해 놨습니다.(
- 넷째. 분명 기획상에는 3초 또는 5미터의 거리 변화가 있을 때 마다 지도위에 본인의 위치를 재 설정해서 보여줘야 하는데 정확하게 구현이 안됨.
= 실험을 통해 구현을 해 봤지만 이동시의 주소만 변경되고 위치는 잘 변경되지 않는 것으로 보였습니다. 이건 기회가 되면 차차 구현해볼 생각입니다. 이것만 제대로 작동하게 되면 '나만의 운동 앱'을 만들 수 있을 것 같습니다. 자전거를 타는 수많은 사람들을(
- UI의 허접함
= 버튼, 텍스트, 텍스트 입력창 모두 안드로이드가 제공하는 기본 UI를 사용하다 보니 약간은 허접하게 보이는게 사실입니다. 검색 버튼을 아이콘으로 사용하는 이미지로 대체한다던지 등의 개선점이 많이 있지만 시간이 남으면 할 생각입니다. 어짜피 나만 쓰니까요 :)
이런 과정을 거쳤지만, 결국에는 만족도가 높지는 않은 앱이 되었습니다. '첫 술에 배부르랴' 라는 의미보다는 '기능인'의 관점에서 생각하고 싶은 것이 이번 'N+1번째 삶'에서의 '의지'이기 때문입니다.
끝으로, 사진으로 실행화면을 공개하고 마치겠습니다.(+ 깨알 홍보)
댓글 없음:
댓글 쓰기