일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쿠링
- ProGuard
- Gradle
- Rxjava
- 프로그래머스
- MiTweet
- Compose
- MyVoca
- boj
- Coroutines
- activity
- androidStudio
- TEST
- 코드포스
- 코루틴
- pandas
- Coroutine
- Python
- GitHub
- relay
- 암호학
- Codeforces
- AWS
- android
- textfield
- livedata
- Hilt
- 백준
- architecture
- Kotlin
- Today
- Total
목록Primary (163)
이동식 저장소
Kotlin Coroutines에서 Dispatcher는 코루틴이 실행되는 스레드를 결정한다. 특정한 스레드를 지정할 수도 있고, thread pool에 넘겨줄 수도 있고, 아예 정하지 않을 수도 있다. ``launch``, ``async``, ``withContext`` 등의 모든 코루틴 빌드 함수는 ``CoroutineContext`` 타입의 매개변수를 받는다. 따라서 필요하다면 dispatcher를 매개변수로 넘겨줄 수 있다. launch(Dispatchers.Default) { // do something } 이 글에서는 Kotlin에서 사용할 수 있는 dispatcher에 대해 자세히 알아보겠다. Dispatchers.Main 메인 스레드, 즉 UI 스레드를 의미하는 dispatcher이다. J..
백그라운드 작업 ``MealWork``와 ``ScheduleWork``를 정의했고, 현재 실행되고 있는 백그라운드 작업의 수를 세기 위해 Preferences DataStore에 정수형 값 ``RUNNING_WORKS_COUNT``를 정의했다. ``MealWork``와 ``ScheduleWork``가 실행될 때 count를 1 증가시키고, 작업이 끝날 때 count를 1 감소시키는 코드를 작성했다. 대략 다음과 같다. // MealWorker, ScheduleWorker override suspend fun doWork(): Result { preferencesRepository.increaseRunningWorkCount() // do background work preferencesRepository..
엄청난 게 왔다... Relay Instant Handoff for Android UI. Design UI components in Figma and use them directly in Jetpack Compose projects. relay.material.io Design UI components in Figma and use them directly in Jetpack Compose projects. Figma 컴포넌트를 Compose로 변환해주는 플러그인이 등장했다. 이름은 Relay. 잠깐 써봤는데 나름 잘 변환된다. 아직 alpha라 그런지 폴더가 안 보이는 현상? 자잘한 버그? 가 종종 발생하긴 하지만, 개념 자체는 매우 파괴적이다. 개별 composable까지 자동으로 생성할 수 있단 말..
한빛 캘린더에 반응형 UI를 적용해 보자. Before 처음 UI를 구현할 때 가로로 긴 화면을 전혀 고려하지 않았다. 덕분에 태블릿에서는 가로로 길게 늘어난 화면이 보이게 되었다. 아무리 봐도 달력과 내용을 가로로 배치하는 게 좋아 보인다. 바로 구현해 보자. 구현할 것 Navigation Bar는 구현하지 않는다. 애초에 화면 하나짜리 앱이라 Navigation은 없다. Compact 화면에서는 기존 UI를 그대로 보여준다. Medium 화면에서는 Compact와 같은 화면을 보여주되, 식단을 세 개의 행으로 배치하자. Compact에서는 두 행으로 배치했다. Expanded 화면에서는 달력과 상세 내용을 가로로 배치하고, 식단을 세 개의 행으로 배치하자. 라이브러리 추가 ``WindowSizeCla..
1편에서 이어집니다. 라이브러리 ``material3-window-size-class`` 라이브러리의 ``WindowSizeClass`` 클래스와 ``calculateWindowSizeClass()`` 함수를 사용하자. class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val windowSizeClass = calculateWindowSizeClass(this) MyApp(windowSizeClass) } } } Main composable(여기서는 ``MyApp``)은 ``WindowSizeClas..