전체 글 4

MVI 정리

MVI 패턴이란?단방향 데이터 흐름을 통해 상태를 관리하는 패턴(일반적으로 단일 상태 사용!)  - Model : 상태 담당- View : 사용자 이벤트를 Intent로 전달, 모델에서 받은 상태를 기반으로 화면 업데이트- Intent : 사용자 액션이나 이벤트 정의, 사용자 이벤트를 받아 모델로 전달하여 상태 업데이트 단방향 동작1. 이벤트 발생 (view -> intent)2. 모델의 상태 변경 (intent -> model)3. 변경된 상태로 Ui 업데이트 (model -> view) 어떻게 구현할까?State : 상태는 가장 최신 값으로 유지할 수 있는 StateFlowEvent : 이벤트는 구독자가 없으면 무시할 필요가 있기 때문에 SharedFlowEffect : 에러, 토스트와 같은 사이드..

카테고리 없음 2024.11.06

Compose - Modifier (수정자)

Modifier의 역할- Composable의 크기, 레이아웃, 동작, 모양 변경- 클릭, 스크롤, 드래그, 확대/축소, pull to refresh 등 상호작용  ⭐️ Modifier 함수는 호출하는 순서에 따라 결과가 달라질 수 있기 때문에 순서에 신경써서 호출해야한다. ⭐️   자주 사용하는 Modifier 정리size- 기본적으로 컴포즈에서 제공하는 레이아웃은 하위요소의 크기에 맞춰짐(WrapContentSize)- size를 이용하여 크기를 임의로 정할 수 있음modifier = Modifier.size(width = 400.dp, height = 100.dp) requiredSize - 제약조건을 무시하고 크기를 정할 때 사용- 상위요소 크기에 상관없이 설정 가능  modifier = Modi..

[Kotlin] 확장 함수

* 확장 함수란? 기존에 정의된 클래스에 함수를 추가하는 기능. 직접 만든 클래스가 아닌 다른 사람이 만든 클래스에는 함수를 추가하기 어렵기 때문에 확장 함수 사용. 어떤 클래스의 멤버 메소드인 것처럼 호출할 수 있지만, 실제로는 그 클래스의 밖에 선언된 함수 * 확장 함수 생성 방법 * 확장 함수 예시 (String) -> String 클래스 내부를 직접 수정하지 않고, String 클래스에 lastChar라는 새로운 함수를 생성. - receiver type (수취인 타입) : 확장 함수를 추가할 클래스. 확장 대상이 될 클래스 ex) String - receiver object (수취인 객체) : receiver type이 가지고 있는 인스턴스 ex) this -> "kotlin"문구 * 특징 - ..

코틀린 2022.08.31

[안드로이드] 안으로 둥근 뷰 만들기 (Negative Corner Radius)

안드로이드에서 테두리가 밖으로 둥근 뷰는 많이 만들어봤지만 안으로 둥근 뷰는 한번도 만들어 본 적이 없었다. 처음에는 사각형을 만든 후에 테두리에 흰색 원을 겹쳐서 만들어보았지만 그렇게 하면 뷰를 활용하기에 어려움이 있었다. (ex) 그림자 효과를 넣을 수 없음, 배경색이 단색이 아닌 이미지나 그라데이션이 들어갈 경우 티가 남 찾아보니 안드로이드에 CornerTreament라는 것이 있는데 이것을 활용해서 쉽게 만들 수 있었다! https://developer.android.com/reference/com/google/android/material/shape/CornerTreatment CornerTreatment | Android Developers CornerTreatment public class ..

안드로이드 2022.07.21