분류 전체보기
-
도메인 주도 설계 - 도메인 주도 설계란?프로그래밍/방법론 2023. 1. 24. 18:56
도메인 주도 설계 - 나루세 마사노부 책 요약 왜 도메인 주도 설계가 필요한가? 소프트웨어는 항상 진화하는 존재이다. 개발 속도를 우선시한 소프트웨어는 유연성이 떨어지며 변화에 대응하기 어렵다. 소프트웨어가 변화에 제대로 대응하려면 개발자가 지속해서 소프트웨를 수정해야 한다. 끝없는 땜질식 수정 업무에서 벗어나기 위한 수단 중 하나가 도메인 주도 설계인 것이다. 도메인 주도 설계는 도메인에 주목해 요구사항 분석부터 설계, 개발에 이르기까지 소프트웨어 개발 과정에 상호작용이 필요하다. 도메인 주도 설계의 진정한 가치가 드러나는 것은 변화에 대응해 소프트웨어를 수정할 때이다. 도메인 주도 설계란 무엇인가? 개발자가 이용자들이 겪는 문제를 해결하려면 당연히 이용자의 세계에 대해 배워야한다. 그러나 이렇게 배운..
-
Jetpack compose - Custom layout프로그래밍/Android 2022. 12. 12. 11:31
2021 Android dev summit A deep dive into Jetpack Compose Layouts - https://www.youtube.com/watch?v=zMKMwh9gZuI https://developer.android.com/jetpack/compose/layouts/custom https://developer.android.com/codelabs/jetpack-compose-state#2 Android View - https://www.youtube.com/watch?v=4NNmMO8Aykw ---- Jetpack Compose has been updated 1.3.2. Set up Compose for an existing app To start using Compose, ..
-
Android 13 - Battery Resource Utilization프로그래밍/Android 2022. 8. 11. 18:28
앱별 배터리 리소스 제한 When? Android 9부터 Android 13에서는 규칙 수정이 생김 What? 앱이 백그라운드에서 시스템 리소스를 무한으로 사용하지 않도록 제한 Android 9부터 Battery optimization이나 Background restriction으로 관리 Why? 앱의 과도한 백그라운드 작업으로 사용자의 배터리가 빠르게 닳지 않도록 한다. How? 현재 사용 중인 앱에 대해서는 제한하지 않는다. Battery optimization App Standby Bucket 앱이 백그라운드로 내려갔을 때 여러 작업을 제한한다. 앱을 얼마나 최근에 자주 사용했는지 패턴을 파악하여 각 5가지의 앱 버킷에 위치시킨다. 앱 버킷의 중요도에 따라 시스템 리소스를 사용할 수 있도록 한다. ..
-
Testing Kotlin coroutines on Android프로그래밍/Kotlin 2022. 7. 19. 21:58
결론 delay()와 같이 실제 지연이 발생하면 그 지연시간을 포함해 테스트가 진행된다. runTest를 이용하면 delay를 무시해서 좀 더 빠르게 테스트를 실행할 수 있다. 단 withContext에서 Dispatcher가 변경된 경우 delay는 무시하지 않는다. 코루틴은 쓰레드에 위에서 동작하고 사용 가능한 쓰레드를 찾기 위해 코루틴용 ThreadSchdular에 스케쥴링된다. (코루틴 실행 순서와 시간에 영향) 어떤 쓰레드가 사용이 될지 예측이 불가능한 Dispatcher.IO 와 같은 코루틴 정식 Dispatcher 보다는 테스트용 TestDispatcher를 사용한다. (runTest를 사용하면 Dispatcher.IO를 무조건 사용하지 못한다. 안드로이드 개발자 가이드는 권고하지 않는 것 ..
-
Coroutine exceptions handling프로그래밍/Kotlin 2022. 6. 22. 00:14
결론 When a thread throws an exception, a process will be killed. When a coroutine throws an exception, the process will be killed too? When coroutine throws an exception, the process will be killed too. When children coroutines throw an exception, children coroutines will be canceled. 기본적으로는 child coroutine에서 Exception이 발생하면 부모 coroutine에게 자신의 실패 상태를 전파하기 때문에 나머지 children job들이 취소된다. 예외 적용 Cancel..
-
Android 13 - Programmable shaders프로그래밍/Android 2022. 6. 3. 11:56
New APIs from Android 13 RuntimeShader Android 13 adds support for programmable RuntimeShader objects, with behavior defined using the Android Graphics Shading Language (AGSL). Definition Programmerble shaders As you know OpenGL draws faster because of using GPU. It means we can do per-pixel lighting and other neat effects, like cartoon-cel shading at runtime. Vertices A set of independent point..
-
Android 13 - Granular media permissions프로그래밍/Android 2022. 5. 23. 16:42
Affected when? Application targets Android 13 Added new permissions Android 12 Android 13 New permissions Applications must request one or more new permissions instead of the READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions. The set of permissions that you request depends on the type(s) of media that your app needs to access: Type of media Permission to request Remarks Images and pho..
-
Android 13 - FGS Task Manager프로그래밍/Android 2022. 5. 11. 19:11
What it is? FGS Foreground Service FGS Task Manager Regardless of target SDK version. Android 13 allows users to stop foreground services. 더보기 Foreground services Foreground services perform operations that are noticeable to the user. It show a status bar notification, so that users are actively aware that your app is performing a task in the foreground and is consuming system resources. The not..