본문 바로가기

Android/Compose 숨참고 Deep dive4

Compose 컴파일러 Part 2 : Compose annotations @Composable @Composable에 관한 내용을 살펴보시려면 아래 링크를 참고하시기 바랍니다. https://ducorner.tistory.com/11 Compose 내부 구조 이 글은 2020.08.29에 작성된 Compose 세부구현에 관한 문서를 바탕으로 정리한 글이므로, 포스팅 작성 시기의 세부구현과는 다를 수 있음을 알려드립니다. 원문 : https://medium.com/androiddevelopers/under-the- ducorner.tistory.com @ExperimentalComposeApi 아직 안정화되지 않은 Composable이나 클래스에 적용되는 어노테이션입니다. 향후 변경될 수 있거나, 제거될 수 있음을 암시합니다. @ComposeCompilerApi 이 어노테이션은.. 2023. 4. 13.
Compose 내부 구조 이 글은 2020.08.29에 작성된 Compose 세부구현에 관한 문서를 바탕으로 정리한 글이므로, 포스팅 작성 시기의 세부구현과는 다를 수 있음을 알려드립니다. 원문 : https://medium.com/androiddevelopers/under-the-hood-of-jetpack-compose-part-2-of-2-37b2c20c6cdd Under the hood of Jetpack Compose — part 2 of 2 Under the hood of Compose medium.com @Composable Compose를 사용해보셨다면, 많은 코드에서 @Composable 어노테이션을 보셨을겁니다. 하지만 Compose는 어노테이션 프로세서가 아닙니다. Compose는 Kotlin 타입 체킹과 코.. 2023. 3. 30.
Compose 도넛홀 스키핑 (Donut-hole skipping) Composition 초기 Composition시 처음으로 Composable을 실행할 때 Composition에서 UI를 기술하기 위해 호출하는 Composable를 추적합니다. 그런 다음에 앱 상태가 변경되면 Recomposition을 예약합니다. Recomposition은 Compose가 상태 변경사항에 따라 변경될 수 있는 Composable을 다시 실행한 다음 변경사항을 반영하도록 Composition을 업데이트하는 것입니다. Composition 초기 Composition을 통해서만 생성되고 Recomposition을 통해서만 업데이트될 수 있습니다. Composition을 수정하기 위해서는 Recomposition을 이용해야합니다. Composition 공식문서를 참고해주세요. https:/.. 2023. 3. 28.
Compose 컴파일러 Part 1 : A Kotlin compiler plugin Compose 컴파일러는 Kotlin 컴파일러 플러그인입니다. Compose를 사용해보신 분이라면 Kotlin 함수에 @Composable 어노테이션을 붙인 함수는 Composable 함수로 변환되는 것은 알고 계실겁니다. 보통, 코틀린에서 어노테이션 처리는 kapt이나 ksp 의해 이루어집니다. 하지만 Compose는 일반적인 어노테이션 프로세서로 처리하지 않습니다. Compose 컴파일러는 코틀린 컴파일러의 플러그인입니다. 자바로 Compose를 사용할 수 없는 이유이기도 합니다. 우선 kapt 작동 방식을 생각해봅시다. 코틀린에는 자체적으로 어노테이션 프로세싱을 지원하지 않기 때문에, 자바의 어노테이션 프로세서를 이용해야하고, 그걸 이루는 것이 kapt이죠. 덕분에 자바 Stub이 생성되고, 절차가.. 2023. 3. 21.