안드로이드 UI 작업에 관한 단상


이번 신형 아이폰에서 내가 가장 뜨악한 부분은 디스플레이였다. 5.8짜리는 그냥 전작과 같지만 저 다른 사이즈들의 근본없는 해상도는 무엇? 과연 아이폰 4, 5, 6, 6플, x시리즈 해서 해상도 바리에이션은 몇 종류가 되는 걸까. 앞으로 또 몇 개가 생길까. 저기에 또 나중에 노치를 빼니마니 하면...

내가 안드로이드 개발 첨 시작한 게 갤4가 나왔을 때쯤이니까 그렇게 일찍은 아니다. 한창 개발 난이도에 대해서 이얘기 저얘기 많을 때였는데, 개발포럼 같은 데 가보면 아이폰 개발자들은 룰루랄라 하고 있었다.
그 왜... 안드로이드 아직 좀 빌빌거릴 때 아이폰 유저들 특유의 안드로이드 유저 무시하는 뉘앙스, 그게 개발자들한테도 있던 건지, 개발자들이 주도한 건지는 모르겠지만.
DPI에 따라 변하는 UI 문제가 제일 컸던 건데(나는 그보다는 카메라 쪽에서 고생을 더 했다. 제조사마다 전달 방식이 달랐는데 딱히 다 대응 가능한 좋은 레퍼런스가 아직 없었음), 확실히 아이폰5도 4에 비하면 가로해상도는 유지하고 위아래로 늘린 게 전부였으니 동일 DPI가 돼서 위아래 간격이나 하단 고정 부분만 수정해 주면 됐으니까 큰 일은 아니었겠지.
당시에 영세한 곳(==나같은 초짜를 고용해 쓰던 곳==실력자를 영입할 사정이 안 됐던 곳)은 안드로이드는 그냥 갤4에 맞추고 나머지는 반쯤 방치하다시피 하는 선으로 타협을 봐야 했다. 레이아웃 수십 개를 새로 만드는 것도 큰 일이니.

근데 한 몇 년 지나고나니까, 정확히는 작년 이맘때인데 신형 아이폰 즉 X가(나는 엑스라고 읽는데 텐이 맞다고들 한다. 뭐 그래도 엑스) 발표되면서 기획자들이 이를 우짤꼬우짤꼬 하는 거. 그 망할놈의 노치랑 홈버튼 대응을 해야 하나 어쩌나.
결국은 그냥 '모른 체' 하고(짜피 개발 막바지였기 때문) 대응하지 않기로 결정됐지만 이미 건너편에서 일하던 아이폰 개발자들은 6과 6플 대응만으로도 빡친다 토로하고 있었다. 그만큼 4와 5는 꿀빠는 거였다 이거지.

안드로이드는 현재 여러 화면 크기에서 동일 비율 유지를 위한 방법이 여럿 나와 있는 상황이다. 내가 주로 쓰는 건 ScalableLayout(한국에서 만든 라이브러리 ㄷㄷ)과 sdp인데, sdp는 강추한다. ScalableLayout은 좀 불편하지만 특수한 상황에서 써먹기 좋다.
애초에 안드로이드는 많이들 쓰는 가로 해상도가 720, 1080, 1440 세 개로 정착되어 있고, 그 외 몇 안 되는 예외는 그냥 무시하는 걸로 암묵적 합의가 이루어져 있어서 어지간히 디자인에 예민한 프로젝트가 아니라면 손쉽게 대응 가능한 상황에 와 있다. 대중적으로 많이들 쓰는 샘플폰 몇 개(주로 갤노트5, 갤럭시8) 정도를 기준으로 맞추고나면 나머지 폰에서 생기는 오차는 무시 가능한 수준에 이르러 있는 정도.

조금 더 신경을 쓴다고 치면 이미지 파일 적용을 할 때 dpi에 따라 가능한 한 여러 단계를 삽입해 주는 게 좋은데, 뭐 이런 소리 하는 나도 폰은 그냥 xxhdpi에만 맞추는 실정이지만 가끔 귀찮게시리 태블릿 대응도 해 줘야 할 때는 꼭 필요한 작업. 그럴 땐 이미지 하나를 디자이너더러 여러가지 크기로 만들어 달라고 하지 말고, 그냥 태블릿에 맞춘 큰 거를 하나만 받은 다음에 작은 거에 맞게 포토샵이나 GIMP 따위로 직접 리사이즈 해서 쓰는 방법이 낫다. 디자이너한테 부탁해봐야 하루종일 걸리기 일쑤일 뿐더러 잘 안 맞는 일이 태반이라 그냥 직접 하는 게 정신 건강에 좋거든. 사실 컴으로 먹고 사는 사람 중에 저거 못 다루는 사람이 어딨냐 싶었지만 의외로 있더라고... 배워두면 저얼대 시간낭비 아님.

그리고 전에 언급을 했었나 모르겠는데, 요즘은 아이콘이 간소화되면서 단색을 쓰는 추세라(구글에서 그렇게 밀고 있다) 이에 더욱 편하게 대응하려면 svg를 이용해 벡터 이미지를 만들어 쓰는 것을 추천. 조금 더 기능을 추가해 지원해 줬음 좋겠지만 현재도 쓸 수 있다면 정말 괜찮다.

결론은 안드로이드 UI 개발은 이제 전혀 어렵지 않아요. xml단에서 자유롭게 CoordinatorLayout까지 사용할 수 있다면 kotlin과 Anko에 대한 대응도 가능할 터. 터치 반응 속도에 따른 체감은 아직 아이폰이 훨씬 우위에 있기 때문에, 안드로이드에서 이를 조금이나마 극복하려면 코틀린과 앙코의 조합은 앞으로 필수가 될 것이다.


덧글

  • 식용달팽이 2018/09/15 17:59 # 답글

    뭐 아이폰도 이러한 파편화에 대응하기 위해 여러가지 방법을 개발자 회의에서 제공하고 있습니다. 앱의 처음 기획부터 그에 상응하게 개발해 두면 어떤 규격의 아이폰이 나오더라도 크게 레이아웃이 달라지지 않는 모양이긴 합니다만;; 그렇게 하는 개발자들이 얼마나 있을지는;;;
댓글 입력 영역