안드로이드 코틀린 프로젝트.
안드로이드 targetSdkVersion 26(Oreo[8.0]) 이상으로 설정해야한다.(정책)
//코틀린 추가 확장(안드로이드 리사이클러뷰 뷰홀더에 사용함 LayoutContainer 구현.)
androidExtensions {
experimental = true
}
안드로이드 프로젝트에서 자주 사용하는 라이브러리 정리
안드로이드 라이브러리.
Project Structure 에서 Dependencies 선택 후 Library Dependency 클릭하여 라이브러리 추가.(타겟버전에 맞추어 추가함.)
통신관련 라이브러리.
* 레트로핏 : 안드로이드 통신 라이브러리.
// 인터페이스를 통해 인터넷 연결을 가지고 있다.
// https://square.github.io/retrofit/
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
/*레트로핏 지원 라이브러리*/
// jsonData 형식을 클래스 객체형식으로 변환하여 준다.
// https://github.com/square/retrofit/tree/master/retrofit-converters/gson
implementation 'com.squareup.retrofit2:converter-gson:latest.version'
// Rxjava 타입을 지원한다.
// https://github.com/square/retrofit/tree/master/retrofit-adapters/rxjava2
implementation 'com.squareup.retrofit2:adapter-rxjava2:latest.version'
* okhttp : 안드로이드 통신 라이브러리.(레트포핏을 사용하면 okhttp 최신 버전이 들어있다)
// http,http2 통신라이브러리
// https://square.github.io/okhttp/
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
// http 통신시 로그 보기위한 것.
// https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor
implementation 'com.squareup.okhttp3:logging-interceptor:(insert latest version)'
* Gson : 안드로이드 json 파싱 라이브러리.
// 객체 형태로 데이터를 만들어 준다.
implementation 'com.google.code.gson:gson:2.8.5'
프로그래밍 라이브러리.
// binding :제본 bind : 묶다
RxJava
– Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
* RxJava : 반응형 프로그래밍 라이브러리
// https://github.com/ReactiveX/RxJava
implementation "io.reactivex.rxjava2:rxjava:2.x.y"
/*
* RxKotlin 과 RxAndroid 는 내부적으로 RxJava를 참조하나 최신 버전의 RxJava를 명확하게 정의하여 해당 라이브러리를 쓰도록 한다.
*/
RxKotlin
RxJava bindings for Kotlin(기본적으로 RxJava 를 가지고 있다.)
* RxKotlin : 안드로이드 코틀린에서 확장지원 라이브러리.(RxJava가 있어야 하며 버전에 맞게 설정해야한다.)
// 안드로이드 프로젝트라면. RxAndroid 설정후 .
// https://github.com/ReactiveX/RxKotlin
implementation 'io.reactivex.rxjava2:rxkotlin:x.y.z'
RxAndroid
RxJava bindings for Android(기본적으로 RxJava 를 가지고 있다.)
* RxAndroid : 안드로이드 프로젝트에서 사용하기 위한 라이브러리.(RxJava가 있어야 한다.) 쓰레드 관련한 모듈을 제공한다.
// https://github.com/ReactiveX/RxAndroid
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
// Because RxAndroid releases are few and far between, it is recommended you also
// explicitly depend on RxJava's latest version for bug fixes and new features.
// (see https://github.com/ReactiveX/RxJava/releases for latest 2.x.x version)
implementation 'io.reactivex.rxjava2:rxjava:2.x.x'
* RxBinding 를 사용하기 위한 추가 지원 라이브러리들.
//RxBinding : RxJava binding APIs for Android UI widgets from the platform and support libraries.
implementation 'com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2'
//
implementation 'com.jakewharton.rxbinding2:rxbinding-kotlin:2.1.0'
implementation 'com.jakewharton.rxbinding2:rxbinding-support-v4-kotlin:2.1.0'
implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7-kotlin:2.1.0'
implementation 'com.jakewharton.rxbinding2:rxbinding-design-kotlin:2.1.0'
implementation 'com.jakewharton.rxbinding2:rxbinding-recyclerview-v7-kotlin:2.1.0'
*RxPermission : 안드로이드 권한 라이브러리
//https://github.com/tbruyelle/RxPermissions
implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'
* RxLifecycle : RxJava를 사용하면서 subscribe를 해제 하지 않으면 메모리릭이 발생될수도있기에 서브스크라이브 종료를 해주는 라이브러리.
// https://github.com/trello/RxLifecycle
implementation 'com.trello.rxlifecycle3:rxlifecycle:3.0.0'
// If you want to bind to Android-specific lifecycles
implementation 'com.trello.rxlifecycle3:rxlifecycle-android:3.0.0'
// If you want pre-written Activities and Fragments you can subclass as providers
implementation 'com.trello.rxlifecycle3:rxlifecycle-components:3.0.0'
// If you want pre-written support preference Fragments you can subclass as providers
implementation 'com.trello.rxlifecycle3:rxlifecycle-components-preference:3.0.0'
// If you want to use Android Lifecycle for providers
implementation 'com.trello.rxlifecycle3:rxlifecycle-android-lifecycle:3.0.0'
// If you want to use Kotlin syntax
implementation 'com.trello.rxlifecycle3:rxlifecycle-kotlin:3.0.0'
// If you want to use Kotlin syntax with Android Lifecycle
implementation 'com.trello.rxlifecycle3:rxlifecycle-android-lifecycle-kotlin:3.0.0'
// If you want to use Navi for providers
// DEPRECATED: Use rxlifecycle-android-lifecycle instead. This will be removed in a future release.
implementation 'com.trello.rxlifecycle3:rxlifecycle-navi:3.0.0'
추가지원 라이브러리.
* Realm : 객체중심의 데이터베이스 라이브러리.
// https://realm.io/docs/java/latest
* glide : 이미지 로딩 라이브러리
repositories {
mavenCentral()
google()
}
dependencies {
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
}
'Android > study' 카테고리의 다른 글
MVP 패턴 (0) | 2019.04.25 |
---|---|
안드로이드 액티비티 및 프래그먼트. (0) | 2018.09.27 |
레트로핏, okhttp (0) | 2018.08.27 |
RxJava (0) | 2018.07.30 |