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

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

진행한 작업

Compose를 사용하면 Material Design 구성요소가 디자인 시스템에 관계없는 Foundation API 위에 레이어로 제공됩니다. Monzo는 Material 구성요소를 참조로 사용하여 Foundation API를 통해 자체 구성요소 라이브러리를 빌드했습니다. 한 번에 한 화면씩 이전하는 것으로 시작하여 이제 모든 새 화면에서 Compose를 사용하고 있습니다. 이제 Compose는 모든 Android 엔지니어가 프로덕션에서 사용하고 있습니다. “큰 문제가 발생하지 않았으므로 일부 신규 기능에 사용하기 시작했고, 결국 모든 신규 기능에 사용하게 되었습니다.”

결과

Monzo팀은 새 화면을 쉽게 빌드할 수 있는 구성요소를 만들었습니다. '즉시 사용 가능한 구성요소를 사용하면 Compose를 학습하는 동안 화면을 빌드하는 것이 훨씬 더 원활한 환경이 됩니다. 슬롯 기반 API는 여러 작은 빌딩 블록으로 더 큰 구성요소를 쉽게 빌드할 수 있는 멋진 패턴입니다."

Monzo팀은 Compose를 사용하여 이전에는 스프린트에서 다룰 수 없었던 멋진 기능을 추가하여 더 높은 품질의 앱을 빌드할 수 있었습니다. “예를 들어 애니메이션이 있습니다. Compose에서 애니메이션을 추가하는 것이 너무 쉽기 때문에 색상/크기/고도 변경과 같은 항목에 애니메이션을 적용하지 않을 이유가 거의 없습니다. 이러한 '좋을 텐데' 애니메이션은 뷰 시스템에서의 노력과 복잡성의 가치를 얻기에는 너무 어렵습니다."

이제 코드가 더 짧아지고 읽고 이해하고 유지하기가 더 쉬워졌습니다. “선언적 코드는 변경 가능한 UI 계층 구조를 조작하는 코드보다 훨씬 더 쉽게 추론할 수 있습니다. 또한 Kotlin과 XML 사이를 전환하는 것이 아니라 모든 것이 같은 언어로 종종 같은 파일에서 작성되면 코드를 추적하기가 훨씬 쉬워집니다. XML 테마와 스타일은 시작도 하지 마세요. Compose에서는 테마 설정을 훨씬 더 쉽게 이해할 수 있습니다. Google의 테마는 정의된 속성으로만 구성되며 값은 기기 전반에서 일관됩니다. Kotlin으로 작성되어 있으므로 IDE에서 쉽게 검색하고 따라갈 수 있습니다."

Compose를 사용하면 Monzo팀이 앱을 쉽게 테스트하고 앱에 액세스할 수 있는지 확인할 수 있었습니다. “Compose를 사용하면 더 안정적이고 안정적으로 실행되며 앱이 사용자의 손에 실제로 작동한다는 확신을 주는 테스트를 작성할 수 있었습니다. 시맨틱 시스템을 통한 테스트를 통해 화면에 기본적으로 적절하게 액세스할 수 있는지 확인할 수도 있습니다."

시작하기

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