작성자: Chiko Shimizu(Developer Advocate), Tamao Imura(Developer Marketing Manager)
이 글의 원문은 여기서 확인하실 수 있으며 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다.
Mercari는 2013년 일본에 설립되었으며 현재 일본 최대의 스마트폰 중심 C2C 마켓플레이스로 수백만 명의 사람들이 거의 모든 제품을 구매 및 판매할 수 있도록 서비스를 제공합니다. Mercari의 Client Architect 팀은 새 애플리케이션을 위한 기술 스택을 구축하고자 장기적으로 확장 가능한 현대적인 솔루션 및 기술을 이용하도록 2020년에 Jetpack Compose를 사용하기 시작했습니다.
수행 작업
Mercari 팀은 Android 뷰에서 복잡한 상태 관리 및 스타일링을 갖춘 디자인 시스템을 구축하는 굉장히 까다로운 작업이 필요했습니다. Jetpack Compose를 이용한 덕분에 이런 복잡한 시스템을 구현할 수 있었을 뿐만 아니라 각 화면을 개발하는 데 드는 시간도 훨씬 절약할 수 있었습니다.
또한, Jetpack Compose를 통해 디자인 시스템을 활용하여 새 앱의 UI 코드를 작성함으로써 UI 코드가 간결하고 이해하기 쉬워졌습니다. 이에 어두운 테마에 대한 실질적 지원 등의 화면 및 비즈니스 로직 작성에 더 많은 시간을 할애할 수 있었습니다.
아울러 Mercari 팀은 Figma와 디자인 시스템을 통합하기 위한 개념 증명 도구(proof-of-concept tool)도 작성했습니다. 이 도구는 구성요소 디자인에서 자동으로 UI 코드를 생성해줍니다. 이들은 Compose의 선언형 특성 덕분에 도구를 개발하는 것이 더 쉬웠다고 말합니다.
"Android 개발자들이 Jetpack Compose 코드로 작성하는 데 익숙해지면, 이전으로 돌아가고 싶지 않을 것입니다" - Anthony Allan Conda (Mercari Android Tech 팀장)
결과
Jetpack Compose와 새로운 디자인 시스템 사이에서 Mercari는 화면을 구현하는 데 훨씬 적은 코드를 사용할 수 있었습니다. 일반적으로 사용되는 무한 스크롤이 가능한 콘텐츠가 담긴 화면에서 실제로 56%의 코드를 줄일 수 있었습니다. 결과적으로 같은 시간에 더 많은 화면의 코드를 작성할 수 있었고 비즈니스 로직과 다른 코드 부분을 작성하는 데 더 많은 시간을 들일 수 있었습니다.
또한 애니메이션 구현, AnimatedVisibility, Crossfade, Animatable 등의 직관적인 API 사용 등 UI 자체에 더 많은 작업을 할 수 있었습니다.
Mercari는 새 애플리케이션을 출시할 때까지 Jetpack Compose를 계속해서 사용할 예정입니다. Jetpack Compose로 작성된 Android SDK를 이용한 자체 디자인 시스템 또한 Mercari의 다양한 애플리케이션과 호환되도록 설계되었습니다.
시작하기
Jetpack Compose에 대해 더 자세히 확인해보세요.