전체 글 (159) 썸네일형 리스트형 Hilt 사용 중 파일명을 바꾼 경우 에러 내용Task :app:hiltJavaCompileDebug FAILEDCould not find class file for 'com.ysw.domain.usecase.TurnOffAlarmUseCase'. 원인- Hilt를 한번 돌린 상태에서 파일명 변경시 발생한 상황 해결Build - Clean Project - Rebuild Project 진행 GSON GSON JSON을 Java 객체로 변환하거나 그 반대로 변환하기 위한 구글에서 제공하는 라이브러리여기서 JSon이란JSON (JavaScript Object Notation)은 데이터를 저장하고 전송하기 위한 가볍고 쉽게 읽을 수 있는 포맷이름과 값 쌍으로 이루어져있다.JSON의 구조객체 (Object): {} 중괄호로 묶여 있으며, 키-값 쌍의 집합으로 구성됩니다.배열 (Array): [] 대괄호로 묶여 있으며, 값의 순서 있는 리스트로 구성됩니다.JSON 데이터는 기본적으로 두 가지 구조를 기반 사용법객체를 Json으로 직렬화val data = Data("abc", 30, "efgd")val jsonString: String = gson.toJson(data) Json을 객체로 역직렬화val gso.. Android Gradle Gradle이란Android 프로젝트를 빌드하고 관리하는 데 사용되는 빌드 자동화 도구Groovy 또는 Kotlin DSL을 사용하여 빌드 스크립트를 작성할 수 있으며, 복잡한 빌드 로직을 명확하고 유지보수하기 쉽게 만든다.Gradle의 주요 개념Project프로젝트는 하나 이상의 작업(task)을 포함할 수 있으며, 작업은 빌드 프로세스의 논리적 단계를 나타낸다.TaskGradle 빌드의 기본 단위Dependency프로젝트에서 필요한 외부 라이브러리나 모듈을 정의PluginsPlugins은 프로젝트에 추가 기능을 제공 Project Build.Gradle에서 apply false로 되어있는 이유플러그인 버전을 중앙에서 관리하면서, 필요한 모듈에서만 선택적으로 플러그인을 적용하기 위함 remember / ViewModel에서 State 관리 remember사용 위치: Composable 함수 내에서 사용사용 목적: Composable 함수 내부에서 상태를 유지하고, 그 상태가 변경될 때 해당 Composable 함수가 다시 재구성(recompose)stateFlow, update()사용 위치 : ViewModel사용 목적 : ViewModel에서 상태를 관리하고, 여러 Composable 함수에서 이 상태를 관찰할 수 있도록 Compose Column, Row, Text그냥 작성하면 LinerLayout수직은 Column수평은 RowSpacer를 통해 길이를 조정Content 영역에 내용을 담는다.Modifer로 속성을 지정horizontalAlignment = Alignment.CenterHorizontally로 중앙 정렬 컴포저블, 프리뷰@Composable함수인데 대문자로 시작이 함수들만 setContent 영역에서 사용 가능@Composable이 없으면 일반 함수재사용을 목적으로 한다.@Preview이게 있으면 미리보기 기능 BoxColumn과 Row는 LinearLayout에 해당하는 것Box는 FrameLayout 같은 것Box는 칸칸 나누는 느낌 리스트, LazyColumnColumn - Scrollview에 해당Modifie.. Kotlin In Action - 10 어노테이션과 리플렉션 어노테이션과 리플렉션을 사용하면 그런 제약을 벗어나서 미리 알지 못하는 임의의 클래스를 다룰 수 있다.어노테이션을 선언할 때가 자바랑 약간 차이가 있다10.1 애노테이션 선언과 적용애노테이션 적용@와 애노테이션 이름으로 적용JUnit 사용시 @Test 어노테이션@Deprecated 를 ReplaceWith로 커버 가능애노테이션 인자를 지정하는 문법클래스를 인자로 지정하는 경우: ::class를 클래스 이름 뒤에 넣는다.인자로 들어가는 애노테이션에는 @를 붙이지 않는다.배열을 인자로 설정할 때 arrayOf 사용, 자바에서 선언한 클래스를 사용한다면 가변인자로 사용시 arrayOf를 사용하지 않아도 됨애노테이션 대상사용 지점 대상 선언으로 애노테이션을 붙일 요소를 정할 수 있다.@get : Rule = .. Kotlin In Action - 9. 제네릭스 실체화된 타입 파라미터선언 지점 변성9.1 제네릭 타입 파리미터자바는 List 타입의 변수를 선언할 수 있지만 코틀린은 처음부터 제네릭을 도입해서 List을 항상 정의해야 한다.제네릭 함수와 프로퍼티반환 타입도 추론해준다.일반 프로퍼티는 타입 파라미터를 가질 수 없다.여러 타입의 값을 가질 수 없으므로제네릭 클래스 선언자바와 마찬가지로 클래스도 타입 파라미터를 넣은 꺾쇠 기호를 넣으면 제네릭하게 만들 수 있다.자기 자신을 타입 인자로 참조할 수 있다.타입 파라미터 제약클래스나 함수에 사용할 수 있는 타입 인자를 제한하는 기능: 을 표시하여 상한 제한을 표시타입 파라미터를 널이 될 수 없는 타입으로 한정아무것도 상한을 정하지 않으면 Any?를 상한으로 정한 파라미터와 같다.그러므로 null을 제외하고 싶으.. Kotlin In Action - 8. 고차 함수: 파라미터와 반환 값으로 람다 사용 고차 함수 : 람다를 인자로 받거나 반환하는 함수8.1 고차 함수 정의함수 타입파라미터 -> 반환 타입인자로 받은 함수 호출일반 함수를 호출하는 구문과 같다자바에서 코틀린 함수 타입 사용함수 타입의 변수는 FunctionN 인터페이스를 구현하는 객체를 저장invoke 메소드를 구현하는 무명 클래스를 넘긴다.Unit 타입의 값을 명시적으로 반환해야만 한다.디폴트 값을 지정한 함수 타입 파라미터나 널이 될 수 있는 함수 타입 파라미터람다의 디폴트 값을 정의해놓아서 특수상황에만 변경가능하게 사용널이 될 수 있는 경우는 명시적으로 검사하거나 ?.invoke로 검사함수를 함수에서 반환~~을 인자로 받아서 Double을 반환 : 함수를 반환람다를 활용한 중복 제거수신 객체 람다나, 함수를 반환하는 것을 활용하여 중.. 이전 1 2 3 4 ··· 20 다음