일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- progressbar custom marshmallow
- Messenger
- android google account add call
- bindservice
- HashMap
- app to app transaction
- java hashmap sorting
- nougat
- android device add account
- android border custom
- progressbar rounding
- android layout border
- android progressbar setIndeterminateDrawable not working
- Today
- Total
기타치는 개발자
[Kotlin]코틀린 시작하기 - 코틀린 소개 및 간단한 변수 설명 본문
코틀린 시작하기
코틀린은 Google I/O 2017 에서 안드로이드 공식 언어로 채택되면서 세상밖으로 나오게 되었습니다. Kotlin은 IntelliJ IDEA의 개발사인 JetBrains에서 2011년에 개발된 언어로서 JVM에서 구동되며 Java와 100% 호환되며 기존 자바로 개발된 프로젝트에서도 코틀린 코드를 추가 할수도 있고 Android Studio를 사용하여 기존 Java코드를 Kotlin으로 손쉽게 변환할수 있습니다.
이번 글에서는 Kotlin의 장단점 및 간단한 변수 및 Java를 기준으로 특징 등을 작성해도록 하겠습니다.
● Kotlin의 장단점
1. 장점
- NullPointException 을 줄일수있습니다.
- 기본으로 람다 지원으로 기존 람다를 위한 라이브러리가 필요 없습니다.
- 소스가 간결해 집니다.
- Extension Function 추가 기능으로 기존 클래스에 함수를 추가해서 사용이 가능합니다.
- Kotlin-Android-Extension사용으로 기존 findViewById를 사용한 뷰 선언 및 ButterKnife 라이브러리를 사용하지 않아도 됩니다.
2. 단점
- 기본 Java로 개발했을때보다 빌드 시간이 조금 더 걸린다(조금씩 개선되고 있다고합니다.)
* Kotlin에 대한 단점이 더 많을 것이지만 현재 제가 느낀 단점은 많지않았습니다. 러닝커브도 낮은편이고 소스 포멧이나 기본 사용법이 조금 다른것이 있지만 충분히 학습으로 극복가능할 정도 같습니다. 차후에 더 단점을 느끼게되면 업데이트 하도록하겠습니다.
● Kotlin의 특징
1. 변수선언 및 객체 생성
Java |
Kotlin |
||||||
|
|
2. 변수의 불변 여부
Kotlin | |||
|
3. null 값 선언
- Java에서는 기본적으로 널 값이 허용되지만 Kotlin에서는 기본적으로 널값을 허용하지 않습니다.
- null이 허용 가능한 변수는 변수타입 뒤에 ? 로 선언을 해 주게됩니다.
- 널값을 컴파일 단계에서 검사해 개발자들이 놓치는 NullPointException 을 줄일 수 있습니다.
Kotlin | |||
|
4. 함수선언
- 'fun 함수명( 파라미터명:타입) : 리턴타입'- 순으로 정의 합니다.
- 리턴값이 없을경우 자바의 void는 Unit 으로 표시하거나 생략할 수 있습니다.
- 간단한 표현방법으로는 ' fun 함수명( 파라미터명:타입) : 리턴타입 = 리턴값' 처리 부 도 가능합니다
Kotlin |
|||
|
5. 반복문
- 반목문은 Java와 동일하나 forEach 문만 지원하는것이 다름니다.
- ranges 표현식으로 .. 을 사용하여 시작.. 끝 으로 표현 가능하다 이경우 시작 <= 끝 과 동일합니다.
- 역순으로 순서를 주고 싶을경우 downTo를 사용합니다.
Kotlin |
|||
|
6. 조건문(when)
- If문은 Java와 동일합니다.
- switch 문은 when과 동일하며 break; 구문이 없는것이 특징입니다.
Kotlin |
|||
|
7. 범위지정 함수 ( let(), apply(), with(), run() )
- let은 함수를 호출한 객체를 인자로 받아 {} Block내부 에서 사용가능
- apply는 특정한 객체를 반복하여 사용할경우 반복된 부분을 줄일 수 있습니다.
- run는 자바의 익명함수처럼 사용 가능함니다.
- ?을 사용하여 null 체크하여 널 값이 아닐경우에만 블록을 실행시킬수 있습니다. (let(), apply(), run())
하지만 with같은경우는 사용하기전 널값을
확인하는 부분이 필요합니다.
- 눈에 보이는 let, apply, run 의 동작은 비슷하지만 각 함수에 대한 함수 인자 및 리턴값이 다름으로 상황에 맞게 사용해야 될것 같습니다.
Kotlin |
|||
|
간단히 코틀린의 특징과 Java와의 차이점을 알아보았습니다. 기존 Java 개발자라면 별 어려움없이 학습 가능 할것으로 생각됩니다. 다음 글에서는 기존 Java로 작성된 프로젝트를 코틀린으로 변경하는 글을 작성해보도록 하겠습니다.