일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 파이썬
- 배열
- ContentProvider
- nullpointerexception방지
- 리스트
- Java
- Dependency
- compose
- Hilt
- 티스토리챌린지
- jetpack
- disposableeffect
- Provider
- Kotlin
- programmers
- 문자열
- 백준파이썬
- android
- composelifecycle
- filternotnull()
- 자료형
- 자바
- list
- 프로그래머스
- 오블완
- 자바set
- 자바리스트정렬
- 파이썬문법
- Python
- 백준
- Today
- Total
목록App (12)
study gomi
Content Provider란?Android에서 Content Provider는 앱 간 데이터 공유를 관리하는 구성요소이다.앱이 데이터(파일, db, 네트워크 등)에 접근하거나 다른 앱과 데이터를 공유할 때 사용됨.contentProvider를 구현하면 데이터를 CRUD(생성, 읽기, 수정, 삭제) 작업을 통해 제공할 수 있다.주요 역할데이터 공유: 여러 앱이 데이터를 효율적으로 공유하도록 중앙 집중식 접근을 제공보안 제공: 앱 간 데이터 접근 권한을 제어할 수 있는 권한 관리 기능을 제공URI를 통한 데이터 접근: content://로 시작하는 URI를 사용해 특정 데이터에 접근하도록 함.데이터의 캡슐화: 데이터베이스, 파일, 설정 등 다양한 데이터 소스를 일관된 방식으로 캡슐화하여 제공주요 메서드(..
Provider의 일반적인 의미무언가를 제공하는 역할을 하는 일반적인 개념프로그래밍에서 흔히 사용되는 용어특정 서비스를 제공하거나 리소스를 관리하는 클래스 또는 객체를 지칭예Dependency Injection Provider: 객체를 생성하거나 주입할 때 사용하는 도구 (예_Hilt, Dagger의 @Provides)Service Provider: 특정 API나 기능을 구현하고 이를 외부에서 호출 가능하게 만드는 클래스Content ProviderAndroid 프레임워크에서 데이터 공유를 위해 특별히 설계된 구성요소앱 간의 데이터 공유를 표준화된 방식으로 처리하기 위해 만들어짐android.content.ContentProvider를 상속받아 구현하며 content://URI를 통해 접근둘의 차이점구분..
1. 자동 생성 (@Inject)- @Inject를 통해 선언된 생성자는 별도의 모듈 없이도 Hilt가 자동으로 관리한다.class Repository @Inject constructor(private val service: Service)- 간단한 구조를 가진 클래스에 적합 2. 명시적 생성 (@Provides)- @Provides는 복잡한 생성 로직이나 외부 라이브러리의 의존성을 제공할 때 사용됨.@Module@InstallIn(SingletonComponent::class)object AppModule { @Provides fun provideService(): Service = ServiceImpl()}- 이 방식은 외부 클래스나 인터페이스에 주입이 필요할 때 유용
1. 의존성 그래프- 의존성 주입을 위한 객체 관계를 나타내는 구조 - Hilt가 의존성을 생성하고 주입하는 과정을 시각적으로 이해하도록 도와줌.더보기cf_ 의존성 그래프란?의존성 그래프는 객체 간의 의존성을 노드(Node)와 간선(Edge)으로 표현한 구조.노드(Node) : 생성 가능한 객체(클래스나 데이터).간선(Edge): 노드 간의 의존 관계.예를 들어 ViewModel이 Repository를 필요로 하고, Repository가 Service를 필요로 한다면 그래프는?ViewModel --> Repository --> Service2. 생성 원리- Hilt는 코드에서 @Inject, @Provides, @Binds 등의 주석을 분석하여 의존성 그래프를 생성더보기cf_ 의존성 그래프 생성 주요 과..

컴포저블에서의 효과(side-effects)를 처리하기 위해 사용하는 것들.1. LaunchedEffect: 컴포저블이 처음 Composition에 추가되었을 때 한 번 실행되는 코루틴. 주로 비동기 작업을 수행하거나 초기화 작업을 처리할 때 사용 1-1. 특징컴포저블의 Lifecycle과 연동됨.주어진 키(key)가 변경될 때마다 실행.내부에서 suspend 함수를 호출할 수 있다.컴포저블이 Recomposition될 때 다시 실행되지 않는다(키가 변경되지 않는 한).1-2. 주요 시나리오API 호출 등 초기 작업이 필요한 경우Animation 등 suspend 함수 기반 작업ViewModel 데이터 관찰 시작1-3. 사용법@Composablefun MyScreen(data: String) { ..
FloatingActionButton의 elevation 값을 0.dp로 설정하여서 그림자를 없앴지만 다른 방법으로 그림자를 다시 추가하고 싶을 때 자연스러운 그림자를 유지하는 방법 사용자 정의 그림자FloatingActionButton 자체에 직접적으로 그림자나 elevation을 수정하지 않고,Modifier.shadow()를 사용해서 그림자를 추가하는 방법: 버튼의 background와 shadow를 조정FloatingActionButton( onClick = { }, modifier = Modifier .shadow(elevation = 4.dp, shape = CircleShape, clip = false), // 사용자 정의 그림자 추가 elevation = Flo..

1. text만 표시하는 기본 floating buttonFloatingActionButton( onClick = { }, containerColor = Color.LightGrey, modifier = Modifier .clip(CircleShape) .size(dimensionResource(R.dimen.fab_size)) // 버튼 크기 고정) { Text( "test", style = MaterialTheme.typography.labelSmall.copy(fontSize = 12.sp), // 텍스트 크기 줄이기 textAlign = TextAlign.Center, maxLines = 1, // 한..
1. expandable floating button참고: https://www.youtube.com/watch?app=desktop&v=9SHNfpnzdEU유튜브 방법은 조금 복잡하다. 좀 더 간단하게 만들었다.@Composablefun ExpandableFloatingButton() { var expanded by remember { mutableStateOf(false) } // 버튼 확장 여부를 추적 Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.BottomEnd ) { // 확장된 버튼들 Column( horizontalAlignmen..