소개
컴포즈와 View 시스템은 함께 상호운용할 수 있다.
이 코드랩에서는 Sunflower의 식물 세부 정보 화면의 일부를 컴포즈로 마이그레이션한다. 현실적인 앱을 컴포즈로 마이그레이션할 수 있도록 프로젝트 사본을 만들었다.
코드랩이 끝나고, 마이그레이션을 계속해서 할 수 있고, Sunflower의 나머지 화면을 변환할 수 있다.
배울 내용
이 코드랩에서 우리는 다음의 내용을 배운다.
- 다양한 마이그레이션 방법
- 앱을 컴포즈로 점진적으로 마이그레이션 하는 방법
- 안드로이드 View를 사용한 기존 화면에 컴포즈를 추가하는 방법
- 컴포즈 내부터로부터 안드로이드 View 사용하는 방법
- 컴포즈내 View 시스템으로부터 테마를 사용하는 방법
- View 시스템 및 컴포즈 코드와 함께 화면을 테스트 하는 방법
전제 조건
- 람다식을 포함하는 코틀린 문법 경험
- 컴포즈에 대한 기초
준비물
마이그레이션 계획하기
컴포즈로의 마이그레이션은 개인에 및 팀에 따라 다르다. Jetpack 컴포즈를 기존 Android 앱에 통합하는 방법에는 여러 가지가 있다. 보다 일반적인 두 가지 전략은 새 화면만 마이그레이션하고 기존 화면의 일부에 대해 View 시스템의 대체제로 사용을 하는 것이다.
새로운 화면에서의 컴포즈
앱을 새로운 기술로 리팩토링할 때의 일반적인 접근 방식은 신규 기능에다가 이를 사용하는 것이다. 이 경우 새로운 화면이 적용된다. 앱에 대한 새 UI 화면을 빌드해야 하는 경우, 앱의 나머지 부분이 View 시스템을 여전히 사용하더라도 컴포즈를 사용을 고려하는게 좋다.
이 경우 마이그레이션된 기능의 가장자리에서 컴포즈 상호운용을 수행한다.
컴포즈 및 View 함께 사용하기
주어진 화면에서 일부분은 컴포즈로 마이그레이션되고 다른 부분은 View 시스템으로 마이그레이션 될 수 있다. 예를 들어, View 시스템의 나머지 화면은 그대로 두고 RecyclerView를 마이그레이션할 수 있다.
또는 그 반대의 경우 컴포즈를 외부 레이아웃으로 사용하고 MapView 또는 AdView와 같이 Compose에서 사용할 수 없는 일부 기존 View를 사용한다.
마이그레이션 완료
전체 프레그먼트 또는 화면을 한 번에 하나씩 Compose로 마이그레이션한다. 가장 단순하지만 매우 coarse-grained다.
Tip: coarse-grained와 fine-grained는 우리말 한마디로 옮기기에는 무척 버거운 개념이다. Grain은 원래 보리나 밀 같은 곡식을 낟알로 만드는 작업이나 표면을 우둘투둘하게 하는 일을 뜻하는 데, 그때 아주 곱고 섬세하게 하느냐, 아니면 듬성듬성 크게 하느냐에 따라 Fine와 Coarse라는 형용사를 붙인다. 이것에 소프트웨어 공학에 도입되어 어떤 프로세스를 잘 게 쪼개느냐 아니면 굵게 쪼개서 뭉뚱그려 놓느냐를 표현할 때 쓴다.
그리고 이 코드랩에서는?
이 코드랩에서는 컴포즈와 View가 함께 작동하는 Sunflow의 식물 세부 정보(plant detail) 화면의 컴포즈로 점진적인 마이그레이션을 수행한다. 이후, 원하는 경우 마이그레이션을 계속할 수 있을 만큼 충분히 알게 된다.
0개의 댓글