본문 바로가기
  • 원하는 게 있으면 주문을 말해봐~ 디딩 보딩 디보디보딩🎶

compose6

[안드로이드] Unknown Kotlin JVM target: 21 오류 해결법 🔒 오류와 원인  안드로이드 스튜디오를 업데이트 했더니 기존 프로젝트에서 이런 오류가 생겼다.원인은 Kotlin에서 설정한 JVM 버전이 현재 Gradle 또는 Kotlin 플러그인에서 지원되지 않기 때문에 발생한다고 한다.      확인해보니 Gradle JDK가 21로 되어 있었다.   🗝️ 해결법 아래와 같이 JDK를 17로 변경해주고 module 단위 gradle 파일도 수정해주면 해결~!     위처럼 다운그레이드 하지 않고 21 버전으로 업그레이드를 시도해보았으나, 변경해야 할 부분이 훨씬 더 많고 수정을 하면서 기존 프로젝트와 충돌할 가능성이 컸다. 결국 compose compiler version을 수정하는 부분에서 공식 문서를 보아도 이해하지 못 하게 되면서 포기... 그냥 다운그레이.. 2025. 1. 4.
[Kotlin] HiltViewModel이란? (with Compose) 💢 Hilt는 Android에서 의존성 주입(Dependency Injection)을 쉽게 구현할 수 있게 해주는 라이브러리이다. 프로젝트 내에서 수동 DI를 사용하는 상용구 코드를 줄여주며, 모든 Android 구성 요소에 컨테이너를 제공하고 컨테이너의 수명 주기를 자동으로 관리한다.Dependency Injection은 구성요소 간의 의존 관계가 내부가 아닌 외부를 통해 정의되게 하는 디자인 패턴 중 하나이다. 목적은 객체를 생성하고 사용하는 관심사를 분리하는 것.   프로젝트 내에서 MVVM 패턴과 Compose Navigation을 사용했다. ViewModel을 View에 전달하는 과정에서 Hilt를 사용하지 않으니 MainActivity 혹은 NavigationGraph 내에서 ViewMode.. 2024. 7. 28.
[Compose] LazyColumn(LazyRow)과 Lazy를 중첩하는 법(Nested LazyColumn) LazyColumn(LazyRow)란? 기존의 recyclerView를 대체하는 Compose UI이다. 항목의 수가 많거나 길이를 알 수 없는 목록을 특정 뷰로 반복하여 리스트로 보여줘야 할 때 사용한다. recyclerView를 사용해본 사람들이라면 어댑터를 연결하고 ViewHolder를 생성하는 과정이 굉장히~~ 귀찮다. 그런데 LazyColumn을 사용하면 이 복잡한 과정이 모두 필요가 없다. 굳굳 사용법 @Composable private fun courseLazyView(courses: List) { LazyColumn( modifier = Modifier .padding(start = 20.dp, top = 30.dp, end = 20.dp, bottom = 20.dp) ) { items(c.. 2023. 12. 14.
Compose Layout(Column, Row, Box) compose는 뷰를 tree구조로 관리하지 않고 flat하게 관리한다고 한다. 하위 요소를 측정한 후, 또 그 요소의 하위 요소를 측정하는 방식이 아니라 한 하위 요소를 하나씩만 측정한다고 한다. 즉, Column, Row, Box 등의 레이아웃을 아무리 중첩해도 flat하게 관리되기 때문에 중첩된 것과 안 된 것에 차이가 없다고 한다. 이 때문에 성능 면에서 ConstraintLayout을 사용하는 이점이 사라져 Compose에서는 사용을 지양하고 있다. 난 이 부분을 처음 접했을 때 너무너무 깜짝 놀랬다. layout의 중첩을 전혀 생각하지 않을 수 있다!! compose에는 재밌는 부분이 굉장히 많은 것 같다. 종류 Column Row Box BoxWithConstraints Column, Row.. 2023. 12. 11.
[Compose] 라디오 버튼 형식으로 View 출력하기 개발 요구사항최근 3일 내(오늘, 내일, 모레) 식단을 식사 시간대별로 분류하여 출력오늘, 내일, 모레 버튼을 라디오 버튼 형식으로 구현각각의 버튼을 클릭하면 상응하는 날짜의 식단을 Text로 출력 개발 내용BtnDateView : 라디오 버튼을 구현한 파일MainActivity : 라디오 버튼의 현재값을 받아 ContentView에 전달하는 역할ContentView : 라디오 버튼의 현재값에 따른 출력 파일selectedDay라는 변수 위주!요런 느낌   DateEnumenum class DateEnum(val date:String) { TODAY("오늘"), TOMORROW("내일"), AFTER_TOMORROW("모레")} BtnDateView라디오 버튼을 구현한 파일기본 라디오 버.. 2023. 12. 7.
아람별 개발 일지(Compose kotlin app) 아람별은 경상국립대학교 학생생활관인 '아람관'의 식단 제공 서비스 아람별은 이미 web과 ios 앱으로 제공이 되고 있는 서비스이다. AppStore https://apps.apple.com/kr/app/%EC%95%84%EB%9E%8C%EB%B3%84/id6446250930 Web http://arambyeol.kro.kr ‎아람별 ‎아람별은 아람관 식단 정보를 알려주는 앱입니다. 오늘, 내일, 모레 아람관 식단을 쉽게 확인하세요 ! 앱뿐만 아니라, 위젯으로도 간편하게 확인할 수 있습니다. apps.apple.com AramByeol 아람관 별점을 매겨보자! arambyeol.kro.kr 내가 맡은 것은 안드로이드 앱 개발! 개발 내용 최근 3일 내(오늘. 내일, 모레) 식단을 식사 시간대별로 분류하여.. 2023. 12. 6.