분류 전체보기
-
(기초) 1-7. ViewModel 사용안드로이드 학습/Compose 2025. 9. 16. 17:10
ViewModel은 개념상으로 AAC의 ViewModel과 MVVM의 개념은 다르다. 여기서는 2 개념을 합쳐서 AAC ViewModel - 화면 회전/구성 변경(config change)에도 데이터를 유지하는 부분과MVVM ViewModel의 UI에서 사용되는 데이터 관리 및 UI의 비지니스 로직을 포함한다.상태 보존화면 회전등에도 데이터 유지로직 분리UI 코드와 비지니스 로직 분리수명 보장Activity/Fragment보다 긴 수명주기 예제: 1. ViewModel 호출 val viewModel: CounterViewModel = viewModel()Activity에서 ViewModel을 선언하는 방법이다. by viewModels()를 사용하면 Lifecycler에 따라 자동으로 관리..
-
(기초) 1-6. State와 Recomposition 이해안드로이드 학습/Compose 2025. 9. 12. 11:29
1. State(상태)상태란 Compose가 관찰하는 값이다 (예: MutableState). 사용자가 입력하는 값이나, 데이터베이스에서 가져온 값 같은 것들이 모두 상태가 될 수 있다. 상태를 읽는 Composable은 상태가 바뀌면 재구성(recompose) 대상이 된다. @Composablefun Counter() { var count by remember { mutableStateOf(0) } // 읽으면 이 composable이 state 구독 Button(onClick = { count++ }) { Text("Count: $count") }}mutableStateOf로 만든 값이 바뀌면, 그 값을 읽은 composable만 재구성된다.remember {...} 는..
-
(기초) 1-5. Modifier 활용안드로이드 학습/Compose 2025. 9. 11. 16:17
Modifier란? Modifier는 Compose UI 요소를 꾸미고 동작을 제어하는 역할을 한다. 레이아웃, 크기, 패딩, 클릭, 배경, 정렬 등 거의 모든 UI 속성을 Modifier를 통해 지정할 수 있다.여럭의 Modifer를 연쇠적으로 연결할 수 있으며, 순서가 결과에 영향을 줄 수 있다. Modifier.fillMaxWidth() .padding(16.dp) .background(Color.LightGray) .clickable { /* 클릭 이벤트 */ } 자주 사용하는 Modifierpadding(dp)내부 여백 설정Modifier.padding(16.dp)fillMaxWidth() / fillMaxHeight() / fillMaxSize()부모 크기에 맞춰 크기 확장Mo..
-
(기초) 1-4. Compose 상태 관리 (remember, mutableStateOf, rememberSaveable)안드로이드 학습/Compose 2025. 9. 11. 16:06
안드로이드에서 기존에 UI를 변경하기 위해서는 setText(), setColor() 등의 함수를 호출해서 변경했다. Jetpack Compose에서는 이런 방식을 사용하지 않고 상태(State)에 따라 자동으로 변화를 인식해서 UI를 갱신한다. 이 상태 변경을 위해서 Compose에서는 mutableStateOf를 사용한다. 1. mutableStateOfmutableStateOf는 Compose에서 관찰 가능한 상태(Observable State)를 만들어 준다.값이 변경되면 해당 상태를 읽고 있는 Composable이 자동으로 Recomposition된다.즉, UI가 상태의 변경에 따라 자동으로 갱신해준다. mutableStateOf()를 사용한 값이 변경할 때마다 UI를 다시 그려주는 것이다...
-
(기초) 1-3. Compose 고급 UI - LazyColumn, LazyRow안드로이드 학습/Compose 2025. 9. 10. 17:28
LazyColumn : LazyColumn은 Jetpack Compose에서 세로 리스트를 효율적으로 렌더링하는 Composable이다. Android의 RecyclerView와 역할적으로 유사하지만 Compose 스타일에 맞게 설계되어 있다. 세로 방향 스크롤 리스트를 만들 때 사용기존 xml을 사용할때 RecyclerView와 비슷하다고 할 수 있다.핵심 개념 :Lazy(지연) 구성 : 화면에 표시되는 항목만 UI를 생성하고, 화면 밖으로 나간 항목은 해제되어 메모리/연산을 절약한다. 재사용(유사) : Compose는 내부적으로 효율적으로 항목을 관리하지만, 항목의 식별자(key)를 제공하면 상태 보존을 더 안정적으로 할 수 있습니다. 상태 관리 : 스크롤 위치 등은 LazyListState로 관리합..
-
(기초) 1-2. Compose 기본 UI - Text, TextField, Image, Row, Column, Box안드로이드 학습/Compose 2025. 9. 10. 17:25
1. 기본적인 Text@Composablefun customText() { Text( text = stringResource(R.string.first_text), // Text 글자 modifier = Modifier .size(width = 80.dp, height = 100.dp) // text 영역 사이즈 설정 .padding(start = 10.dp, bottom = 15.dp) // padding 설정 .clickable(onClick = { Log.d("TestActivity", "click") }), color = Color.Green, // 색상 설정 fontWeight = ..
-
(기초) 1-1. Jetpack Compose : 기존 View 시스템과의 차이안드로이드 학습/Compose 2025. 9. 9. 17:27
기존에 안드로이드의 View 시스템은 XML 파일을 이용해서 UI를 표현하였습니다.🧱 XML 레이아웃이란? XML은 "eXtensible Markup Language"의 약자로, 데이터를 구조화하여 표현하는 언어입니다. 안드로이드에서는 XML을 사용하여 앱의 화면(UI)을 구성합니다. 📐 XML 레이아웃 구조 안드로이드 앱의 화면은 **뷰(View)**와 **뷰 그룹(ViewGroup)**으로 구성됩니다.뷰(View): 버튼, 텍스트, 이미지 등 화면에 표시되는 개별 요소입니다.뷰 그룹(ViewGroup): 여러 뷰를 포함하고 배치하는 역할을 합니다. 예를 들어, LinearLayout은 뷰를 세로 또는 가로로 나열하는 뷰 그룹입니다. 안드로이드 앱에서 UI를 만들 때, **기존 방식(View..
-
targetSdkVersion 35로 버전 업회사 생활/기타 지식들 2025. 7. 4. 18:02
회사 생활 관련된 내용은 너무 오랜만이다... targetSdkVersion이 작년에 33에서 34 올린게 얼마 안된 것 같은데, 벌써 34에서 35로 올리라고 한다. 단순히 targetSdkVersion만 변경되는게 아니라 sdk 변경에 대한 대응이 필요해서 귀찮다.여러가지 변경이 되겠지만 퍼미션 처리 방식, 백그라운드 제한, 보안 정책 강화 등등이 변경되기 때문에 앱에서 사용되는게 있다면 변경해줘야 한다. target Sdk를 변경했더니 아니나 다를까 바로 에러가 나온다... 1. 첫번 째 오류 : Android resource linking failedERROR:AAPT: aapt2.exe E 07-04 17:06:56 44596 24692 LoadedArsc.cpp:94] RES_TABLE_TY..
-
클린 아키텍처 준비 - 1안드로이드 학습/Android 기술면접 대비 코드 2025. 4. 24. 09:53
클린 아키텍처 준비 :1. 무료 RestApi 사이트 2. 다른 앱들 구조 분석 3. 내가 만들 앱 기초 구성 및 컨셉 구성1. 토큰이나 로그인 없이 RestApi 가능한 사이트들JSONPlaceholder https://jsonplaceholder.typicode.com특징: posts, comments, albums, photos, todos, users 등 다양한 리소스 제공Reqres : https://reqres.in특징: 사용자 관련 CRUD, 로그인 등 다양한 테스트 가능DummyJSON : https://dummyjson.com특징: products, users, posts, comments, quotes, todos GoREST : https://gorest.co.in/public/v2..
-
5. Compose와 MVVM안드로이드 학습/Compose 2025. 4. 1. 16:55
아키텍처를 공부하면서 자주 사용하던 것이 MVVM 패턴이었다. UI와 데이터 관리를 Activity / Fragment와 ViewModel 그리고 Repository등으로 나눠서 관리해 하나의 class가 하나의 책임만 갖도록 하는 것이 좋다는 것을 유지보수나 협업적인 측면에서 좋다는 것을 학습했었다. Compose도 마찬가지다. 단지 UI 부분이 xml을 사용하지 않는 것으로 변경되었을뿐 아키텍처 패턱을 적용해 각자의 역할을 분담하도록 하는 것이 좋을 것 같다. Compose 자료들을 보니 MVI 아키텍처와 많이 사용한다고 하지만 아직 MVI를 학습하기 전이기 때문에 MVVM과 함께 사용하는 것을 먼저 학습하고 추후 MVI와 같이 사용하는 것을 학습해봐야 겠다. 예제 코드 :실제로 서버와 통신하는..