일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- MiTweet
- activity
- androidStudio
- Kotlin
- 쿠링
- Coroutines
- Compose
- 암호학
- relay
- AWS
- pandas
- 코루틴
- Coroutine
- ProGuard
- GitHub
- android
- architecture
- Python
- Gradle
- 백준
- livedata
- Codeforces
- Hilt
- MyVoca
- Rxjava
- TEST
- 코드포스
- boj
- textfield
- Today
- Total
목록분류 전체보기 (379)
이동식 저장소
여기를 눌러 업데이트를 다운로드하세요. MyVoca - Google Play 앱 영-한(ENG-KOR) 단어장 play.google.com 버그 수정 삭제할 단어를 선택할 때 단어를 스와이프하여 삭제할 수 있는 버그 수정 (#26) 단어의 정렬 기준을 바꾸었을 때 리스트가 업데이트되지 않는 버그 수정 (#27) 기능 추가 모두 보기 화면에 스크롤 바 추가하기 (#28) 기능 개선 위젯 공사하기 (#33) 리팩토링 Hilt 적용하기 (#31) SharedPreferences를 DataStore로 migrate (#41) 마이너 업데이트 치고 양이 굉장히 많다. 1.13.0으로 승격해야 하나 고민했지만 그냥 출시하기로 결정.
요약 Room database 객체로부터 DAO 객체를 얻어서 접근한다. ``ViewModel``을 사용할 수 없는 이유 ``ViewModel``은 특정 view와 생명주기를 같이 한다. ``Activity``나 ``Fragment``는 ``LifecycleOwner``를 상속받기 때문에 뷰의 생명주기를 관리할 수 있고, 따라서 ``ViewModel``과 함께 사용할 수 있다. 하지만 위젯(``AppWidgetProvider``)은 생명주기가 없다. 그냥 홈 화면에 떠 있기만 한데 무슨 생명주기가 있겠는가? 그럼 어떻게 해야 하나요 ``ViewModel``을 사용할 수 없으므로 추상화 단계를 낮춰서 접근해야 한다. ``Repository``를 사용해 보려 했지만, 데이터를 제대로 가져오지 못하는 문제가 ..
문제 출처: 코딩테스트 연습 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 신규 아이디 추천 주어진 문자열을 규칙에 맞게 변형하는 문제이다. 문제만 잘 읽으면 어렵지 않게 구현할 수 있다. 주어지는 문자열의 길이가 최대 $1,000$이므로 시간복잡도에 크게 신경쓰지 않고 문제를 풀어도 된다. 사실 코딩테스트가 다 그렇다. 메뉴 리뉴얼 대충 읽으면 헷갈리기 쉬운 문제. 가장 많이 주문된 조합의 메뉴를 골라야 하는 문제이다. 이때 조합의 길이는 $l \in orders$이고, 조합에서 2번 이상 주문된 메뉴 중 가장 많이 주문된 메뉴를 모두 골라야 한다. 어렵지 않게 풀이를 생각할 수 있다. $\forall..
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에 의존한다고 말한다. 클래스가 의존하는 객체를 얻..