Tech/App-Android 11

[Android].Ch2-5. Material Design 3

[Android] Ch2-5. Material Design 31. 개요 및 기본 형식@Composablefun MyApp() { MaterialTheme { // Material Design 3 테마 스코프 최상위 적용 // 해당 스코프 내부에 선언된 모든 UI 컴포넌트들은 테마 설정과 규약을 상속받습니다. Surface { // 커스텀 UI 컴포넌트 구현부 } }}Google의 모바일 시스템 코어 디자인 가이드라인인 Material Design 버전 3를 일컫습니다.MaterialTheme 스코프 내부에서는 정의된 색상표 상속, 공용 타이포그래피(폰트 계층), 일반 요소들의 도형 외곽 가이드라인이 자동 렌더링에 반영되어 체계화됩니다...

Tech/App-Android 2026.03.24

[Android.]Ch2-4. remember vs rememberSaveable

[Android] Ch2-4. remember vs rememberSaveable1. 개요 및 기본 형식@Composablefun RememberExample() { // remember: 통상적인 Recomposition 시에만 값 유지 var count1 by remember { mutableStateOf(0) } // rememberSaveable: 화면 회전, 시스템에 의한 제약 프로세스 재시작 시에도 유지 var count2 by rememberSaveable { mutableStateOf(0) }}두 함수 모두 Recomposition 과정에서 UI State 손실을 방지합니다.rememberSaveable의 경우 Bundle 복원 매커니즘을 지원하여, Activity 재..

Tech/App-Android 2026.03.24

[Android].Ch2-3. 상태 호이스팅

[Android] Ch2-3. 상태 호이스팅 (State Hoisting)1. 개요 및 기본 형식// 상태를 위로 끌어올림@Composablefun ParentComposable() { var text by remember { mutableStateOf("") } // 부모가 State 소유 // State와 변경 함수를 자식에게 전달 ChildComposable( text = text, // 현재 값 전달 onTextChange = { newText -> text = newText } // 변경 방법 전달 )}@Composablefun ChildComposable( text: String, // State 값만 받음 (읽기 전용) onTe..

Tech/App-Android 2026.03.24

[Android].Ch2-2.TextField

[Android] Ch2-2. TextField1. 개요 및 기본 형식@Composablefun TextInputExample() { var text by remember { mutableStateOf("") } // 입력 텍스트 State TextField( value = text, // 현재 노출될 값 onValueChange = { newText -> // 입력 변경 감지 시 동작 text = newText // 상위 State 필드 업데이트 } )}사용자로부터 텍스트 입력을 수신하는 Composable입니다.value와 onValueChange 파라미터는 UI 동기화를 위한 필수 요소입니다.반드시 State 객체와 연..

Tech/App-Android 2026.03.23

[Android].Ch2-1.LazyColumn & LazyRow

[Android] Ch2-1. LazyColumn & LazyRow1. 개요 및 기본 형식@Composablefun ListExample() { LazyColumn { // 수직 스크롤 리스트 items(10) { index -> // 10개 항목 생성 Text("항목 $index") } } LazyRow { // 수평 스크롤 리스트 items(10) { index -> Text("항목 $index") } }}스크롤이 가능한 리스트 UI를 생성하는 Composable 함수입니다.Lazy 속성에 의해 현재 화면에 노출되는 항목(Item)만 렌더링되므로, 메모리 및 성능 최적화에 유리합니다.L..

Tech/App-Android 2026.03.23

[Android].Ch1-5.이벤트 처리

[Android] Ch1-5. 이벤트 처리1. 이벤트 처리 개요1) 기본 형식@Composablefun EventExample() { Button( onClick = { // 람다 구문: 클릭 발생 시 실행할 동작 지정 // 버튼 클릭 시 수행할 코드 구조 } ) { Text("클릭") }}사용자와 애플리케이션 간의 상호작용(터치스크린 이벤트, 키보드 입력 등)을 처리하기 위한 메커니즘입니다.이벤트가 발생했을 때 수행되어야 하는 콜백 함수는 코틀린의 고차 함수와 람다 조합으로 간결하게 정의됩니다.2. 주요 컴포넌트 이벤트 구조1) Button 클릭 (onClick)가장 보편적인 버튼 인터랙션 리스너입니다.onClick: 사용자가 ..

Tech/App-Android 2026.03.20

[Android] Ch1-4.State & Recomposition

[Android] Ch1-4. State & Recomposition1. 개요1) 기본 형식@Composablefun StateExample() { // remember로 상태 유지, mutableStateOf로 변경 가능한 상태 생성 var count by remember { mutableStateOf(0) } Button(onClick = { count++ }) { // count 변경 시 자동 Recomposition 발생 Text("클릭 횟수: $count") }}State (상태): UI에 표시되는 갱신 가능한 데이터를 의미합니다.Recomposition (재구성): 참조 중인 State 값이 변경될 때, UI 구조가 자동으로 다시 렌더링(업데이트)되는 과정을..

Tech/App-Android 2026.03.20

[Android].ch1-3.Modifier

[Android] Ch1-3. Modifier1. Modifier 개요1) 기본 형식@Composablefun ModifierExample() { Text( text = "Hello", modifier = Modifier // Builder 패턴 체이닝 구성 .size(100.dp) // 1. 크기 고정할당 .padding(16.dp) // 2. 외부 여백 할당 .background(Color.Blue) // 3. 배경색 적용 )}Composable 컴포넌트의 크기, 형태 수정, 클릭 이벤트 감지 등의 동작을 정의하는 제어 객체입니다.메서드 체이닝 방식을 차용하여 다수의 modifier 속성을 연계하여 ..

Tech/App-Android 2026.03.20

[Android].ch1-2.기본 Layout

[Android] Ch1-2. 기본 Layout1. 기본 Layout 개요1) 기본 형식@Composablefun LayoutExample() { Column { // 수직(세로) 배치 // 자식 요소들을 세로로 나열 } Row { // 수평(가로) 배치 // 자식 요소들을 가로로 나열 } Box { // 중첩 배치 (Z-축) // 자식 요소들을 겹쳐서 배치 }}하위 Composable 객체들의 위치와 배치를 결정하는 컨테이너 역할을 수행합니다.Jetpack Compose의 화면 설계는 크게 Column(세로), Row(가로), Box(겹침) 세 가지로 이루어집니다.2. 주요 구성 및 속성1) Column (세로 배치)자식 컴포넌..

Tech/App-Android 2026.03.20

[Android].ch1-1.Composable 함수

[Android] Ch1-1. Composable 함수1. Composable 함수1) 기본 형식@Composable // Composable 함수 어노테이션fun ComponentName() { // UI 구성 코드}@Composable 어노테이션이 부착된 함수입니다.Jetpack Compose 환경에서 UI를 구성하는 기본 단위로 작동합니다.다른 Composable 함수 내부에서만 호출이 가능합니다.2) 주요 구성 요소@Composable 어노테이션: 해당 함수를 Composable로 지정합니다.컴파일러 측에 данного 함수가 UI 트리를 생성한다는 사실을 명시합니다.호출 제약: 일반 함수에서는 호출할 수 없으며, 오직 다른 Composable 함수 내에서만 호출 가능합니다.함수 명명 규칙..

Tech/App-Android 2026.03.20