android63 [Android-Compose] 안드로이드 컴포즈 바텀시트 구현해보기! (Android Compose BottomSheet) - ModalBottomSheetLayout, ModalBottomSheet 이번 공부 노트는 안드로이드 컴포즈에서 바텀 시트를 예제를 통해 구현해 보도록 하겠다.구현하는 방법은 ModalBottomSheetLayout, ModalBottomSheet 크게 두 가지가 있다.하나하나씩 알아보자! ※ 본 예제는 MaterialDesign3 기준으로 작성했다.해당 버튼을 누르면 과일 리스트가 바텀시트로 나오는 예제이다.# ModalBottomSheetLayout이 방식은 구버전 API로 콘텐츠와 바텀 시트를 함께 포함하는 레이아웃 컴포넌트이다.일반적으로 화면 전체를 감싸는 방식으로 사용따라서 콘텐츠와 바텀 시트를 함께 포함하고 싶다면 사용 추천! ModalBottomSheetLayout 내부를 살펴보자@Composable@ExperimentalMaterialApifun ModalBot.. 2025. 4. 20. [Git - 오류] Git Push 실행 시 error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500 에러 # 오류 발단이번 오류 포스팅은 여느 때와 같이 작업한 코드를 커밋 후 푸시를 하려고 했다. 하지만 아래와 같은 오류를 만나게 된다..error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500send-pack: unexpected disconnect while reading sideband packet # 오류 원인오류의 원인으로는 간단하게 설명하면 파일 크기 때문에 발생하는 오류이다. 더 정확한 이유는 Git에서 큰 파일을 푸시할 때 버퍼 크기 제한으로 인해 "HTTP 500 Internal Server Error"가 발생할 수 있다. # 해결 방법해결 방법으로는 간단하다!버퍼 크기가 부족하니 버퍼 크기를 늘려주기만 하면 되는 .. 2025. 3. 26. [Compose] 안드로이드 컴포즈 드롭다운 메뉴 만들기 (Android Compose DropdownMenu) - 예제를 통한 사용법 이번 포스팅은 은근 사용 하는 컴포즈의 드롭다운 만드는 법을 작성해 보겠다. 기존 XML에서는 어댑터도 만들고 리스너로 이벤트 처리를 해서 코드가 분산되어 흐름을 한눈에 보기 힘들었다.반면 컴포즈에서는 단일 함수 내에서 완전한 구현이 가능하기 때문에 많이 편리해졌다. 그럼 이제 사용법을 알아보자!# DropdownMenu@Composablefun DropdownMenu( expanded: Boolean, onDismissRequest: () -> Unit, modifier: Modifier = Modifier, offset: DpOffset = DpOffset(0.dp, 0.dp), scrollState: ScrollState = rememberScrollState(), .. 2025. 2. 28. [Android-Compose] Compose 렌더링 단계 알아보기 (Android Compose Rendering) 이번 포스팅은 Compose의 렌더링 단계를 알아보도록 하겠다.# 렌더링 단계우선 위 그림은 안드로이드 공식문서에 있는 렌더링 단계의 그림이다.렌더링 단계는 크게 총 3단계 컴포지션(Composeition), 레이아웃(Layout), 그리기(Drawing)로 나누어져 있다.이제 하나씩 알아가 보자!# 1. 컴포지션 (Composeition) 단계 - What 화면에 뭘 보여 줄지컴포지션 단계에서는 UI 코드를 노드 트리 구조로 변환/만드는 단계이다.해당 트리를 생성하면서 각 UI 컴포넌트의 계층 구조와 속성들을 파악하고 생성된 트리는 2단계인 레이아웃 단계에서 사용이 된다.이제 노드 트리 구조를 어떤 식으로 만드는지 아래 예제를 보자!Column { Image( painter = re.. 2025. 1. 30. [Compose] Button 클릭 시 2번씩 리컴포지션이 일어나는 이유 이번 포스팅은 Compose 스터디 중 어느 스터디원 중 한 분이 말씀하신 부분을 궁금해서 찾아본 결과를 포스팅하겠다.# 구현 상황@Preview@Composablefun AddMemo() { val inputValue = remember { mutableStateOf("") } Row( modifier = Modifier .padding(all = 16.dp) .height(100.dp), horizontalArrangement = Arrangement.End ) { // 임시 TextField TextField( modifier = Modifier .fil.. 2025. 1. 26. [Android-Compose] 컴포즈 NavHost에서 ViewModel 공유 예제를 통해 알아보기 - Screen끼리 공유 이번 포스팅은 Compose에서 NavHost 사용 시 다른 Screen끼리 ViewModel을 공유해야 할 상황이 생긴다.이때 ViewModel을 공유하는 방법을 포스팅해보겠다. 해결법을 바로 보고 싶으신 분은 결론으로 넘어가면 된다!# 예제이번 예제는 ScreenA와 ScreenB가 있고 같은 ViewModel를 사용해 데이터를 공유하는 상황이다.또한 DI 라이브러리를 사용 안 하는 상황프로세스를 자세히 표현하자면 아래와 같다.## Before 코드### MainActivityclass MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedI.. 2024. 12. 7. 이전 1 2 3 4 ··· 11 다음