| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- Python
- 프로그래머스
- 암호학
- 백준
- TEST
- Codeforces
- Compose
- textfield
- Coroutines
- ProGuard
- MiTweet
- architecture
- livedata
- AWS
- 코루틴
- relay
- activity
- MyVoca
- Coroutine
- 코드포스
- boj
- android
- Rxjava
- pandas
- Hilt
- GitHub
- Gradle
- androidStudio
- Kotlin
- 쿠링
- Today
- Total
목록Primary/Android (80)
이동식 저장소
WorkManager WorkManager는 앱의 메인 로직과는 분리된 백그라운드 작업을 구성할 때 사용한다. 작업은 단 한 번만 실행될 수도 있고(OneTimeWorkRequest), 주기적으로 실행될 수도 있다(PeriodicWorkRequest). 배터리가 충분한 상태 등 특정 조건을 만족할 때에만 작업을 실행하도록 Constraint 를 구성할 수 있다. 작업 정의 Worker 또는 Worker 의 하위 클래스를 상속받아 작업을 표현하는 클래스를 정의한다. Worker 클래스의 doWork() 메소드를 오버라이딩하여 작업을 정의한다. 작업 스케줄링 보통 Application.onCreate() 안에서 작업을 등록한다. 작업의 종류(일회성/반복)에 따라 적절한 WorkRequestBuilder 를 ..
한줄요약: ``onCreateView()``에서 ``binding.root.post``를 호출하고, 그 안에서 ``measuredHeight``/``measuredWidth``에 접근할 수 있다. private var _binding: FragmentTestBinding? = null private val binding get() = _binding!! override fun onCreateView() { _binding = FragmentTestBinding.inflate(...) binding.root.post { val size = root.measuredHeight // ... } } Android get layout height and width in a fragment I am working ..
요약 Room database 객체로부터 DAO 객체를 얻어서 접근한다. ``ViewModel``을 사용할 수 없는 이유 ``ViewModel``은 특정 view와 생명주기를 같이 한다. ``Activity``나 ``Fragment``는 ``LifecycleOwner``를 상속받기 때문에 뷰의 생명주기를 관리할 수 있고, 따라서 ``ViewModel``과 함께 사용할 수 있다. 하지만 위젯(``AppWidgetProvider``)은 생명주기가 없다. 그냥 홈 화면에 떠 있기만 한데 무슨 생명주기가 있겠는가? 그럼 어떻게 해야 하나요 ``ViewModel``을 사용할 수 없으므로 추상화 단계를 낮춰서 접근해야 한다. ``Repository``를 사용해 보려 했지만, 데이터를 제대로 가져오지 못하는 문제가 ..
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에 의존한다고 말한다. 클래스가 의존하는 객체를 얻..