BasicTextField를 활용한 Custom Compose TextField(EditText)
Compose의 EditText compose에서는 editText로 TextField를 사용합니다. 하지만 TextField는 내부 padding 값이 임의로 정해져 있으며, 커스텀하기 어렵다는 단점이 있습니다. 따라서 BasicTextField를 사용한 Custom Compose TextField를 제작했습니다. BasicTextField https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/package-summary#BasicTextField(kotlin.String,kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,andr..
- [Android] Tech,Study/[Android] Custom
- · 2023. 9. 21.
[Android,Paging] Compose에서 Paging Library 구현하기 (2)
Paging Library 구현 2번째 포스팅 입니다. https://jinudmjournal.tistory.com/131 [Android,Paging] Compose에서 Paging Library 구현하기 (1) Paging 라이브러리 Paging 라이브러리는 대규모 데이터 세트에서 페이징 된 데이터를 로드하여 표시하는 기능을 제공한다. Paging 라이브러리를 사용해서 네트워크 데이터 소스에서 페이징 된 데이 jinudmjournal.tistory.com Paging 구현 순서 이 포스팅에서 사용하는 Paging 구현 순서는 아래와 같다. 1. Data Model을 정의한다. - Entity, Dto, Domain Model, Mappers.. 2. RoomDB를 구현한다. 3. Retrofit 등 ..
- [Android] Tech,Study/[Android] Compose
- · 2023. 9. 16.
![[Android,Paging] Compose에서 Paging Library 구현하기 (1)](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/bnIRqP/btst7xhLpJl/mtijujn5K2MlObtJAax160/img.jpg)
[Android,Paging] Compose에서 Paging Library 구현하기 (1)
Paging 라이브러리 Paging 라이브러리는 대규모 데이터 세트에서 페이징 된 데이터를 로드하여 표시하는 기능을 제공한다. Paging 라이브러리를 사용해서 네트워크 데이터 소스에서 페이징 된 데이터의 스트림을 설정하고, Compose View에 표시하는 방법을 학습했다. 우선 아래와 같이 Paging 관련 Library를 추가한다. // paging def paging_version = "3.1.1" implementation "androidx.paging:paging-runtime:$paging_version" implementation "androidx.paging:paging-compose:1.0.0-alpha18" 대부분의 페이징 라이브러리는 서버와 로컬 DB를 함께 사용하므로, Room과 ..
- [Android] Tech,Study/[Android] Compose
- · 2023. 9. 16.
![[Android, Multi Module] 멀티모듈 구성](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/boORiv/btspk8fCAo3/k4WN7jtjSlhr0AZeQz0k0k/img.png)
[Android, Multi Module] 멀티모듈 구성
일반적인 모듈화 패턴 멀티 모듈로 프로젝트를 구성할 때, 모든 프로젝트에 맞는 하나의 모듈화 전략은 없다. Gradle의 유연한 특성으로 인해 프로젝트를 구성하는 방법에는 제약이 없으며, 다중 모듈로 Android 앱을 개발할 때 일반적인 규칙과 공통 패터만 지킨다면 자신만의 모듈화 전략을 세울 수 있다. 규칙1. 높은 응집력 및 낮은 결합력 원칙 가장 중요한 방법은 결합력 및 응집력 속성을 사용하는 것이다. 결합력은 모듈이 서로 종속된 정도를 측정하고, 응집력은 단일 모듈의 요소가 기능적으로 관련된 방식을 측정한다. 일반적으로 결합력은 낮추고 응집력은 높여야 한다. [낮은 결합력] - 모듈이 최대한 서로 독립적이어야 한다. - 한 모듈의 변경사항이 다른 모듈에 미치는 영향이 없거나 최소화 되어야 한다...
- [Android] Architecture/[Android] Multi Module
- · 2023. 7. 29.
![[Compose] Preview에 Viewmodel 연결하기](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/tjJpt/btso9gKtNwd/vllqrETJLPyJ9r0817VH90/img.jpg)
[Compose] Preview에 Viewmodel 연결하기
Jetpack Compose로 개발 중에 Preview에 Viewmdodel을 적용하는 코드를 작성한다. @Preview(showBackground = true) @Composable fun DefaultPreview2() { MyFoodDiaryBookAOSTheme { MainUi(todayViewModel = TodayViewModel()) } } Main화면을 담당하는 MainUi 적용 시, 위와 같이 뷰 모델을 적용해야 했다. 하지만 ComponentActivity 내부에서 viewmodel을 선언해서 사용해야하는데, MainUi 함수의 경우 따로 뷰 모델을 선언할 수 있는 코드를 작성할 수 없다. 따라서 적용하려 하는 뷰 모델의 껍데기 역할을 담당하는 FakeViewModel을 만들어서 Pre..
- [Android] Tech,Study/[Android] Compose
- · 2023. 7. 26.