[문제사항😿] name을 넣어주기 전에 뷰 그릴때 초기에 defaultName으로 세팅 될 줄 알았음 - default 아예 동작 안함 - android:text말고 BindingAdpater를 만들어서 해도 안됨 [해결책✋] - default가 필요하다면 두가지를 사용하는 수 밖에 없어보인다. android:text="@string/defaultName" maybeText="@{name}" - 안드는 왜...그런걸까... 정말 믿을 수가 없다. - 사실 android:text에 dataBinding을 건적이 없었긴 했다.
https://developer.android.com/training/dependency-injection/hilt-android 힐트는 대거를 사용하기 편하게 감싼 di 라이브러리 힐트를 쓰려면 HiltAndroidApp어노테이션을 application에 붙여함 힐트코드제너레이션을 트리거 시킴 어플리케이션 레벨의 의존성 컨테이너 역할을 하는 어플리케이션 베이스 클래스를 만들어줌 의존성주입이 어려운 경우에는 hiltModule을 사용하면 된다. HiltModule에는 InstallIn도 적어줘여야하는데 instalIn인의 경우 의존성이 주입될 범위를 나타낸다. 만약에 SingletonComponent면 전역에 걸쳐 힐트모듈에 적인 의존성 타입을 주입할수 있다는 것이고 ActivityComponent면 액..
참고 자료 https://developer.android.com/kotlin/flow/stateflow-and-sharedflow https://proandroiddev.com/stateflow-with-one-and-twoway-databinding-on-android-cf4e6c847988 LiveData랑 비슷하지만 다른점 초기값이 필요함 값으로 null을 넣을 수 있음 라이브데이터 처럼 생명주기를 알고있진않아서 뷰가 멈출때에도 콜렉팅(서브스크라이브)를 하고 있음 class LatestNewsActivity : AppCompatActivity() { ... // Coroutine listening for UI states private var uiStateJob: Job? = null overrid..
공변,무공변,반공변에 대한 개념들은 "타입 S가 T의 하위타입이면 List도 List의 하위타입인가?"에 대한 질문으로 시작한다. 타입 S가 T의 하위 타입일때 -> Box와 Box가 어떤 관계도 아닌 경우 : 타입 S가 T의 하위 타입일때 -> Box가 Box의 하위타입인 경우 : 타입 S가 T의 상위 타입일때 -> Box가 Box의 상위타입인 경우 일반적으론 무공변이다. List랑 List은 어떤 관계도 없다. 왜그러냐면, 제네릭은 "타입소거"방식으로 동작한다. 타입소거란? 컴파일시에만 타입 검사를 하고 런타임시에는 제네릭의 인스턴스에 대한 타입정보를 갖고 있지 않는 것 예를 들어) List은 런타임시에는 그냥 List로 간주된다. (개발자눈에만 타입이 보인다는뜻) 그래서 is 키워트로 List의 타..
- Total
- Today
- Yesterday
- 무공변
- #우분투
- 힐트
- 키보드
- Kotlin
- #윈도우
- 반공변
- Hilt
- 다이나믹링크
- Android
- databinding
- 코루틴동시성프로그래밍
- c++
- 코루틴
- #EC2
- #tensorflow
- TF-Slim
- 코틀린
- 공변
- dynamiclink
- 자바
- 코틀린코루틴스터디
- 코틀린코루틴
- 코루틴딥다이브
- 코루틴내부동작
- 프로그래머스
- 코틀린으로배우는함수형프로그래밍
- stateflow
- 안드로이드
- 변성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |