# BindingAdapter

7개의 포스트

TIL) 230412

Data 클래스 copy() copy() 함수는 기본적으로 데이터 클래스의 모든 인스턴스에 제공된다. 이 함수는 일부 속성을 변경하지만 나머지 속성은 변경하지 않고 그대로 두기 위해 객체를 복사하는 데 사용된다. Room에서 가져온 값에 연산을 하려면 Flow가 아닌 LiveData를 활용하자 DataBinding을 활용해서 viewModel의 값을 활용하는 코드다. viewModel의 getAllChatList의 크기를 삼항연산자를 이용해 BindingAdpater로 전달하여 visibility를 조절하고 있다. 그런데 막상 코드를 실행하니 아래와 같은 오류가 났다. 💡 java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time.

2023년 4월 12일
·
0개의 댓글
·
post-thumbnail

TIL) 0906

Kotlin Coroutine 비동기 프로그래밍에 권장되는 코루틴은 멀티태스킹을 지원하고 단순히 스레드로 작업하는 것보다 레벨이 다른 추상화를 제공한다. 상태를 저장해 중단했다가 재개할 수 있다는 주요 기능이 핵심이다. 따라서 코루틴을 실행되거나 실행되지 않을 수 있다. Job → 생명 주기가 있는 취소 가능한 작업 단위(launch()로 만든 작업 단위) CoroutineScope → launch()와 async()와 같이 새 코루틴을 생성하는 데 사용되는 코드는 CoroutineScope의 확장이다. 모든 코루틴은 범위 내에서 실행해야 하고, CoroutineScope는 하나의 이상의 관련 코루틴을 관리한다. GlobalScope →앱이 실행되는 한 내부의 코루틴이 실행되도록 허용한다. Dispatcher → 코루틴 실행에 사용할 자원 스레드를 관리한다. 개발자가 새 스레드를 사용할 시기와 위치를 파악하지 않

2022년 9월 6일
·
0개의 댓글
·

Databinding과 ViewBinding 그리고 Databinding에서의 Null 처리

DataBinding과 ViewBinding의 차이 데이터 바인딩과 뷰 바인딩은 모두 직접 뷰를 참조하는데 사용할 수 있는 결합 클래스를 자동 생성해 준다. 이 두 바인딩의 차이점을 무엇일까? viewBinding annotaion processing이 필요하지 않아 컴파일이 빠르다. 사용하기 쉽다. 특별한 태그의 XML 파일이 필요하지 않으며, 앱에 빠르게 적용할 수 있다. 모듈에 바인딩 사용 설정하면 자동으로 레이아웃 binidngclass를 생성해 준다. dataBinding layout태그를 사용하여 만든 레이아웃을 처리하고, TAG를 삽입으로써 XML 레이아웃 파일에서 직접 동적 UI 콘텐츠를 다룰 수 있다. 양방향 데이터 결합을 지원한다. 즉

2022년 9월 5일
·
0개의 댓글
·
post-thumbnail

[Android] MVVM 개봉하기(2)

전 포스팅 MVVM 핥아보기(1)에 이어 이번엔 직접 코드를 가져와 좀 더 현장감있게 알아보려 한다. 실제 이번 캠핑앱에 쓰였던 코드 중 일부분을 가져와봤다. View (fragment.xml) DataBinding을 적용한 xml파일이다. 일반 xml파일이랑 다른점은 최상위 layout이 leaner나 constraint가 아닌 layout이고, variable과 그 속성으로 name과 type이 있다. 그리고 Textview에 그 name을 사용하는 @{view

2022년 3월 3일
·
0개의 댓글
·
post-thumbnail

[Android] MVVM 핥아보기(1)

전 프로젝트에서 한 액티비티에 코드를 때려 박다 보니 코드를 추가하거나 오류가 났을 때 수정하려 하면 콘센트의 구멍 찾는 거 마냥 찾기가 어려웠다. 그리고 이번 캠핑 앱을 시작하기 전, 현재 안드로이드에서 자주 쓰이는 라이브러리나 기술들을 적용해 보고 싶어 몇 개를 선택했고 그중 하나가 MVVM 이었다. 이 외에 것들은 '이걸 사용할 줄 알아야 개발자인가? 나도 해봐야겠네'라는 생각이었는데 MVVM 관련 포스팅을 읽고 대강 이해하는 순간 개발을 여태 하면서 나에게 필요했던 것을 처음 찾게 되어 설렜고 가장 먼저 적용해 보려 했었다. MVVM > 디자인 패턴의 한 종류로써 모델(M), 뷰(View), 뷰 모델(ViewModel)로 나눠 각 레이어 간 의존성을 줄여 테스트, 유지 보수, 재사용이 쉬어진다. ![viewModel차트](https://images.velog.io/images/thevlakk/post/ba2711a3-8056-483f-9db1

2022년 2월 25일
·
0개의 댓글
·
post-thumbnail

Binding Adapter 에 대해 알아보자!

before start_ 안드로이드 xml을 짜다 문득 건들고 싶은 뷰의 속성이 xml 메서드에 없는것을 보았다. 그래서 엑티비티에서 내가 원하는 메서드를 만들어 사용하듯이 xml에서도 사용할 수 있는 속성 설정을 만들어 사용할 수있는 방법에 대해 찾아보다, binding Adapter 라는 속성을 발견하게 되었다. 그래서 오늘은 Binding Adapter에 대해 알아보도록 하겠다. Binding Adapter_ 1. 사용 방법 object: Binding Adapter는 메모리상에 올려서 사용해야 하기 때문에 Object로 생성한다. @JvmStatic: 전역 변수의 Getter Setter를 정적 함수로 설정하는 어노테이션이다. @BindingAdapter: 괄호 안에 원하는 메서드 이름을 지어주면 된다. setText: 이 메서드 이름도 원하는 걸로 정해주

2021년 9월 12일
·
0개의 댓글
·