상속PropertiesInterfaceFunctional(SAM) interfacesExtensionsData classSealed Class and InterfaceGenerics(in, out, where)Nested and inner classesEnumInlin
실드 클래스는 상속 구조에서 더 제한된 상속구조를 가능하게 해준다실드 클래스의 서브클래스들은 컴파일 시에 다 알게 돼서 어떤 하위 클래스들이 있는지 알 수 있음.실드 인터페이스도 똑같이 동작함 이게 왜 필요하냐?모듈이나 패키지 밖에서 마음대로 상속해서 사용하지 못하도록
코틀린 클래스들은 자바처럼 타입 파라미터를 가질 수 있음자바에서 generic은 불변성이다. List<String>은 List<Object>의 서브 타입이 아님.List가 불변성이 아니면은 자바의 배열보다 나은게 없음.invariant(무공변): 제네릭 타입
class 안에 interface interface 안에 class 모두 가능함.class 멤버 끼리만 사용할 클래스는 inner 붙여준다알수없는 이너클래스 인스턴스는 obejct 사용해서 생성된다...?
가장 기본적인 사용. 타입 안전성 구현시 사용하는~근데 각 constant는 오브젝트임 그래서 각 이넘은 이넘 클래스의 인스턴스인거고 초기화가 됨.기본 함수 오버라이딩과 함께 익명 클래스에 대응되는 mothod들도 선언할 수 있음.제공하는 것들Enum classvalu
일반 클래스의 일부 기능 제공 => properties와 functions, initbacking field 제공 안함.간단한 계산 properties만 제공.(lateinit/delegated properties가 아니라)인터페이스 상속 가넝. 클래스 계층구조에 낄수
위임! 상속이냐 위임이냐\~~위임 페턴은 객체 지향을 지키면서도 상속에대한 좋은 대안이라는 것을 증명했다. 코틀린은 위임 구현을 위한 보일러플레이트 코드를 줄이기위해 지원하고있다.Derived의 슈퍼타입 리스트에 있는 by절은 b가 Derived 객체 내부에 저장되고,
명시적으로 새 하위객체를 만들지 않고 클래스의 일부만 수정한 객체를 만들고 싶을 때 사용함표현식은 익명 클래스의 오브젝트를 만듬(class 선언 없이)한번 사용하기에 유용한 클래스는 선언과 동시에 정의할 수 있고 현재 존재하는 클래스로 상속할 수 있다. interfac
존재하는 타입에다가 다른 이름을 지어주고 사용할수있게 하는거.새로운 우리가 정의한 타입은 못하고 원시 타입에만 적용이 가능하다~
코틀린 함수 정의는 fun으로 함override할 때 default value 없애는것도 가능JVM에서 함수가 실행되면 Named argument를 사용 못할 수 있음. 자바 bytecode가 함수 parameters의 이름을 항상 보존하지만은 않기 때문에\~~ 함수가
정의 프로젝트의 루트 디렉토리에 위치한 파일. `` 태그를 시작하는 앱이 어떻게 구성되는지를 정의하는 xml 파일. 파일 기능 앱의 구성요소 안드로이드 4대 컴포넌트라 불리는것들이 여기에서 정의된다. Activity의 각 서브클래스의 `` Service의 각 서브클래스
상위 함수와 람다 코틀린의 함수는 first-class 이다. 변수와 데이터 구조에 저장될 수 있고, 다른 상위 함수에 인자로 전달되거나, 다른 상위 함수들로부터 반환될 수 있다.함수가 아닌 다른 값에 대해 가능한 모든 연산을 수행할 수 있음. 이를 용이하게 하기 위해
컴포즈는 코틀린으로 만들어져서 강력하다!모던하고 강력함, 코드를 읽고 쓰기 편함. 간단함.재사용 가능한 Component를 만들기 쉬움.UI 요구 사항이 복잡해짐에 따라 각 UI는 상태에 따라 변경되어야 하는데 이게 꼬여서 발생되는 버그가 많음. 이걸 쉽게 해결하기 위
Compose는 선언적이어서 업데이트 하는 유일한 방법은 새 인수로 동일한 컴포저블을 호출하는것임.State가 업데이트 될때마다 Recompose가 실행됨.컴포지션: 컴포즈가 컴포저블을 실행할 때 빌드한 UI에 관한 설명(컴포저블의 트리 구조)초기 컴포지션: 처음 생성
앱 배포 자동화 Fastlane Git workflow
내가 또 까먹을 까봐 쓰는 compose UI 가이드Activity에서 setContent로 해당 activity의 UI를 그릴 때, MaterialTheme로 정의한 커스텀 테마로 감싸서 UI 를 바인딩 하도록 가이드 되고있음 근데 이거 잘 쓰고있나? 점검해볼 필요가