Android 썸네일형 리스트형 12/15 read post 1. 출처 : https://medium.com/@huseyinozkoc/android-services-tutorial-with-example-fa329e6a5b4b 제목 : Android Services 요약 : android service 의 3가지 type 에 대해서 설명합니다. foreground service, background service, 그리고 bind service type 에 대해서 설명하고 각 service의 차이점과 특징에 대해서 설명합니다. 더보기 10/30 read post 1. 출처 : https://medium.com/proandroiddev/android-touch-system-part-2-common-touch-event-scenarios-a37a885f5f75 제목 : Android Touch System — Part 2: Common Touch Event Scenarios 요약 : android touch system 에 대해서 설명합니다. 터치는 부모로부터 dispatchTouchEvent 를 통해서 전달되며 onIntercepTouchEvent 가 재정의 되어있는지 확인하고 재정의 되어있지 않으면 자식으로 전달됩니다. 가장 아래에 있는 자식이 onTouchEvent 를 호출한 후 이곳에서 false 가 호출되면 다시 부모로 전달됩니다. 이때 true 가 호출되.. 더보기 ClipToOutline, ClipToPadding, ClipToChildren 참고자료 : Create Shadows and Clip Views | Android Developers , AAPT: error: attribute android:clipToOutline not found , RenderNode | Android Developers Outline 내부 동작 먼저 outline 이 내부적으로 어떻게 동작하는지 확인해보겠습니다. (sdk level 31 기준) View.java @CallSuper protected void onAttachedToWindow() { if ((mPrivateFlags & PFLAG_REQUEST_TRANSPARENT_REGIONS) != 0) { mParent.requestTransparentRegion(this); } mPrivateFlags.. 더보기 Making Sense of Intent Filters in Android 13 Android 13 이전에는 매니페스트에 exported component 로 등록하고 를 추가하면 명시적 intent 로 component 를 시작할 수 있었습니다. – 심지어 intent filter 가 일치하지 않는 경우에도. 일부 상황에서는 다른 앱이 내부 전용 기능을 트리거하도록 허용할 수 있습니다. 이 동작은 Android 13에서 업데이트되었습니다. 이제 action 을 지정하고 외부 앱에서 시작하는 intent는 intent가 선언된 요소와 일치하는 경우에만 exported component 에 전달됩니다 . 반직관적 기존 Android 버전에서는 intent 가 component 의 선언된 요소와 일치하지 않는 component(예: )에 intent 를 전달하는 두 가지 방법이 있습니다.. 더보기 Data Store 출처 : https://medium.com/androiddevelopers/introduction-to-jetpack-datastore-3dc8d74139e7, https://medium.com/@jurajkunier/migrating-sharedpreferences-to-jetpack-datastore-9deb8259063, https://developer.android.com/topic/libraries/architecture/datastore Introduction to Jetpack DataStore DataStore 는 preference 또는 application state 같은 작은 양의 data 를 안전하고 일관되게 저장하기 위한 방법을 제공하는 Jetpack library 입니다. Dat.. 더보기 Understand Android Lifecycle Aware Coroutine Scope Made Easy 출처 : https://medium.com/mobile-app-development-publication/understand-android-lifecycle-aware-coroutine-scope-made-easy-f86d13d16f0e Kotlin Coroutine을 사용하려면 적절한 scope 를 정의해야 합니다. 까다로운 부분은 생성하고 중지하는 것을 기억해야 한다는 것입니다. 이를 고려하여 Google Android 개발 팀은 수명 주기를 인식하는 몇 가지 Coroutine scope 를 제공했습니다. 예제에서 Activity에 lifecycleScope를 사용하면 Fragment에 viewLifecycleOwner.lifecycleScope가 사용됩니다. Fragment 체크아웃에 대해 구체적으.. 더보기 Avoid Using “when” Expression as Much as Possible. Use Polymorphism Instead 출처 : https://medium.com/better-programming/avoid-using-when-expression-as-much-as-possible-use-polymorphism-instead-890b92389060 When 문은 종종 smell code 로 간주되어 피해야만 합니다. 5개의 미리 정의된 크기로 개발해야 하는 Button 5개가 있다고 가정해 보겠습니다. small (height = 16dp) medium (height = 24dp) large (height = 32dp) huge (height = 40dp) custom sealed class ButtonSize { object Small : ButtonSize() object Medium : ButtonSize() obj.. 더보기 Android SNS 로그인 시 Locale Change 이슈 Android 7.0 이상에서 분명 Locale 을 영어나 글로벌 언어로 해놓았는데, WebView 를 거치거나 chrome tab 을 이용하는 library 를 사용하게 되면 Locale 이 변경 되는 이슈가 있다. 해당 library 에서 변경하는 내부코드 부분을 찾아보려 했으나 찾지 못하였다. DateTimeFormatter public static DateTimeFormatter ofPattern(String pattern) { return new DateTimeFormatterBuilder().appendPattern(pattern).toFormatter(); } public DateTimeFormatter toFormatter() { return toFormatter(Locale.getDefa.. 더보기 이전 1 2 다음