본문 바로가기
개발일기/싸다구

싸다9 개발이야기 - 안드로이드 편(1차)

by 유주원 2014. 9. 4.


두 번째 앱 개발 프로젝트였는데.. 참 힘들긴 했지만 정말 재미있게 개발을 진행한 것 같습니다.

(회사 일과는 다른 무언가가 날 계속 끌어당기고 있었음..)


힘들었던 점은 회사 일과 병행해야 하기에 리소스가 무진장 부족했단 점..

유부남이기에 주말에 개발할 여력이 안된다는 점..

내가 아이폰을 못따라가고 있다는 점.. 등등




대부분의 앱들은 안드로이드가 먼저 프로토를 제시하고 그 뒤를 아이폰이 개발하는 식이었는데, 우리는 그와 정반대로 진행되었다는게 특별하다면 특별하달까..

그 이유는 물론 제가 초급 안드로이드 개발자이기도 했거니와 아이폰 개발자분(속칭 안군)이 워낙 능력자 분이셔서 ㅋ


일단 싸다9 안드로이드는 기존 안드로이드와 어떤 점이 다른지 위주로 설명을 해볼 생각입니다.


ActionBar

사실 ActionBar를 쓰지 않아도 그와 비슷하게 기능이 구현된 많은 컴포넌트들이 나와 있습니다.

하지만 저는 그래도 구글이 정식으로 출시한 컴포넌트를 써보고 싶었기에.. 이번 프로젝트에 ActionBar를 적용하기로 하였습니다.

참고로 여기서 ActionBar가 정확히 어떤것인지 모르시는 분들을 위해..



위의 사진과 같이 앱 상단에 버튼을 집어 넣어 이벤트를 받을 수 있도록 구현되어 있는 게 ActionBar 입니다.

1번 버튼을 누르면 왼쪽에 새로운 메뉴가 나온다던지.. 검색을 할 수가 있다던지 등등..

최대한 사용자에게 Depth를 많이 안주고 한 화면에서 처리하려고 시도한 흔적 등을 느낄 수가 있습니다.


구현도 매우 쉽습니다.

android-support-v7 혹은 android-support-v4를 사용하는 경우라면 간단하게 ActionBarActivity를 상속 받아서 해당 actionbar를 구현할 수가 있습니다.

구현과 관련하여 좀 더 자세한 설명은 구글 개발자 홈페이지를 참조.


Fragment

이 개념도 등장한지는 좀 지난 개념인 것으로 알고 있습니다. 

(하지만 제가 초급 안드로이드 개발자이지 때문에!!)

개념에 대해 설명하자면, 아래 그림과 같이 하나의 Activity 안에 고정된 영역 A와 자주 바뀌는 영역 B가 있을 시 B에 fragment를 적용하면, 전체 Activity를 새롭게 갱신할 필요 없이 B만 내용이 바뀌게 되는 것입니다. 


물론 fragment 개념 없이도 새로 고침 없이 해당 위치의 layout 값만 변경할 수는 있었습니다.

모든 layout을 정의한 다음에 해당 이벤트 발생 시 show, hide를 이용한다거나 하는 방식으로 개발을 할 수 있었지만, 아무래도 fragment를 사용하는게 더 편리하겠죠.

아래는 싸다9에서 fragment를 이용한 방식입니다. 왼쪽 메뉴에서 마트를 선택할 때마다 각각 마트마다 정의된 fragment가 새로 띄워지게 됩니다.



Volley

2013년 Google IO에서 공개된 라이브러리로 동시 다발적인 네트워크 요청을 개발자가 좀 더 편리하게 쓸 수 있도록 만들어진 라이브러리입니다.

이게 싸다9에서 왜 필요함??

물론 저도 초창기 개발 시에는 해당 기능에 대한 고려 자체가 없었습니다.

그런데 저 기능이 필요하게 된 이유가 바로 상품 이미지 로딩 때문이더라고요.

사용자는 상품 이미지가 다 로딩되지 않아도 스크롤을 내려서 다른 상품 정보를 요청할 수가 있습니다.

하지만 만약에 네트워크 요청이 순차적으로 이루어진다면 이전에 요청되었던 이미지들이 모두 로딩이 되어야 비로소 사용자가 스크롤해서 보려고 했던 이미지가 로딩이 되겠지요..  

사용자 입장에서는 불만이 이만저만이 아닐겁니다..


앞으로는..

현재 가장 문제로 손꼽히는 게 상품 데이터가 적다는 점. 

그리고 indf에서 최종 추구하려고 했던 것이 상품 큐레이션인 만큼 사용자에게 상품을 제시할 무언가가 있어야 하겠다는 점 등이 있습니다.

2차 버전에서는 머리 싸매고 고민 또 고민을 해야겠지요.

1차 버전 많이 애용해 주시고, 2차 버전에서 다시 만나요~


원본 링크 - INDF