티스토리

정리용
검색하기

블로그 홈

정리용

a00896.tistory.com/m

a00896 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • [Android] Recomposition / State Management (Jetpack Compose) 1. Recomposition(재구성)Recomposition은 Compose가 화면을 다시 그리는 과정특정 State(상태)가 변경될 때, Compose는 필요한 UI 요소만 다시 그린다.전체 UI를 다시 그리는 것이 아닌, 변경된 부분만 재구성하기 때문에 효율적이다. 동작 과정UI를 구성하는 Composable 함수가 호출됨UI에서 사용하는 State 값이 변경됨Compose는 변경된 State를 감지하고 해당 Composable을 다시 호출변경되지 않은 Composable은 재구성되지 않는다. Recomopsition 예제@Composablefun Counter() { var count by remember { mutableStateOf(0) } // 상태 저장 Column { .. 공감수 0 댓글수 0 2025. 3. 6.
  • [Android] Retrofit2 사용법 (Jetpack Compose) 1. Retrofit2 의존성 추가dependencies { implementation("com.squareup.retrofit2:retrofit:2.9.0") // Retrofit 기본 라이브러리 implementation("com.squareup.retrofit2:converter-gson:2.9.0") // JSON 변환을 위한 Gson 컨버터 implementation("com.google.code.gson:gson:2.10") // Gson 라이브러리 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4") // 코루틴 지원}  2. Retrofit 인터페이스(API 서비스) 생성 API 응답 데이터 .. 공감수 1 댓글수 0 2025. 3. 5.
  • [Android] Animation 사용법 (Jetpack Compose) 정리animate*AsState → 값 변화에 따라 애니메이션 적용updateTransition → 여러 애니메이션을 동시에 적용AnimatedVisibility → UI 요소의 등장/사라짐 애니메이션rememberInfiniteTransition → 무한 반복 애니메이션animateContentSize → 크기 변화 애니메이션 1. animate*AsState값이 변경될 때 자동으로 애니메이션을 적용하는 방법@Composablefun AnimatedSizeBox() { var isExpanded by remember { mutableStateOf(false) } val size by animateFloatAsState( targetValue = if (isExpanded).. 공감수 0 댓글수 0 2025. 3. 4.
  • [Android] MaterialTheme 사용법 (Jetpack Compose) MaterialTheme 기본 사용법MaterialTheme는 Compose에서 UI를 감싸는 컨테이너 역할을 한다. @Composablefun MyApp() { MaterialTheme { // 여기에 앱의 UI를 구성 Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ) { Text( text = "Hello, Material Theme!", color = MaterialTheme.colorScheme.primary, .. 공감수 0 댓글수 0 2025. 3. 3.
  • [Android] Navigation 사용법 (Jetpack Compose) Navigation 원리기본적으로 Navigation은 Stack 기반으로 동작한다.즉, 한 화면에서 다른 화면으로 이동하면, 새로운 화면이 스택에 추가(Push) 되고, 뒤로 가기(Back)를 하면 스택에서 제거(Pop) 된다. 구성요소 NavController: 네비게이션을 담당하는 컨트롤러.NavHost: 화면을 이동할 때 사용되는 컨테이너.NavGraph: 화면(경로)과 그 관계를 정의하는 역할.Composables: 각각의 화면을 나타내는 함수. NavGraphNavGraph는 앱에서 어떤 화면들이 있고, 그 화면들이 어떻게 연결되는지를 정의하는 구조이다.일반적으로 NavHost 안에서 NavGraph를 설정하게 된다.  Navigation 기본 사용법NavController 생성NavHost .. 공감수 1 댓글수 0 2025. 2. 28.
  • [Android] Slider 사용법 (Jetpack Compose) Slider 기본 사용법@Composablefun BasicSlider() { var sliderPosition by remember { mutableStateOf(0f) } Column( modifier = Modifier.padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { Text(text = "현재 값: ${sliderPosition.toInt()}") Slider( value = sliderPosition, onValueChange = { sliderPosition = it }, valueRange .. 공감수 2 댓글수 0 2025. 2. 27.
  • [Android] Switch 사용법 (Jetpack Compose) Switch 기본 사용법@Composablefun SwitchExample() { var isChecked by remember { mutableStateOf(false) } Switch( checked = isChecked, onCheckedChange = { isChecked = it } )}  remember { mutableStateOf(false) } → isChecked 상태를 저장하고 관리checked = isChecked → 현재 Switch의 상태 설정onCheckedChange = { isChecked = it } → Switch를 클릭할 때 상태 변경 Switch에 Modifier 적용@Composablefun StyledSwitch() { .. 공감수 0 댓글수 0 2025. 2. 26.
  • [Android] Checkbox 사용법 (Jetpack Compose) Checkbox 기본 사용법Checkbox는 checked 상태와 onCheckedChange 콜백이 필요하다.@Composablefun SimpleCheckbox() { var checked by remember { mutableStateOf(false) } Checkbox( checked = checked, onCheckedChange = { checked = it } )} checked : 체크 여부 (true = 체크됨, false = 체크 해제)onCheckedChange : 체크 상태가 변경될 때 호출되는 콜백 텍스트와 함께 사용하기 (Row 사용)@Composablefun LabeledCheckbox() { var checked by rememb.. 공감수 0 댓글수 0 2025. 2. 25.
  • [Android] TextField 사용법 (Jetpack Compose) TextField 기본 사용법TextField를 사용하려면 mutableStateOf를 사용하여 입력 값을 관리해야 한다. 기본 예제@Composablefun SimpleTextField() { var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, label = { Text("입력하세요") } )}value: 현재 입력된 텍스트 값onValueChange: 사용자가 입력할 때마다 호출되는 콜백 OutlinedTextField 사용 (테두리 있는 입력창)@Composablefun OutlinedTextFieldExample() {.. 공감수 0 댓글수 0 2025. 2. 24.
  • [Android] 디자인 패턴 비교 (MVC, MVP, MVVM, MVI) 디자인 패턴 비교 (MVC, MVP, MVVM, MVI)패턴View중간 계층Model데이터 흐름특징MVCActivity/FragementController데이터 처리View와 Controller가 직접 연결됨안드로이드에서는 유지보수 어려움MVPActivity/FragementPresenter데이터 처리View는 Presenter를 통해 데이터 요청 및 UI 업데이트테스트 용이, 코드 분리 가능MVVMActivity/FragementViewModel데이터 처리ViewModel이 데이터 변경을 감지하고 자동 업데이트LiveDate,StateFolw 활용 가능MVIActivity/FragementViewModel  + Reducer데이터 처리단방향 데이터 흐름 (UI → Intent → State)UI 상태 .. 공감수 1 댓글수 0 2025. 2. 21.
  • [Android] MVVM (Model-View-ViewModel) 디자인 패턴 MVVM 이란?UI(View)와 데이터(Model)를 분리하여 유지보수성과 테스트 용이성을 높이는 구조 MVVM 구조구성요소설명Model데이터와 비즈니스 로직을 담당 (예: RoomDB, API, Repository)ViewUI 요소 (예: Activity, Fragment, Compose)ViewModelUI 관련 데이터를 관리하고 비즈니스 로직을 처리  MVVM 흐름View (UI) → ViewModel사용자가 버튼을 클릭하는 등의 이벤트 발생View는 ViewModel의 함수를 호출하여 데이터를 요청함ViewModel → ModelViewModel은 데이터가 필요할 경우 Model을 통해 가져옴Model은 Repository 또는 RoomDB, API 등에서 데이터를 가져와 반환Model → Vie.. 공감수 0 댓글수 0 2025. 2. 20.
  • [Android] ViewModel 이란? ViewModel 이란?ViewModel은 안드로이드 아키텍처 컴포넌트 중 하나로, UI 관련 데이터를 관리하는 클래스액티비티(Activity)나 프래그먼트(Fragment)가 변경되거나 소멸되더라도 데이터를 유지할 수 있도록 도와준다. ViewModel의 주요 역할UI 데이터를 유지화면 회전과 같은 구성 변경(Configuration Change) 시에도 데이터가 유지된다.액티비티나 프래그먼트가 재생성되더라도 데이터가 초기화되지 않는다.UI 로직과 비즈니스 로직을 분리UI(View)는 ViewModel에 있는 데이터를 관찰(Observe)하면서 화면을 업데이트한다.데이터 처리를 ViewModel 에서 담당하므로 코드의 재사용성과 테스트 가능성이 높아진다.LiveData 또는 StateFlow와 함께 사.. 공감수 1 댓글수 0 2025. 2. 19.
  • [Android] remember / mutableStateOf 사용법 (Jetpack Compose) remember 기본 사용법 - 컴포저블이 재구성될 때 상태를 유지하는데 사용remember는 컴포저블이 다시 실행될 때 값이 초기화되지 않도록 상태를 저장하는 역할을 함remember없이 mutableStateOf를 사용하면, 상태가 유지되지 않는다.@Composablefun RememberExample() { var name by remember { mutableStateOf("Hello") } Column { Text(text = name) Button(onClick = { name = "Changed!" }) { Text("Change Text") } }} - remember 덕분에 name 값이 유지되며, 버튼을 누르면 정.. 공감수 0 댓글수 0 2025. 2. 18.
  • [Android] LazyColumn / LazyRow 사용법 (Jetpack Compose) LazyColumn 사용법기본사용법@Composablefun LazyColumnExample() { LazyColumn( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.spacedBy(8.dp), // 아이템 간 간격 contentPadding = PaddingValues(16.dp) // 전체 리스트의 패딩 ) { items(20) { index -> Text( text = "Item #$index", modifier = Modifier .fillMaxWid.. 공감수 0 댓글수 0 2025. 2. 17.
  • [Android] Spacer / Divider 사용법 (Jetpack Compose) Spacer 사용법Spacer는 두 요소 사이에 빈 공간을 만들 때 사용기본 사용법@Composablefun SpacerExample() { Column( modifier = Modifier.fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally ) { Text("첫 번째 텍스트") Spacer(modifier = Modifier.height(16.dp)) // 16dp 만큼 여백 추가 Text("두 번째 텍스트") }} 위 코드는 "첫 번째 텍스트"와 "두 번째 텍스트" 사이에 16dp의 빈 공간을 추가 하는 코드 가로 여백 추가@Composablefun RowS.. 공감수 0 댓글수 0 2025. 2. 15.
  • [Android] Column / Row / Box 사용법 (Jetpack Compose) Column 사용법Column은 자식 요소들을 수직(위에서 아래로) 배치할 때 사용기본 사용법@Composablefun ColumnExample() { Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, // 세로 방향 정렬 horizontalAlignment = Alignment.CenterHorizontally // 가로 방향 정렬 ) { Text(text = "첫 번째 아이템") Text(text = "두 번째 아이템") Button(onClick = {}) { Text("버튼") .. 공감수 0 댓글수 0 2025. 2. 14.
  • [Android] Icon 사용법 (Jetpack Compose) Icon 사용법기본 사용법Icon(Icons.Default.Home, contentDescription = "홈 아이콘") Material Icon 종류종류설명Icons.DefaultFilled와 동일한 기본 아이콘Icons.Filled채워진 형태의 아이콘Icons.Outlined테두리만 있는 아이콘Icons.Rounded모서리가 둥근 아이콘Icons.Sharp모서리가 각진 아이콘Icon(Icons.Default.Home, contentDescription = "홈 아이콘") // 기본 아이콘Icon(Icons.Filled.Favorite, contentDescription = "좋아요") // 꽉 찬 하트Icon(Icons.Outlined.Favorite, contentDescription = "빈 하.. 공감수 0 댓글수 0 2025. 2. 13.
  • [Android] Image 사용법 (Jetpack Compose) Image 사용법기본 사용법@Composablefun SampleImage() { Image( painter = painterResource(id = R.drawable.sample_image), contentDescription = "샘플 이미지" )}  painterResource(id: Int): 로컬 리소스에 있는 이미지를 불러오는 함수contentDescription: 접근성을 위해 이미지 설명 Image() 함수 기본 구조@Composablefun ImageExample() { Image( painter = painterResource(id = R.drawable.sample_image), contentDescription = .. 공감수 0 댓글수 0 2025. 2. 12.
  • [Android] Button 사용법 (Jetpack Compose) Button 사용법버튼 종류설명Button기본 버튼OutlinedButton테두리만 있는 버튼TextButton배경 없이 텍스트만 표시되는 버튼IconButton아이콘만 표시되는 버튼FilledTonalButton기본 버튼보다 연한 색상의 버튼ElevatedButton그림자가 있는 입체적인 버튼 기본 사용법 Button( onClick = { /* 클릭 이벤트 */ }) { Text(text = "기본 버튼")} 속성 정리 - modifier (크기 조정)Modifier.size() 사용 (가로, 세로 크기 직접 지정)Button( onClick = { /* 클릭 이벤트 */ }, modifier = Modifier.size(150.dp, 50.dp) // 가로 150dp, 세로 5.. 공감수 0 댓글수 0 2025. 2. 11.
  • [Android] Text 사용법 (Jetpack Compose) Text() 사용법text() 기본 사용법@Composablefun SimpleText() { Text(text = "안녕하세요, Jetpack Compose!")} Text() 속성 정리 - modifier (크기, 배치 등 조정)Modifier를 사용하여 Text()의 크기, 정렬, 배경색 등을 조절Text( text = "Hello, Compose!", modifier = Modifier .padding(16.dp) // 안쪽 여백 .background(Color.LightGray) // 배경 색상 .fillMaxWidth() // 가로 너비 채우기) - color (글자 색상 지정)기본 색상: Color.Black, Color.White, Co.. 공감수 0 댓글수 0 2025. 2. 10.
  • Kotlin 스타일 가이드 - 2 형식지정1. 중괄호1.1. 비어 있지 않은 블록' { ' 는 같은 줄에 위치하며, ' } ' 는 새 줄에 작성항상 중괄호 {}를 사용하는 것이 권장 - 올바른 예시if (condition) { doSomething()} else { doAnotherThing()} - 잘못된 예시if (condition) doSomething() // WRONG! 중괄호 필요 1.2. 빈 블록빈 블록 {}은 줄바꿈하여 작성한 줄 {} 사용 금지 - 올바른 예시try { doSomething()} catch (e: Exception) {} // Okay - 잘못된 예시try { doSomething()} catch (e: Exception) {} // WRONG! 2. 표현식표현식이 하나만 .. 공감수 1 댓글수 0 2025. 2. 9.
  • [Android] 네이밍 표기법(naming Conventions) 네이밍 표기법(naming Conventions) 종류1. Camel Case (낙타 표기법) 1. lowerCamelCase (소문자 낙타 표기법)첫 번째 단어는 소문자로 시작하고, 이후 단어들의 첫 글자는 대문자주로 변수명, 함수명에 사용var userName = "John Doe"fun fetchUserData() { ... }val questionCount = 5 2. UpperCamelCase (대문자 낙타 표기법, PascalCase)모든 단어의 첫 글자가 대문자주로 클래스명, 인터페이스명, 객체명에 사용class ChatViewModel { ... }interface Clickable { ... }object NetworkClient { ... }2. Snake Case (뱀 표기법)1. s.. 공감수 0 댓글수 0 2025. 2. 8.
  • Kotlin 스타일 가이드 - 1 소스 파일모든 소스 파일은 UTF-8로 인코딩되어야 한다.이름지정1. 소스 파일에 최상위 클래스가 하나만 있는 경우파일 이름은 해당 클래스의 이름과 동일해야 하며, 대소문자를 구분하여 .kt 확장자를 붙여야 한다.// Person.kt 파일class Person(val name: String, val age: Int)Person.kt라는 파일 이름이 클래스 Person과 동일하게 설정됨// ChatManager.kt 파일class ChatManager { fun sendMessage(message: String) { println("Sending: $message") }}ChatManager.kt라는 파일 이름이 클래스 ChatManager와 동일하게 설정됨 2. 소스 파일에 최상.. 공감수 0 댓글수 0 2025. 2. 7.
  • Kotlin 변수 데이터 유형 1. 변수 정의 및 사용변수 선언 val count: Int = 0숫자 0을 보유하는 count 라는 정수 변수를 선언한다.변수 이름(name)변수 이름은 원하는 대로 선택 할 수 있지만 kotlin 키워드는 변수 이름으로 사용하지 않는 것이 좋다.코드를 더 쉽게 읽을 수 있도록 변수가 보유한 데이터를 설명하는 이름을 사용하는 것이 좋다.변수 이름은 카멜 표기법 규칙을 따라야 한다.예시numberuserNameisClickedkotlin 키워드: https://kotlinlang.org/docs/keyword-reference.html 변수 데이터 유형(data type)데이터 유형포함할 수 있는 데이터 종류값 예시String텍스트"Text""Sign in"Int정수64-59281Double십진수2.0-.. 공감수 0 댓글수 0 2025. 2. 6.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.