Monzo, Compose를 사용하여 더 강력하고 품질이 높은 앱을 빌드

Monzo는 디지털 금융 서비스를 제공하는 은행 겸 앱입니다. 이들의 사명은 모든 사람이 돈을 효과적으로 활용하도록 하는 것입니다 Monzo의 디자인 시스템은 Material Design에서 벗어나기 시작했기 때문에 끊임없이 진화하는 맞춤 구성요소를 작성하고 유지관리하는 쉬운 방법을 원했기 때문에 Jetpack Compose를 선택했습니다.

진행한 작업

Compose를 사용하면 Material Design 구성요소가 디자인 시스템에 구애받지 않는 기반 API 위에 레이어로 제공됩니다. Monzo는 Foundation API를 사용하여 Material 구성요소를 참조로 사용하여 자체 구성요소 라이브러리를 빌드했습니다. 한 번에 화면을 이전하는 것으로 시작했지만 이제는 모든 새 화면에서 Compose를 사용합니다. 현재는 모든 Android 엔지니어가 프로덕션에서 Compose를 사용하고 있습니다. “주요 문제가 발생하지 않았기 때문에 일부 신기능은 물론, 새로운 기능에도 이를 사용할 수 있을 것이라는 자신감을 얻었습니다.”

결과

Monzo팀은 새로운 화면을 쉽게 빌드할 수 있는 구성요소를 만들었습니다. “즉시 제공되는 구성요소를 통해 Compose를 학습하는 동안 훨씬 매끄러운 환경을 빌드할 수 있습니다. 슬롯 기반 API는 수많은 작은 빌딩 블록으로 더 큰 구성요소를 쉽게 빌드할 수 있게 해주는 환상적인 패턴입니다."

Monzo팀은 Compose를 사용하여 이전에는 스프린트에서 구현하지 못했던 유용한 기능을 추가하여 고품질 앱을 빌드할 수 있었습니다. "한 가지 예는 애니메이션입니다. Compose에 애니메이션을 추가하기가 너무 쉽기 때문에 색상, 크기, 고도 변경과 같은 애니메이션을 적용하지 않을 이유가 거의 없습니다. 이러한 '있으면 좋은' 애니메이션은 뷰 시스템의 노력과 복잡성을 감수할 가치가 없을 때가 너무 많습니다.”

이제 코드가 더 짧아져 읽고 이해하고 유지관리하기가 더 쉽습니다. “선언적 코드는 변경 가능한 UI 계층 구조를 조작하는 코드보다 추론이 훨씬 쉽습니다. 또한 Kotlin과 XML을 오가는 대신 동일한 언어 및 보통 동일한 파일로 작성되면 코드를 훨씬 더 쉽게 추적할 수 있습니다. XML 테마와 스타일에 대한 초보도 필요 없습니다! Compose에서는 테마 설정을 훨씬 더 쉽게 이해할 수 있습니다. 우리의 테마는 우리가 정의한 속성으로만 구성되고, 값은 여러 기기에서 일관되며, Kotlin으로 작성되어 IDE에서 쉽게 검색하고 따를 수 있습니다."

Monzo팀은 Compose를 사용하여 앱을 쉽게 테스트하고 앱에 액세스할 수 있도록 했습니다. “이를 통해 취약성이 덜하고 안정적으로 실행되는 테스트를 작성할 수 있었으며 앱이 실제로 사용자의 손에서 작동한다는 확신을 얻을 수 있었습니다. 또한 시맨틱 시스템을 통해 테스트하면 최소한 기본적으로 합리적으로 화면에 액세스할 수 있습니다."

시작하기

Compose에 관해 자세히 알아보세요.