Kotlin62 [Android-Compose] Compose 스와이프 가능한 탭 UI 만들기 - 2편HorizontalPager 이번 공부 노트는 저번 1편에 이어서 2편인 HorizontalPager에 대해 알아보도록 하겠다.1편에서는 탭을 만들었고 이번에는 그 탭에 들어갈 화면을 만들어야 한다. 그 화면은 HorizontalPager를 통해 만들면 훨씬 간편하게 구현이 가능하다. 본 예제는 Material Design3을 따른다.# HorizontalPager- 화면이 좌우로 전환되는 UI를 구성할 때 자주 사용하는 컴포저블이다.XML 뷰 시스템의 ViewPager와 유사한 기능을 한다.@Composable@ExperimentalFoundationApifun HorizontalPager( state: PagerState, modifier: Modifier = Modifier, contentPadding: Pad.. 2025. 12. 28. [Kotlin] Result 알아보기! - 예제를 통한 사용법 이번 포스팅은 전편 runCatching에 이어서 알아보면 좋은 Result를 알아보겠다.# Result쉽게 한 문장으로 정리하자면 성공 값 또는 실패(예외)를 담는 value class이다. @SinceKotlin("1.3")@JvmInlinepublic value class Result @PublishedApi internal constructor( @PublishedApi internal val value: Any?) : Serializable { public val isSuccess: Boolean get() = value !is Failure public val isFailure: Boolean get() = value is Failure /* ... */ public co.. 2025. 9. 22. [Kotlin] 예외처리 runCatching를 알아보자! - try-catch 차이점 이번 공부 노트는 코틀린 예외처리 사용 시 유용하게 쓰이는 runCatching의 대해 적어보겠다. JAVA에서는 보통 예외처리 시 try-catch문을 통해 예외처리를 한다. 하지만 코틀린에서는 함수형 프로그래밍을 살린(코틀린다운) runCatching을 제공한다. # runCatching란?실제 코틀린 공식 문서에서 runCatching 내부 구현은 아래와 같이 되어있다.@InlineOnly@SinceKotlin("1.3")public inline fun runCatching(block: () -> R): Result { return try { Result.success(block()) } catch (e: Throwable) { Result.failure(e) .. 2025. 8. 10. [Android-Compose] 안드로이드 컴포즈의 안정성(Stability) 2편 - @Stable, @Unstable 이번 2편에서는 컴파일러가 항상 완벽하게 stable을 판단해 주지 않기 때문에 내가 만든 클래스 혹은 객체가 실제로는 stable 한데 컴파일러는 unstable로 판단할 수 있는 현상을 해결하기 위한 방법을 알아보겠다.이해를 위해서 1편을 보고 오는 걸 추천한다.# @Stable, @Immutable 어노테이션컴파일러가 항상 완벽하게 판단해 주지 않기 때문에 내가 만든 클래스 혹은 객체가 실제로는 stable 한데 컴파일러는 unstable로 판단할 수 있다.그래서 @Stable, @Immutable 어노테이션을 우리가 적절히 활용해 직접 알려줘야 정확히 stable로 인식시킬 수 있다.## @Stable🔸 @Immutable 보다는 조금 느슨한 약속🔸 잠재적인 변경 가능성에도 불구하고 예측 가능.. 2025. 7. 26. [Android-Compose] 안드로이드 컴포즈 Icon vs Image 차이점 / 각 각 컴포저블 함수 알아보기 (Compose Icon, Image) 이번 포스팅은 간단하면서 궁금한 Icon 컴포저블과 Image 컴포저블의 차이점을 알아보겠다! 사실 둘 다 사진을 보여주는 컴포저블이라서 처음에는 어떤 경우에 Icon을 사용하고 어떤 경우에는 Image를 사용하는지 구분이 안 갔다.그래서 이번에 공부하는 겸 작성해보기로 했다.# Icon@Composablefun Icon( painter: Painter, contentDescription: String?, modifier: Modifier = Modifier, tint: Color = LocalContentColor.current.copy(alpha = LocalContentAlpha.current)) {......} 위 코드는 Icon 컴포저블 내부이다. 각 인자 별로 알아보자!위.. 2025. 5. 18. [Android-Compose] 안드로이드 컴포즈 바텀시트 구현해보기! (Android Compose BottomSheet) - ModalBottomSheetLayout, ModalBottomSheet 이번 공부 노트는 안드로이드 컴포즈에서 바텀 시트를 예제를 통해 구현해 보도록 하겠다.구현하는 방법은 ModalBottomSheetLayout, ModalBottomSheet 크게 두 가지가 있다.하나하나씩 알아보자! ※ 본 예제는 MaterialDesign3 기준으로 작성했다.해당 버튼을 누르면 과일 리스트가 바텀시트로 나오는 예제이다.# ModalBottomSheetLayout이 방식은 구버전 API로 콘텐츠와 바텀 시트를 함께 포함하는 레이아웃 컴포넌트이다.일반적으로 화면 전체를 감싸는 방식으로 사용따라서 콘텐츠와 바텀 시트를 함께 포함하고 싶다면 사용 추천! ModalBottomSheetLayout 내부를 살펴보자@Composable@ExperimentalMaterialApifun ModalBot.. 2025. 4. 20. 이전 1 2 3 4 ··· 11 다음