2021. 5. 28. 13:00γπ±Android/π Kotlin
μ€λμ μλλ‘μ΄λ κ°λ°μ 곡μμΈμ΄μΈ μ½νλ¦°μ΄ λ¬΄μμΈμ§ κ·Έλ¦¬κ³ μ μ’μμ§μ λν΄ μ 리ν΄λ³΄λλ‘ νκ² μ΅λλ€.
μ½νλ¦° μ΄λ?
κ°κ²°ν λ¬Έλ²κ³Ό λμ μμ μ±μΌλ‘ λμ μμ°μ±μ 보μ₯νμ¬ κ°λ°λ νλ‘κ·Έλλ°μΈμ΄λ‘ 100%μλ°μμ νΈνμ΄ κ°λ₯νμ¬ μλ°λ‘ μμ±λ νλ‘μ νΈμ μ½νλ¦° μ½λκ° μΆκ°ν μ μλ€λ μ μ΄ κ°μ₯ ν° μ₯μ μ λλ€.
λν μλ° μ½λλ₯Ό μ½νλ¦°μΌλ‘ μ½κ² λ³νμ΄ κ°λ₯ν©λλ€.
μ½νλ¦°μ΄ μ μ’μ κ±΄λ° ?
βοΈ κ°κ²°ν λ¬Έλ²
μλ°μ Cμ κ°μ΄ λ€μ λ¬Έμ₯λμ μλ―Ένλ μΈλ―Έμ½λ‘ ; μ΄ μ¬λΌμ‘μ΅λλ€.
κ°μ²΄λ₯Ό μμ±ν λμλ new ν€μλ μμ΄ μ½κ² κ°μ²΄λ₯Ό μμ±ν μ μκ³ , 보ν΅μ μΈμ΄μμλ νμ μ λͺ μνλ©° λ³μλ μμλ₯Ό μ μΈνμ§λ§
μ½νλ¦°μμλ νμ μΆλ‘ μ μ§μνμ¬ μΌλ°μ μΈ κ²½μ° νμ μ λͺ μνμ§ μμλ λ©λλ€!
βοΈλ μμ μ±
μλ°μμλ κ°μ²΄ νμ μ λ³μμμ null κ°μ νμ© μ¬λΆμ λν ꡬλΆμ ν μ μμμ΅λλ€. νμ§λ§ μ½νλ¦°μμλ ? , !! μ μ΄μ©νμ¬ null κ°μ ꡬλΆν μ μμ΅λλ€.
μ null κ°μ ꡬλΆν΄μΌν κΉ?
λκ°μ νμ© μ¬λΆλ₯Ό μ»΄νμΌ λ¨κ³μμ κ²μ¬νκΈ° λλ¬Έμ λ°νμ μλ¬λ₯Ό μ€μΌ μ μμ΄μ! : )
βοΈκ°λ³κ³Ό λΆλ³μ ꡬλΆ
μλ°μμλ νμ μ λͺ μνμ¬ λ³μ, μμλ₯Ό μμ±νμ§λ§ μ½νλ¦°μμλ λ³μμ μμλ₯Ό μ μΈμ 'val', 'var'λ₯Ό μ΄μ©ν©λλ€.
- val : λΆλ³(νλ² μ μΈνλ©΄ κ°μ λ³νμν¬ μ μμ΄μ) = μλ°μ finalκ³Ό λμΌ
- var : κ°λ³ (νλ² μ μ΄νκ³ κ°μ λ³νμν¬ μ μμ΄μ) = μλ°μ final μμ΄ μ μΈνλ λ³μμ λμΌ
+ 컬λ μ λ΄ ν¬ν¨λ μλ£(리μ€νΈ λ°μ΄ν°)μ λν΄μλ κ°λ³κ³Ό λΆλ³μ ꡬλΆν μ μμ΅λλ€.
- List<String> = listOf("foo","bar","baz") // λΆλ³
- MutableList<String> = mutableListOf("foo","bar","baz") // κ°λ³
βοΈλλ€ ννμ μ§μ
μλλ‘μ΄λ κ°λ°μ μμ΄μ μ΄κ² κ°μ₯ ν° μ½νλ¦°μ κ°μ μ΄λΌκ³ μκ°ν©λλ€. SAM(Sigle Abstract Method) λ³νμ μ§μνμ¬ ν¨μμ μΈμλ‘ μ λ¬λλ μΈν°νμ΄μ€μ μΈμ€ν΄μ€λ₯Ό λλ€μμΌλ‘ ννν μ μμ΄μ !
- Java
View view = ...;
view.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "Click", Toast.LEGTH_SHORT).show();
}
})
- Kotlin
val view = ....
// SAM λ³νμ ν΅ν΄ OnClickListener
// μΈν°νμ΄μ€μ μΈμ€ν΄μ€λ₯Ό λλ€μμΌλ‘ ννν¨
view.setOnClickListener {
Toast.makeText(it.context, "Click", Toast.LEGTH_SHORT).show()
}
βοΈμ€νΈλ¦Ό API μ§μ
Java 8μλ 컬λ μ λ΄ μλ£λ₯Ό λ€λ£¨λ λ° μ μ©ν μ€νΈλ¦Ό APIλ₯Ό μ§μν©λλ€.
μ΄λ, μλ°λ μλλ‘μ΄λ λ²μ 6.0 μ΄μμμλ§ μ¬μ©μ΄ κ°λ₯νμ§λ§ μ½νλ¦°μ μ½νλ¦° νμ€ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ μ€νΈλ¦Ό APIλ₯Ό μ 곡ν΄μ!
βοΈμλ²½ν μλ° νΈνμ±
μ½νλ¦°κ³Ό μλ°λͺ¨λ μλ° κΈ°λ° νκ²½μμ κ·Έλλ‘ μ¬μ© κ°λ₯ νλ―λ‘ μλ° λΌμ΄λΈλ¬λ¦¬ λͺ¨λ νΈνμ΄ κ°λ₯ν©λλ€ !
μ€λμ μ½νλ¦° μΈμ΄μ λν΄ μκ°ν΄λλ Έμ΅λλ€.
μλλ‘μ΄λ κ°λ°μ μλ°λ‘ νμκ³ κ³μ λ€λ©΄, νλ² μ½νλ¦°μ μ μ©ν΄λ³΄μλ κ²μ μ΄λ¨κΉμ?
'π±Android > π Kotlin' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Kotlin] νμ₯ν¨μ(Extension Function) (0) | 2021.01.14 |
---|