일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- g 단위테스트
- 회고
- ReactiveProgramming
- Rxjava
- Compose
- 커스텀상태
- Gradle
- android
- 스레드
- 안드로이드강좌
- viewmodel
- k8s
- theming
- 코틀린
- 알게되는
- 책
- 안드로이드
- 코루틴
- Coroutine
- 알고리즘
- 병렬프로그래밍
- 자바
- 글또
- kotlin강좌
- 안드로이드스튜디오
- 테스트
- mockito
- 디자인패턴
- 병럴프로그래밍
- Kotlin
- Today
- Total
목록일상 (61)
선생님, 개발을 잘하고 싶어요.
2부의 목적 코틀린으로 자신의 API를 만드는 법을 배운다. 프로그램 안에서 상호작용하는 클래스가 둘 이상이라면 다른 클래스에게 API를 제공하는 클래스가 적어도 하나 이상이므로, 라이브러리 개발자가 아니더라도 중요한 내용이다. 다루는 것 특정 함수 이름과 연관된 관례 (convention) 위임 프로퍼티 관례 operator 키워드를 붙임으로써 어떤 함수가 관례를 따르는 함수임을 명확히 한다. operator 없이 관례에서 사용하는 함수 이름을 쓴다면 컴파일러가 알려준다. 멤버 함수 뿐 아니라 확장 함수로도 operator 연산자를 정의할 수 있다. 산술 연산자 오버로딩 프로그래머가 직접 연산자를 만들어 사용할 수 없고 언어에서 미리 정해둔 연산자만 오버로딩할 수 있다. 클래스에서 정의해야하는 이름이 ..
다루는 거 Nullable Type 안전한 호출 ?. 엘비스 연산자 ?: 널 아님 단언 !! ?.let { } as? 원시 타입 Any, Any? 타입 Unit 타입 Nothing 타입 읽기 전용 컬렉션 플랫폼타입 널 가능성 코틀린은 null에 대한 접근 시 발생 가능한 NPE 문제를 런타임 에러에서 컴파일 타임 에러로 옮기려고 한다. 널이 될 수 있는지 여부를 타입 시스템에 추가해서 컴파일러가 여러 오류를 컴파일 시 미리 감지하는 기법을 도입한다. 코틀린과 자바의 가장 중요한 차이는 코틀린 타입 시스템이 널이 될 수 있는 타입을 명시적으로 지원한다는 점이다. 코틀린에서 String 타입의 의미는 이 변수가 런타임에 절대로 null이 아니라는 걸 장담한다는 것, 즉 NPE가 발생되지 않을 것이라는 걸 장..
다루는 거 람다 멤버 참조 컬렉션 라이브러리 코틀린 시퀀스 함수형 인터페이스, SAM 인터페이스 수신 객체 지정 람다 (with, apply) 행동을 변수로 저장하거나 함수 인자로 넘기기: 람다(lambda) 와 멤버 참조(member reference) 람다 코틀린은 함수를 값처럼 다루는 방식을 선택했다. 함수를 직접 다른 함수에 전달할 수 있다. 예시로 컬렉션을 다룰 때 수행하는 대부분의 작업은 몇 가지 일반적 패턴에 속하고 이 패턴은 라이브러리로 제공된다. 컬렉션으로 수행하는 일반적인 알고리즘을 구성하고 람다를 인자로 받아서 재활용할 수 있게 되었다. 람다나 멤버 참조를 인자로 받는 함수를 통해 개선한 코드는 더 짧고 더 이해하기 쉽다. people.maxBy { it.age } // 람다로 넘기기..
다루는 거 코틀린과 자바의 클래스 선언 차이 기본적으로 final public 의도적 상속가능성 open 모듈 레벨 가시성 internal 바깥 클래스 참조를 포함하는 중첩 클래스는 inner 같은 파일에서만 상속이 가능한 sealed 프로퍼티의 뒷받침 필드 참조를 위한 field data class 클래스 위임으로 보일러 플레이트 코드 줄이기 object 싱글턴 companion object 무명 내부 클래스 클래스 계층 정의 코틀린 인터페이스는 자바 8 인터페이스와 비슷하다. 구현이 있는 메서드도 정의할 수 있다. 자바 8의 디폴트 메서드와 비슷하다. interface 키워드로 정의한다. 클래스 이름 뒤에 콜론(:)을 붙히고 인터페이스와 클래스 이름을 적는 것이 끝 상위 클래스나 인터페이스에 있는 프..