티스토리 뷰




기술적인 애기는 별로 없다. 코드는 솔직히 그냥 그렇다. 그래도 이건 첫 시작이니만큼 경험에 대한 이야기. 첫 세팅에 대한 이야기. 첫 경험에 대한 이야기를 하고자 한다. 


프로토타입으로 시작되었지만. 

어 떻게 시작되었는지는 가물가물 한것 같다. 그냥 늘 그렇듯 몇개의 프로토타입중 하나겠거니 하는 식으로 만들었었고, 실제로 정대리와 나는 일년에 큰 프로토타입 몇개를 만들었다 부수었다를 반복하는것 같다. 그 시점에는 앱을 출시하고 차기 버전을 위한 아이디어를 정리하고 있을거라고 생각하진 않았다. (어떻게 보면 지금의 것도 별거 아니다.)

의견이 맞았던것 같다. 나 역시 자주 이마트에서 생수나 세제 같은것들을 사먹으면서 기획 상품이나 오반장(이마튼의 1일특가같은.)을 보면서 구매하곤 했으니까. 그리고 이마트 말고도 홈플러스나 롯데마트 같은것들도 그런것들이 있다고 확인이 되었고 정대리님이 서버쪽 작업을 한뒤, 앱 프로토타입 작업을 했다. 



웹보다 앱을 선택한 이유는 무엇일까? 

여 러가지 이유가 있겠지만, 크게 보면 2가지였다. 나와 유대리가 모바일에 대한 아주 약간의 경험(비직업적 경험)을 가지고 있다는점. 이건 어떻게 보면, 강점인데, iOS 와 Android 플랫폼 각각을 해봤다는 것은 동시에 작업이 가능하다는 것 같다. 다른 하나는 단연 디자인의 부재였다. 정확히는 디자이너의 부재인다. 웹의 작업은 상대적으로 모바일보다는 디자인적인 요소가 화면사이즈가 크다보니 고려해야하는 부분이 많다. 그리고 iOS 에서 제공하는 프레임워크들을 이용하는 일정 수준이상의 퀄리티가 가능하다고 생각했다.(사실 이건 좀더 좋은 앱이 되기 위해서는 극복해야하는 한계) 사실 이건 생각이 아니라, INDF 가 그동안 삽질을 해오면서 얻은 경험의 결과라고 하고 싶다. 어찌됐든 우린 앱을 선택했다. 



싸다9, 9개로의 진화 

어떻게 보면 처음의 시작은 몇개의 마트에서 시작했던것 같다. 내가 이 주제를 가지고 시작한 가장 결정적인 이유는, “이마트를 내가 사용하고 있다” 라 는 경험에서의 출발이었다. 내가 만든 대부분의 앱들(돈을 받지 않고) 내가 불편해서 만든앱들이 대부분이었다. 그게 가장 큰 동기이기 떄문인것 같은데, 어찌됐든 몇개의 마트에서 옥션, 11번가, G마켓등의 데이터가 추가되면서 여러가지 문제가 생기게 된것 같다. 데이터양의 증가는 필연적으로 버벅임과 UI의 답답함을 만들어 낸다. 어떻게 보면 개발도중에 약간의 기획변경이 이루어졌다고 봐도 무방할것 같다. 어떻게 보면 약간은 아쉬운 부분이긴 하지만, 결과적으로 보면 필요한 부분이었다고 생각한다. 이것도 하나의 경험이기 때문에 2차 버전에서는 기획적인 부분을 어느정도 FIX를 하고 가야할것 같다는 생각이 든다. 결과적으로 보면 9개의 몰(마트)에서 싼 상품을 보여준다는 커다란 석가래가 만들어 졌고 우린 그것을 받치기 위한 마루와 지붕을 만들어 갔다. 




CocoaControls 와 CocoaPods  의 은혜로움.




나는 오픈소스를 사랑한다. 너무 편하고 좋으니까. 특히 iOS 쪽에서 CocoaControls는 특정 UI파트를 빠르고 이쁘게 만들어주는 효자다. 정말 굉장히 많은 UI 컨트롤들을 보고 테스트해 보고 했던것같다. 여기서 어떻게 보면 나의 개발적 성향이 나오는데 나는 우리의 것을 만드는 어떤 레이어가 라이브러리나 코어 코드파트 보다는 어플리케이션에 좀 더 집중을 하는 성향이 있어서 그런지, 빨리 가져다 쓰고 이상하면 따로 만드는 것 보다는 되도록 고쳐서(튜닝)사용하는 스타일인것 같다. iOS 개발자들은 알겠지만, 패키지관리를 해주는 CocoaPods 역시 은혜롭다. 간혹 까탈스럽게 구는 경향이 있긴 하지만, CocoaControls 에서 본 코드를 CocoaPods 를 통해서 쉽게 가져오고 사용했다. 몇개의 핵심이 되는 오픈소스/컨트롤을 소개하겠다. 이건 최소한의 의무인것 같다. 다시 한번 얼굴없는 영웅들에게 감사한다. 


AFNetworking 은 말해야 뭐하겠나. http 네트워킹 할때 써야한다. SVProgressHUD 내 개인 프로젝트때 부터 써오던것인데 로딩창, 진행창을 만들떄 강력하다. 이쁘기 까지 하다. HATransparentView 는 싸다구 앱에서 굉장히 많이 쓰였는데, 필터링, 카테고리, 인기검색어 등을 선택하면 뜨는 창이 해당 라이브러리를 이용했다. 원래는 투명하고 세련되게 뜨는 것을 원했는데, 디자인적으로 반투명이 그렇게 이쁘지 않아서 그냥 흰색처리 했다. 왜 썼냐구? 스윽 나왔다가 스윽 사라지는 효과가 좋았다. 이쁘니까. 

CRGradientNavigationBar 는 싸다구앱에서 모든 네비게이션 바를 책임지고 있고, 아마도 2차버전에서 사용할것 같은데, 1차 버전에는 중요한 기능을 사용하지 않았지만, 해당 라이브러리는 네비게이션 바에서 그라디에이션 효과를 넣을수가 있다. 1차 버전에서 넣지 못한이유? 2가지 색을 넣어야 그라디에이션이 만들어 지는데 솔직히 색맹은 아닌데 색에 대한 감각이 떨어져서 2번째 색을 선택하지 못한 문제가 있어서 그냥 한 색으로 하도록 했다. 


FontAwesomeIconFactory 이건 나를 디자인 고통에서 꽤 많이 해당시켰다. 정말 대단한 라이브러리인데, 한마디로 fontawesome 이라는 아이콘이 있는 폰트파일이있는데 그 파일에서 이미지를 추출해서 사이즈별로 사용할수 있는 라이브러리다. 중간 버전까지 내가 수집한 이미지들을 사용해서 작업을 했는데, FontAwesomeIconFactory 를 쓴 뒤로 앱내의 모든 이미지를 바꿔버렸다. 2차버전에서도 무조건 쓸수 밖엔 없다. RMPickerViewController 이건 Picker 를 만드는데 귀찮았는데 사용된 부분은 가격범위 지정할때 가격이 뜨는 부분이다. 괜찮다. 

위의 cocoapods 외에도 사용된 라이브러리가 있는데  PHAirViewController 라는것이 싸다구 앱의 1차버전에서 핵심적인 부분이었다. 왼쪽 상단 아이콘을 누르면 마트의 메뉴가 나오는 부분을 담당하는 것인데, 생각보다 속을 많이 썩였다. 섹션을 지정해서 섹션별로 메뉴를 지정할수 있는데 1차 버전에서는 섹션이 하나밖에 필요하지 않았다. 그런데 섹션이 하나인 경우, 메뉴를 누르면 앱이 죽는 버그가 있었는데, 원 개발자에게 issue 를 등록해서 해결하였다. 그 이후에도 마트의 갯수가 증가하면서 아이폰4, 아이패드미니에서 제일 마지막에 있는 옥션이 눌리지 않는 버그가 있었는데 해당 부분을 내가 해결했고, Sada9 옆에 info 버튼을 넣는 부분역시 내가 수정했다. 2차 버전에서는 기획을 좀더 해봐야겠지만, 고민좀 해봐야 할것 같다. 

중 간에 완전 걷어낸것도 있었다. 체크박스나 라디오버튼을 통해서 카테고리가 필터링을 선택하는 부분에서 선택한 라이브러리가 이쁘긴 하지만, 터치에 느리게 반응하는 문제가 있었고, 내가 그 라이브러리를 이해하고 고칠까 하는 생각과 아예 내가 만들까 하는 부분에서 많이 고민하게 되었다. 정말 많이 고민했다. 결과적으로는 내가 만들게 되었는데 가장 큰 이유는 위의 PHAirViewController 도 봐야하는데 이것까지 보면 시간적으로 너무 쪼일것 같은 생각이 들었기 떄문에. 그리고 그렇게 만드는데 어렵지 않을것 같았다. 

2차 버전에서도 마찬가지로 CocoaControlsCocoaPods 를 많이 활용 할 것 같다. 그렇지만 그에 대한 책임은 늘 내가 져야한다. 그게 어려운데, 고칠건지, 버릴건지, 그냥 안고 갈것인지. 쓰는 입장에서 늘 드는 고민이다. 3, 4, 5차 버전에서도 고민하지 않게 잘 만들어야 겠다는 생각뿐이다. 


디자인도 해야하고.

FontAwesomeIconFactory 를 통해서 많이 해결되긴 했지만, 안되는 부분도 있었다. 앱 아이콘에 대한 부분이나 전체적인 레이아웃에 대한 부분이 가장 큰 문제였는데, 앱 아이콘은 무료로 배포되는 PSD 들과 구글 이미지 검색을 통해서 아이콘을 찾고 붙이는 작업을 했다. 사실상 디자인도 오픈소스라고 볼수 있는데 가장 중요하게 생각한 부분은 저작권에 대해서 위반하지 말자는 생각을 가지고 있어서 고를때 그런 부분을 체크했던 것 같다. 



기 본적으로 아이폰 아이콘은 1024x1024 로 해서 작업을했고 리사이징에 대한 부분은 맥앱인 Prepo 를 이용했다. 어떤 아이콘 이미지를 넣게 되면 아이폰/아이패드 앱에서 필요한 그리고 등록에 필요한 모든 이미지로 리사이징해주는 정말 착한 앱이다. 아이폰 개발자 분이라면(본인이 디자인도 하는) 강추하는 앱이다. 

레 이아웃에 대한 문제는 여전히 고질적이다. 어떻게 보면 1차버전에서는 모든게 시행착오였던것 같다. 같이 개발하는 프로세스도 그렇고, 소통하는 과정, 개발하는 방식등등이 솔직하게 말하자면 스파게티였다. (적어도 아이폰쪽은 그랬다, 코드는 라쟈냐인듯) 벤치마킹 한 앱들이 있긴 했지만 결과적으로 보면 여전히 불만족 스러운것은 사실이다. 벤치마킹한것을 너무 따라하거나 내 스스로 기존에 만들어왔던 앱의 레이아웃에 갇혀서 쇼핑앱이라는 특성을 많이 살리지 못한것이 가장 아쉽다. 이 부분은 나 뿐만 아니라 INDF 자체에서 통감하고 있는 내용이기 때문에 2차에서는 반드시 개선이 될것이다. 



Reject, 애증의 애플 

애 플은 보통 처음에 약 7-8일의 시간을 주는데 self-reject을 위한 시간이라고 보여진다. 한참을 기다리고 있고, 안드로이드가 출시되고 나서 7일쯤 아침에 ItunesConnect 앱을 통해서 받은 푸쉬메시지들은 충격적이었다. 한 새벽 5시즘 받았던것 같은데 결과적으로 Reject 이 되었다. 예전에는 기사를 보는 앱을 만들었었는데 html5로 작업하라며 Reject을 놓은적이 있어서 걱정했는데 다행히 INDF 에 대한 소개 부분에서 안드로이드 개발자에 대한 소개가 문제가 되었던 것이다. 나는 같이 만든 팀원들을 명시하고 싶었는데(이건 일종의 낙관과 같은것이다.) 아쉽게도 특정 플랫폼을 지칭하기 보다는 나와 함께 그냥 App 으로 표시했다. 애플의 이런 정책이 이해가 안될때도 있지만, 여러번 당한 나로서는 그냥 빨리 다시 올리는게 상책이라서 올리고 기다리기로 했다. 다음에는 좀더 꼼꼼하게 챙기는 수 밖엔. 난 애플에 친구가 없어서. ㅠㅠ 



아직은자랑하고 싶은 앱은 아니다. 지금은 약을빨때.

조 금 자극적일수 있지만, 아직은 자랑하고 싶은 앱은 아닌것 같다. 비단 디자인 뿐만 아니라, 검색도 부족하고, 실제 사용해본 바로 쓰는 나 역시 많은 부분을 개선해야 할것 같다고 느끼고 있으니 말이다. 한가지 분명한건 부족한 것을 느끼는 만큼, 다음 버전에 더 많은 개선이 될것이라는 것이다. 우리가 혹은 내가 원하는 모습이 될때까지 계속 개발하고 개선하는 작업을 할것 같다. 우린 지금 약을 빨아야 한다. 

다음 버전을 기대해 주시길. 

ps) 다음에는 아이폰앱 너무 늦지 않을게요 :)

댓글
최근에 올라온 글
싸다구
최근에 달린 댓글