일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- andorid studio
- Android
- Rx자바
- hardcoded string search
- rxandroid
- java
- 안드로이드
- deprecating the install_referrer
- android P
- 하드코드검색
- RxJava2
- Retrofit2
- RX
- RXjava
- Switch to the Play Referrer API by March 1
Archives
- Today
- Total
Lucky Dog
[안드로이드] Java vs Kotlin 실제 안드로이드 코드 사례 세션 요약 (Droid Knights 2019) 본문
Droid Knights 2019 Java vs Kotlin 실제 안드로이드 코드 사례. 발표자 박상권
2017년 Google I/O에서 공식 언어로 지정
Java Annotation 과 비교
var address: String? = null // @Nullable 과 같음 var id: String = "ted" // @NonNull 과 같음
var와 달리 val 은 get() 만 가능
물음표를 이용해서 null이 아니라면 다음 변수를 참조할 수 있도록 체이닝할 수 있습니다. 이러한 개념을 safe call이라고 합니다.
- ex) 순차적으로 null 체크 후 변수가 null 이라면 null 리턴
private fun getSelectedDealerName(car: Car?) : String? { return car?.auction?.selectedBid?.dealer?.name }
- ex) 순차적으로 null 체크 후 변수가 null 이라면 null 리턴
class 생성 (VO)
- ex) var를 선언해서 setter/getter가 자동생성되었고, 물음표를 통해서 Nullable한 필드임을 알 수 있습니다. 또한 생성자도 만들어 줍니다.
data class Dealer(var name: String?, var address: String?)
- ex) var를 선언해서 setter/getter가 자동생성되었고, 물음표를 통해서 Nullable한 필드임을 알 수 있습니다. 또한 생성자도 만들어 줍니다.
Log
- Log.d("ted", "딜러이름: $name, 딜러주소: $address")
Lambda
button.setOnClickListener { // to something. }
apply / also / run / let / with
Java 코드와의 호환
- Kotlin 에서 만들고
class ForJava(var name: String, val birth: Int, var isShow: Boolean)
- Java 에서 사용
String name = forJava.getName(); forJava.setname("ted"); ...
- Kotlin 에서 만들고
Kotlin으로 작성된 코드는 Java 에서 원래의 사용행태처럼 사용할 수 있다.
- Annotation 이용 : @JvmName, @JvmField, @JvmStatic, @JvmOverloads 등등
Extednsion function
원래정의되어있던함수인것처럼 사용 (BaseActivity 를 만들어 Utils처럼 에서 사용하던 것처럼.
fun Context.showToast(text: CharSequence, duration: Int = Toast.LENGTH_SHORT) { Toast.makeText(this, text, duration).show() } showToast("안녕하세요")
코틀린을 자바처럼 코딩하지 말자
val name = bid!!.dealer!!.name val intent = Intent(this, TedActivity::class.java) intent.putExtra(EXTRA_AAA, aaa); Log.d("ted", "딜러이름: " + name + " , 딜러주소:" + address)
본 게시글은 단순 요약 본으로 아래에서 세션 발표 다시보기 가능
Youtube : https://www.youtube.com/watch?v=e9O0wt-eY-E
Comments