분류 전체보기
-
4. Compose Side Effect안드로이드 학습/Compose 2025. 3. 27. 15:56
SideEffect(부수효과)란?Compose에서 Side Effect(부수효과)는 Composable 함수 범위 밖에서 상태 변경이 필요하면 Effect API를 사용해야한다. Effect API에서의 작업은 UI와 관련되어 있어야 하며, Compose의 기본적인 단방향 흐름을 방해하면 안된다. Side Effect를 사용하지 않는 것이 좋지만 필요할 때가 있다.특정 상태 조건에 따라 다른화면으로 이동 (예: Splash 화면 > Main 화면 이동)Toast 메시지 같은것을 표시이와 같은 일회성 이벤트Compose에서는 부수효과를 처리하기 위해 제공되는 3가지의 Effect API와 다양한 State 함수가 함께 제공되고 있습니다.LaunchedEffectDisposableEffectSideEffec..
-
2. Compose Modifier를 활용한 스타일링 (padding, background 등등)안드로이드 학습/Compose 2025. 3. 18. 11:37
Modifier란 ? > Jetpack Compose 에서 UI 요소의 크기, 레이아웃, 동작, 스타일 등을 변경하는데 사용하는 구성요소. Modifier의 주요 기능은 5가지 정도로 나눌 수 있다. 1. 크기 조정2. 정렬 및 배치3. 배경 및 스타일링4. 클릭 이벤트5. 애니매이션 효과 1. 크기조절Modifier.width(width: Dp) : 너비를 width.dp로 설정 Modifier.height(height: Dp) : 높이를 height.dp로 설정 Modifier.fillMaxWidth(fraction: Float = 1f) : 가로 전체 채우기, 기본은 모두 채우는 것(fraction = 1f)이며 전체 대비 채우는 비율을 설정하는 것도 가능 Modifier.fillMaxHeight..
-
Compose 학습 이정표안드로이드 학습/Compose 2025. 3. 16. 18:29
1️⃣ 기초 단계: Compose 입문목표: Compose 철학과 기초 문법 이해학습 내용Jetpack Compose 소개: 기존 View 시스템과의 차이프로젝트 세팅: compose-bom, Material3 테마 적용기본 UI 컴포넌트: Text, Button, Image레이아웃: Column, Row, Box상태 관리: remember, mutableStateOf, rememberSaveable미리보기: @Preview 활용실습 예제간단한 카운터 앱 만들기 2️⃣ 레이아웃 & 상태 단계 (초급)목표: 다양한 UI 배치와 사용자 입력 처리학습 내용고급 레이아웃: LazyColumn, LazyRowModifier 활용: padding, fillMaxSize, clickable입력 컴포넌트: TextFi..
-
안드로이드 DataStore 예제안드로이드 학습/Android 기술면접 대비 2025. 2. 28. 18:01
DataStore 설명 : 링크 DataStore에는 2가지 종류가 있다. 기본 타입을 저장하려면 Preference Datastore :기본 타입 이외의 타입을 저장하려면 Proto Datastore를 사용해야 한다.Preferences DataStore 예제 1. build.gradle (Modulo:app)implementation "androidx.datastore:datastore-preferences:1.1.3"implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.3" // optional - RxJava2 supportimplementation "androidx.datastore:datastore-preferences-rx..
-
안드로이드 DataStore와 SharedPreference안드로이드 학습/Android 기술면접 대비 2025. 2. 19. 10:28
안드로이드에서 User의 간단한 정보 (설정 값이나 기본 프로필 정보) 등은 SharedPreference를 사용해서 저장해왔다. 최근에 학습을 하다가 DataStore라는게 있다는 것을 새로 알게되고 SharedPreference를 DataStore로 이전하라는 내용을 보게되어 새로 학습해보기로 했다. Developer 페이지에서 DataStore를 사용하라고 되어 있다. SharedPreference 특징 : key - value의 형태로 데이터를 저장하고 불러와 데이터 양이 적고 간단한 구조일때 유용하게 사용된다.어플리케이션이 삭제되기 전까지는 데이터가 유지된다. 이러한 데이터를 xml 파일 형태로 저장하기 때문에 너무 많은 데이터를 넣게 되면 메모리 예외 에러가 나타날 수도 있다. (사실 ..
-
Compose 학습 - 1 : 기초안드로이드 학습/Compose 2025. 2. 5. 17:18
링크 : https://developer.android.com/courses/pathways/compose?hl=ko Jetpack Compose | Android Developers네이티브 Android UI를 빌드하기 위한 최신 도구 키트인 Compose에 관해 알아봅니다.developer.android.com Compose에서는 함수에 @Compose 주석을 추가해야한다. @Composablefun Greeting(name: String, modifier: Modifier = Modifier) { Text( text = "Hello $name!", modifier = modifier )} 중간중간 따라 쓰는게 귀찮아서 완료된 코드로 분석1. onCreate ..
-
안드로이드 아키텍처 (MVC)안드로이드 학습/Android 기술면접 대비 2024. 12. 9. 11:58
안드로이드 개발자가 자주 보는 앱아키텍처 종류로는 MVC, MVP, MVVM, MVI다. MVC는 4가지 아키텍처중 가장 오래된 패턴이며, 현재는 안드로이드에서 잘 사용하지는 않는다. 실제로 적용하고 많이 사용하는 것은 MVVM일 것이다. 하지만 아키텍처가 어떤 이유로 MVVM에로 넘어갔고 왜 아키텍처 패턴을 사용하는지나 가장 쉬운 구조로 관심사 분리라는 주제를 학습하는 것이 좋다고 생각해서 MVC를 먼저 학습해봤다. MVC (Model View Controll) :MVC는 Model, View, Controller의 약자다. 이것을이 하는 역할을 보자면Model앱에서 사용하는 데이터, 상태, 비지니스 로직을 포함한다.View 또는 Controller에 묶이지 않아서 재사용이 가능하다.View사용자에게..
-
안드로이드 앱 테스트 기본 - 2 (UI Test예제 포함)안드로이드 학습/Android 기술면접 대비 2024. 12. 7. 17:20
안드로이드에서 UI 테스트는 아래 방법들이 있다Espresso: 구글이 제공하는 UI 테스트 프레임워크.UIAutomator: 시스템 앱을 포함한 더 넓은 범위를 테스트할 때 사용.Compose Test: Jetpack Compose UI를 테스트하는 전용 API.그 외에 Robotium, Calabash, Robolectric 등등이 있다. Espresso 공식 샘플 ( Espresso 뿐만 아니라 UIAutomator, JUnit4 등 다양한 샘플 보유)1. EspressoEspresso는 앱의 UI와 테스트를 자동으로 동기화 해준다. Espresso는 3가지 기본 component를 갖는다.ViewMatchers - 현재 뷰 계층 구조에서 뷰를 찾을 수 있도록 지원합니다.ViewActions - ..
-
안드로이드 앱 테스트 기본 - 1 (JUnit Test 예제 포함)카테고리 없음 2024. 12. 4. 18:18
자바를 배우면서 JUnitTest를 사용해본 경험이 있다. 안드로이드에서도 앱 테스트 코드를 만들어서 테스트 한다는 것을 알고는 있었지만 학습해본 적이 없어서 이번에 한번 학습해보려고 한다.1. 테스트 코드를 작성하는 이유 ?일반적으로 내가 개발할때 테스트하는 것은 앱을 에뮬레이터나 스마트폰에 직접 설치 후 사용해보는 방식으로 테스트를 해봤다. 하지만 프로젝트의 규모가 크다면 앱을 build하는 시간도 오래 걸리고 ui를 만드는 시간도 걸리기 때문에 테스트 속도가 느려진다. 또한 반복적인 테스트를 해야하는 상황이라면 앱을 일일이 빌드하고 테스트 해보는 것은 비효율적일 수 있다. 이러한 부분에서 장기적으로 봤을때는 테스트 코드를 만들어 놓은다면 똑같은 테스트를 해야하는 경우는 시간을 절약할 수 있고 빌드..
-
안드로이드 Coroutine Flow - 3 (StateFlow) 코드안드로이드 학습/Android 기술면접 대비 2024. 12. 2. 14:37
ViewModelclass CoroutineStateFlowViewModel : ViewModel() { // StateFlow private val _coroutineData = MutableStateFlow(CoroutineUiState.success("")) val coroutineData: StateFlow> = _coroutineData.asStateFlow() // ShareFlow private val _sharedFlow = MutableSharedFlow( replay = 1, extraBufferCapacity = 1 ) val sharedFlow: SharedFlow = _sharedFlow .shareIn( ..