coroutine은 kotlin 언어를 쓰는 개발자들이 겪는 스레딩 문제를 직관적인 방식으로 해결 할 수 있는 기술 이다. 기존 자바의 async task 또는 rxjava 등 비동기 작업을 하기 위해서는 하나의 쓰레드를 생성해야 하는데,Coroutine은 쓰레드 스케
Androidx는 Android support library를 대체하는 오픈 소스 프로젝트이다.Jectpack 내에서 라이브러리를 개발, 테스트, 패키지화, 버전 및 릴리즈하기 위해 사용한다.Support Library와 마찬가지로 AndroidX는 Android OS
자바의 클래스와 메소드드는 기본적으로 상속에 대해 열려 있지만 코틀린의 클래스와 메소드는 기본적으로 final이다.어떤 클래스의 상속을 허용하려면 클래스 앞에 open 변경자를 붙여야 한다. 더불어 오버라이드를 허용하고 싶은 메소드나 프로퍼티의 앞에도 open 변경자를
코틀린 인터페이스는 자 8 인터페이스와 비슷하다. 안에는 추상 메소드뿐 아니라 구현이 있는 메소드도 정의 할 수 있다.위 코드는 추상 메소드가 있는 인터페이스를 정의 한다. 이 인터페이스를 구현하는 모든 비추상 클래스에 대한 구현을 제공 해야한다.자바에서는 extend
코틀린은 자체 컬렉션을 생성하지 않지만 자바 클래스를 확장해서 더 풍부한 API를 제공한다.(ex : collection(Int).max() , list.first() ... 등등)함수 파라미터의 디폴트 값을 정의하면 오버로딩한 함수를 정의할 필요성이 줄어든다. 그리고
많은 개발자들이 좋은 코드의 중요한 특징중 하나가 중복이 없는것이라 믿는다.하지만 자바코드를 이용할때에는 DRY(Don't Repeat YourSelf) 원칙을 피하기는 쉽지 않다.코틀린에서 이걸 해결하는 방법은 함수를 함수 내부에 중첩 시킬 수 있다.여기서는 코드중복
vararg 키워드를 사용하면 호출 시 인자 개수가 달라질 수 있는 함수를 정의할 수 있다.중위(infix)함수 호출 구문을 사용하면 인자가 하나뿐인 메소드를 간편하게 호출 할 수 있다.구조 분해 선언을 사용하면 복합적인 값을 분해해서 여러 변수에 나눠 담을 수 있다.
확장 함수 어떤 클래스의 멤버 메소드인 것 처럼 호출 할 수 있지만 클래스 밖에 선언된 함수이다. > 확장 함수를 만들려면 추가하는 함수 이름 앞에 그 함수가 확장할 클래스의 이름을 붙이면 된다. 클래스 이름을 수신객체 타입 이라 부르며 확장함수가 호출되는 대상을 수
최상위 함수 기존 자바에서는 하나의 메소드 또는 프로퍼티를 호출하기 위해서는 클래스안에 포함시켜아한다. 하지만 코틀린에서는 메소드 또는 프로퍼티를 파일안에 클래스 없이 최상위 수준에 위치 하면 된다. > JVM이 클래스 안에 들어있는 코드만을 실행 할 수 있기 때문에
코틀린에서는 자바와 같이 여러가지 컬렉션을 만들 수 있다.코틀린의 collection 함수는 자바의 상호작용을 위해 자바의 컬렉션을 통해 제공된다. 코틀린 자체에서 컬렉션을 제공하지 않는다.코틀린은 자바보다 컬렉션에 제공되는 함수가 많다.추후에 자바에 없는 메소드를 코
함수를 정의 할 때 fun 키워드를 이용한다. val : 읽기전용 변수, var : 변경 가능한 변수에 쓰인다.문자열 템플릿은 변수이름 앞에 $ 붙이거나, 식을 ${식}처럼 블록으로 둘러싸면 변수나 식의 값을 문자열에 넣을 수 있다.if는 코틀린에서 식이며, 값을 만들
코틀린의 예외처리 코틀린의 예외처리는 자바의 예외처리와 전혀 다르지 않다. throw를 식으로 처리가 가능하다. try,catch,finally 자바와 마찬가지로 예외처리를 하려면 try,catch,finally 절을 함께 사용한다.
코틀린에서 while과 do-while 루프가 있다.두 루프의 문법은 자바와 다르지 않다.코틀린에는 자바의 for 루프(변수를 초기화 하고 루프를 실행 할때마다 갱신하고 루프 조건이 거짓이 될때 반복을 마치는 형태의 루프)에 해당하는 요소가 없다.루프를 대신하기 위해
enum >1. 자바에서는 enum 이지만 코틀린에서는 enum class 이다. 코틀린에서 enum은 소프트 키워드라 부르는 존재다 코틀린은 자바와 다르게 enum에 단순히 값만 열거하는 존재가 아니고 class 이기 때문에 프로퍼티나 메소드를 정의할 수 있다.
클래스 >자바는 필드가 둘 이상으로 늘어나면 생성자인 본문에서 파라미터를 대입하는 대입문의 수도 늘어난다. 코틀린에서는 필드 대입 로직을 훨씬 더 적은 코드로 작성 할 수 있다. 이러한 유형의 클래스를 값 객체라 부르며 간결하게 기술 할 수 있는 구문을 제공한다.
Hello world 함수선언 : fun 키워드 이용 파리미터 : 파라미터 이름 뒤에 타입을 쓴다. 함수를 최상위 수준에 정의 할 수 있다. class안에 함수를 넣어야 할 필요가 없다. 배열도 일반적인 클래스와 마찬가지다. 코드 끝에 세미콜론(;)을 넣을 필요가 없
코틀린 컴파일 코틀린 소스코드의 확장자는 파일명.kt 이다. 컴파일 할 때 코틀린 소스코드를 분석해서 .class 파일을 만든다.
코틀린은 타입추론을 지정하는 정적 타입 언어이다.객체지향과 함수형 프로그래밍을 모두 지원한다.1.일급 시민 함수를 이용해 추상화가 가능하다.2.불변 값 지원을 통해 다중 스레드 애플리케이션 개발과 테스트를 쉽게 할 수 있다.런타임 라이브러리는 크기가 작고, 코틀린 컴파
자바의 코드 스타일을 동일하게 이용 할 수 있지만, 코틀린언어의 특성을 잘 활용하여 간결하고, 문제를 해결하기 위해 만들어진 실용적인 언어다.젯브레인사의 IntelliJ IDE를 이용하면 간결한 구조로 바꿀 수 있는 코드 패턴을 자동적으로 감지해서 수정을 제시 한다.
대표적으로 서버(spring), 안드로이드등 플랫폼 적용가능자바와 마찬가지로 코틀린도 정적타입 언어(객체의 필드나 메소드를 사용 할때 컴파일러가 타입을 입증)대신 자료형을 명시 할 필요 없이 변수 타입을 자동으로 유추 가능. (타입 추론)정적 타입 지정의 장점a. 성능