제가 안드로이드에 Kotlin을 썼어요.

10939 단어 AndroidKotlin

Kotlin이란 무엇입니까?


https://kotlinlang.org/
  • JVM에서 실행되는 Java 언어와 100% 호환됨
  • Java의 지루한 설명을 간단히 쓸 수 있음
  • Java보다 안전
  • Android, TomCat 등 Java 프레임워크도 지원
  • Java와 다른 점


    작법이 다르다

  • 변수
  • 자바에서 형식 설명을 하는 곳은 var/val로 통일할 수 있다.
  • (kotlin에서 기본 접근 제한은public)
  • 변수java
       public int i = 1;
       public MyObject obj = new MyObject();
    
    변수kt
       var i = 1 
       val obj = MyObject() <- newが必要ない
    
  • 메서드
  • 적게 썼다
  • 방법java
        public String getFoo(){
            return "foo";
        }
    
    방법kt
        fun getFoo() : String {
            return "foo"
        }
    
  • 클래스
  • 대체적으로 같지만 상속/설치 소스를 구분하지 않는 지정 방법
  • 상속자() 지정 구조 함수
  • 학급.java
       public class MainActivity extends BaseActivity implements Listener {
       ...
       }
    
    학급.kt
    class MainActivity : BaseActivity(), Listener {
            ...
       }
    

    유형 추정

  • 변수의 유형은 최초 대입 유형
  • 유형 추정.java
       public int i = 1;
       public double d = 2.0;
       public String str = "foo"
    
    유형 추정.kt
       var i = 1 
       var d = 2.0
       var str : String = "foo" <- 型を宣言することもできる
       i = str <- コンパイルエラ(一度型が確定したら変えられない)
    
  • 유형을 쓰지 않기 때문에 유형을 이해하기 어렵기 때문에 반환값을 되돌리는 방법명/수신 변수명은 이해하기 쉽다
  • 형은 뭐예요?kt
       var useCase = WifiStateUseCase()
       var flag = usecase.checkWifiStatus() <- boolean?Int?
    

    val

  • val은java에서 말하는final(변수변경불가)
  • 기본적으로val을 사용하고 어떻게든 뒤에서 변경하고 싶은 변수만 var
  • 로 설정합니다
    val.java
       public final String str = "foo"   
    
    val.kt
       val str = "foo"
       str = "bar" <- コンパイルエラ
    

    빈 안전


    null 안전.java
       public String str = null; <- OK
       int i = str.length; <- nullPointerException
    
    null 안전.kt
       var str : String? = null
       var i = str?.length <- nullが入る(落ちない)
    
  • null일 수 있는 변수를 구분하고null일 때 떨어지지 않는 생각
  • null이 존재하지 않는다는 것을 의미하지 않는다
  • String?이렇게 일반적인 스타일로?추가
  • 일반적인 금형은 nonNull로 다음과 같은 상황을 금지할 수 있다
  • null의 대입
  • 비어 있는 할당
  • Java 라이브러리에서 반환값 대입
  • nonNull 및 Nullablekt
       //var nonNull : String = null <- 1.コンパイルエラー
       var nullable : String? = null <- 通る
       //var nonNull : String = nullable // <- 2.コンパイルエラー
    
  • nullable 방법을 어떻게 호출합니까?
  • null 안전.kt
       //var i = nullable.length <- コンパイルエラー
       var i = nullable?.length <- Int?型が返る(nullになる)
       var ii = i++ <- inullableなので、コンパイルエラ
    
  • ?열어!!"이 변수는 절대 비어 있지 않습니다"
  • NullPointer가 생기는 구멍이 생기므로 사용하지 않는 것이 좋다
  • null 안전.kt
       var i2 = nullable!!.length <- nullPointerException
    

    제가 안드로이드에 Kotlin을 썼어요.


    여기 너무 좋아요.

  • "선발"가능
  • 자바에서final이 눈에 띈다
  • 처음으로'이거 변경하지 마'
  • use 편리
  • DB 접근 등에 필요한 close 처리
  • use.kt
        override fun save(wifiState: WifiState) {
            Realm.getDefaultInstance().use { realm ->
                realm.beginTransaction()
                wifiState.id = getNextId()
                realm.copyToRealm(wifiState)
                realm.commitTransaction()
            }
        }
    
  • 개발 시 비어 있음
  • 가져올 때!!사용할 때를 제외하고는 옮긴 후 떨어지지 않았다

  • 변수, 방법이 모두 갖추어져 있어 보기 쉽다
  • fun/var/val과 모두 3자&형 기술이기 때문에 통일

  • Scala 보기 싫다
  • 정적 언어의 유형 추측이 쉽다
  • 상대할 수 없다

  • Kotlin+DataBinding+XML
  • DataUtil 클래스를 사용하여 DataBinding에 밀리초 표시
  • Kotlin에서 Java에서 말하는 Static 방법@JvmStatic을 사용하려면 주석이 필요합니다
  • "DataBinding 구축에 실패했다"고만 말해서 Kotlin에서 DataBinding을 사용한 설정을 조작했다
  • 오류가 발생하더라도 인터넷에 상세한 정보가 없기 때문에 정보를 정확하게 얻을 수 있는 능력이 필요하다
  • 느끼다

  • AndroidStudio의 언어 지원도 Java와 마찬가지로 편리해졌다
  • null이 떨어지지 않으면 개발도 빨라진다
  • val과 null 보안을 효과적으로 사용하기 위해서는 MVC와 MVVM을 가져올 필요가 있다고 생각합니다.
  • Android 라이브러리는 Java이기 때문에 Activity에서 쓰기는 무의미하다
  • View 레이어, Model 레이어를 분리하지 않으면 var
  • 총결산

  • 작법은 다르지만 대부분 코드량이 적어진다
  • null안 떨어져
  • 즐거운 언어가 쓰여 있다
  • 언젠가는 제품에 도입하고 싶다
  • 좋은 웹페이지 즐겨찾기