Kotlin(11)
-
LiveData 생성하기
# LiveData 초기화하기 LiveData 초기화하는 방법은 2가지가 있다. 하지만 LiveData는 비동기 데이터 스트림을 처리하도록 설계되지 않았다. 즉 데이터 스트림을 결합하는 기능이 매우 제한적이다. - LiveData로 변환 - MediatorLiveData를 사용 추천하는 방식은 Kotlin Flow를 사용한 후, asLiveData() 메서드를 통해 LiveData로 변환하는 방식이다. Java로 빌드된 코드인 경우, CallBack이나 RxJava와 함께 Executor를 사용하는 것을 추천한다. # ViewModel에서 LiveData 사용하는 방법 LiveData는 List와 같은 데이터의 wrapper에 해당한다. 일반적으로 ViewModel에서는 다음과 같은 형태로 사용한다. c..
2021.10.26 -
LiveData 란?
# LiveData 란? LiveData는 Observable한 data holder 클래스입니다. Activity나 Fragment, Service 등의 앱 구성요소의 life cycle을 인식하고, 이를 통해 Observer 중에서 Active한 life cycle에 있는 앱 구성요소 Observer만 업데이트합니다. 여기서 Observer의 life cycle이 STARTED 또는 RESUMED 상태이면 Active한 상태로 간주합니다. Observer는 LifecycleOwner interface가 구현된 객체와 함께 등록할 수 있습니다. 이렇게 함께 등록함으로써, Observer가 DESTROYED 상태로 변경될 때 Observer를 삭제할 수 있습니다. # LiveData의 장점 - UI와 d..
2021.10.26 -
Kotlin 문법 정리
참고: https://youtube.com/playlist?list=PLQdnHjXZyYadiw5aV3p6DwUdXV2bZuhlN 더보기 fun main() { // 변수 var a : Int? = null // null값 이라는 걸 알려주기 위해 var b : Long = 123L // b.toInt() --> Int형으로 변환 var c = 0xABCD // 배열 (크기 한정 O) // Generic= 내에 배열의 자료형 var intArr = arrayOf(1,2,4) var intArr2 = arrayOfNulls(3) // Test println(add(1,2,3)) doWhen(b) doWhen(c) // for(i in 0..9 step 2) { // 02468 // for(i in 9 do..
2021.08.09 -
url로 부터 데이터 가져와 ui에 나타내기
사용자의 앱의 UI요소들이 web networking으로 부터 가져올 수 있는 상황이다. 이 때 안드로이드 앱에서는 주로 Retrofit 패키지를 많이 사용한다. [ Step 1 ] Retrofit 패키지는 HTTP API를 Java interface로 바꿔주는 역할을 한다. Retrofit 공식 사이트: https://square.github.io/retrofit/ Retrofit은 HTTP body들을 OkHttp패키지의 ResponseBody형으로 가져온다. 이는 RequestBody형으로 접근할 수 있는데, 다른 자료형으로 변환하고 싶다면 추가로 패키지를 설치해야 한다. 예를 들어, Gson 패키지를 추가하는 방법은 다음과 같다. 1. (gradle 파일)에 다음을 추가 implementation..
2021.07.08 -
Java로 layout_gravity와 gravity 설정하는 법
XML코드에서 "layout_" 라고 시작하는 코드는 LayoutParams에서 설정하면 된다. GridLayout에서의 Java 코드 예시, // GridLayout 생성 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT ); GridLayout grid = new GridLayout(getContext()); grid.setRowCount(2); grid.setColumnCount(3); grid.setOrientation(GridLayout.HORIZONTAL); baseLayout.addVi..
2020.01.05