일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- textfield
- AWS
- GitHub
- activity
- TEST
- architecture
- 코루틴
- Hilt
- 쿠링
- boj
- Compose
- relay
- livedata
- Kotlin
- 백준
- ProGuard
- android
- 암호학
- MiTweet
- MyVoca
- Gradle
- androidStudio
- Rxjava
- Python
- 코드포스
- pandas
- 프로그래머스
- Coroutines
- Codeforces
- Coroutine
- Today
- Total
목록Primary (163)
이동식 저장소
Hilt는 Android에서 사용할 수 있는 DI 라이브러리이다. Hilt는 모든 Android 클래스의 container를 제공하고, container의 생명주기를 자동으로 관리한다. Container란 의존성을 관리하는 객체를 말한다. 즉 Hilt는 Activity, Fragment 등 Android의 주요 컴포넌트에서 사용할 의존성 객체를 관리해 준다. Dependency 추가 DI의 그 dependency가 아니고, build.gradle의 dependency를 말한다. 우선 root level 파일을 열어서 다음을 추가하자. buildscript { ... ext.hilt_version = '2.35' dependencies { ... classpath "com.google.dagger:hilt..
이 글은 Google의 (Dependency injection in Android | Android Developers) 공식 문서를 참고하여 작성되었습니다. 의존성 주입(Dependency Injection, DI)는 프로그래밍에서 널리 사용되는 테크닉이다. DI를 적용하면 더 좋은 아키텍쳐를 만드는 데 도움이 된다. 좋은 아키텍쳐란 다음과 같다. 코드의 재사용성이 높음 리팩토링이 쉬움 코드를 테스트하기 쉬움 그래서 DI가 뭡니까? 객체 지향적 설계에서 하나의 클래스가 다른 클래스를 참조하는 일은 흔하다. 예를 들어 Car 클래스의 정의에는 Engine 클래스가 포함될 수 있다. 이러한 필요 관계를 의존성이라고 말한다. 이 경우에는 Car가 Engine에 의존한다고 말한다. 클래스가 의존하는 객체를 얻..
원인 메인 스레드 이외의 스레드에서는 MutableLiveData의 value를 할당할 수 없다. 해결 방법 postValue() 메소드를 사용하면 된다. 참 쉽죠? fun loadData = viewModelScope.launch(Dispatchers.IO) { ... mutableLiveData.postValue(newValue) ... }
문제 상황 ``Transformations.map(liveData)``를 이용하여 새로운 ``LiveData``를 선언하였지만, 제대로 변환되지 않는 문제가 있다. 문제 원인 반환된 ``LiveData``를 observe하는 뷰가 없기 때문이다. ``Transformations``는 반환된 ``LiveData``가 observe될 때에만 변환을 수행한다. 해결 방법 Fragment 등에서 해당 ``LiveData``를 observe하면 된다. 가장 단순한 방법으로는 listener를 비워 놓으면 된다. // QuizFragment.onCreateView()에서 quizViewModel.quizAvailable.observe(viewLifecycleOwner) { } 고작 이거 하나 때문에 일주일 동안 고..
안드로이드 스튜디오로 만든 앱을 테스트하는 방법은 여러 가지가 있다. 에뮬레이터를 사용해도 되지만, 내 컴퓨터가 그리 좋은 편이 아니라서 렉이 많이 걸린다. 그래서 나는 휴대폰과 컴퓨터를 USB로 연결해서 앱을 테스트한다. 그런데 USB 연결을 하다 보면 귀찮은 점이 많다. 일단 휴대폰이 케이블 길이 안에 있어야 하며, 폰을 살짝만 움직여도 USB 연결이 끊기는 경우가 많았다. 플러그인을 설치하면 무선으로 앱을 디버깅할 수 있다. WiFi adb File > Settings > Plugins에서 Android WiFiADB를 검색하고 설치한다. 참고로 설치수가 가장 많은 플러그인은 작동하지 않는다. IntelliJ에서만 사용 가능하다고 하는데 애초에 IntelliJ에서 adb를 쓸 일이 있나? 설치한 후..