티스토리

검색하기내 프로필

블로그 홈

룬아님의 취중코딩

구독자
4

안드로이드 개발과 관련된 삽질 블로그 입니다. myung6024@gmail.com

구독하기 방명록
신고

인기글

  • invalidate()와 requestLayout()의 차이공감수1댓글수0조회 4
  • (Android) 투명 테마로 투명 화면 만들기공감수1댓글수0조회 2
  • recyclerview 애니메이션 효과 없애는 방법공감수0댓글수0조회 2

주요 글 목록

  • ViewModels 마스터하기글 내용

    https://proandroiddev.com/mastering-android-viewmodels-essential-dos-and-donts-part-1-%EF%B8%8F-bdf05287bca9 Mastering Android ViewModels: Essential Dos and Don’ts Part 1 🛠️ If you’re using ViewModels keep these in mind for better code quality proandroiddev.com

    좋아요0
    댓글0작성시간2024. 3. 25.
  • Proguard란 무엇인가?글 내용

    https://medium.com/@attilaptkai/proguard-everything-you-need-to-know-bb5ff9c04bcd ProGuard — Everything You Need to Know What is ProGuard? Why do we use it? medium.com

    좋아요0
    댓글0작성시간2024. 1. 12.
  • 드로이드 나이츠 2023글 내용

    https://www.youtube.com/playlist?list=PLu8dnNjU2Fmv55B8y6Mw78pZFflIoxDo8 DroidKnights 2023 www.youtube.com

    좋아요0
    댓글0작성시간2023. 12. 13.
  • Anti patterns on Kotlin.글 내용

    https://proandroiddev.com/kotlin-unknotting-from-realizing-anti-patterns-to-becoming-a-better-developer-c1dfa6c3bab6 Kotlin Unknotting — From Realizing Anti-Patterns to Becoming a Better Developer An Insightful Guide to Avoiding Common Kotlin Pitfalls and Writing Idiomatically Beautiful Code proandroiddev.com

    좋아요0
    댓글0작성시간2023. 12. 13.
  • 안드로이드 스튜디오 유용한 플러그인글 내용

    xml파일에서 key를 알파벳 순으로 정렬해주는 플러그인 https://plugins.jetbrains.com/plugin/8223-androidxmlsorter AndroidXmlSorter - IntelliJ IDEs Plugin | Marketplace Android Studio & IntelliJ Plugin for sort xml by name="xxx". 'Editor > PopupMenu(Right Click) > Refactor > Sort Xml By Name' Options - Insert space... plugins.jetbrains.com Kotlin 객체의 생성자를 자동으로 채워주는 플러그인, Dummy data를 채워주는 기능도 있다. https://plugins.jetbrai..

    좋아요0
    댓글0작성시간2023. 11. 22.
  • Android 14 개발자가 대응할 것글 내용

    https://proandroiddev.com/whats-new-in-android-14-1e5d7d8b3482 What’s new in Android 14 for developers Review of most important changes in API and new features in Android 14 that developers need to adopt proandroiddev.com

    좋아요0
    댓글0작성시간2023. 10. 13.
  • 머지된 모든 브랜치 제거하기글 내용

    git branch --merged | grep -v "\*" | grep -v master | grep -v develop | grep -v staging | xargs -n 1 git branch -d

    좋아요0
    댓글1작성시간2023. 10. 5.
  • RecyclerView 성능 개선하기글 내용

    https://medium.com/@balsikandar/mastering-recyclerview-optimizations-in-android-f937919d4dd7 Mastering RecyclerView Optimizations in Android RecyclerView is a powerful widget in Android for efficiently displaying large lists or grids of data. To ensure your app’s performance and… medium.com

    좋아요0
    댓글0작성시간2023. 9. 19.
  • moshi vs gson vs kotlin-serialisation글 내용

    https://towardsdev.com/moshi-vs-gson-vs-kotlin-serialisation-bef9614a34da Moshi Vs Gson Vs Kotlin Serialisation Definitions towardsdev.com

    좋아요1
    댓글0작성시간2023. 8. 22.
  • Android Studio에서 when 쓸 때 자동으로 줄넘김이 되는 이슈글 내용

    Kotlin code style에서 New line after multiline entry 항목을 해제해주면 자동으로 줄넘김이 들어가지 않는다.

    좋아요0
    댓글0작성시간2023. 8. 21.
    게시글 이미지
  • Performance with Compose글 내용

    https://proandroiddev.com/performance-with-jetpack-compose-part-1-4867882949e7 Performance With Jetpack Compose — Part 1 Step by step approach on improving your UI performance with jetpack compose using a sample application. proandroiddev.com

    좋아요0
    댓글0작성시간2023. 7. 3.
  • MVVM to MVI글 내용

    https://medium.com/@myofficework000/mvvm-to-mvi-a-guide-to-migrating-your-android-architecture-8d3cb5bb9f06 MVVM to MVI: A Guide to Migrating Your Android Architecture Moving from the Model-View-ViewModel (MVVM) architecture to the Model-View-Intent (MVI) architecture can seem like a daunting task. But… medium.com

    좋아요0
    댓글0작성시간2023. 5. 26.
  • Hilt 사용시에 Context 이슈글 내용

    Hilt에서 @AndroidEntryPoint를 적용하고 getContext를 하면 Activity의 context가 아닌 ViewComponentManager.FragmentContextWrapper 으로 context를 wrapping한 객체가 넘어오게 된다. 이 wrapper를 Activity로 형변환을 할 경우 크래시가 발생하기 때문에 requireActivity()를 이용하거나 val context = (parent.context as? ViewComponentManager.FragmentContextWrapper)?.baseContext ?: parent.context baseContext를 이용하여야 한다.

    좋아요0
    댓글0작성시간2023. 5. 3.
  • Android12 Splash Screen 로고 지우기글 내용

    별도로 Splash Screen을 사용하지 않던 앱을 Android12에서 사용하게 되면 앱아이콘이 앱을 시작할 때 크게 나타나게 된다. 별도의 로고나 애니메이션을 노출하고 싶지 않은 경우 logo_transparent.xml theme.xml 투명색 로고를 임의적으로 만들고 duration을 0으로 하여 흰하면으로 빠르게 지나가도록 구현하였다.

    좋아요0
    댓글0작성시간2023. 4. 28.
  • 여러 유형의 Response type을 Gson를 이용하여 Sealed Class로 받기글 내용

    "attach" : { "type" : "image" "imageUrl" : "string" } "attach" : { "type" : "video" "videoUrl" : "string" "size" : 0 } 이런 형태의 Json으로 type에 따라 다른 parameter가 내려올 때 data class Attach( val type: AttachType, val imageUrl: String?, val videoUrl: Stirng?, val size: Int? } 이런 방법으로 전부 nullable을 이용하여 받아오는 방법이 있을 것이다. 다만 사용하지 않는 파라미터까지 모두 가지고 있는 객체와 이후 받아야 하는 파라미터가 더 많아 진다면 더 복잡하고 거대하여 어떤 역할을 하는지 알아보기도 힘들게..

    좋아요1
    댓글0작성시간2023. 4. 14.
  • IllegalStateException : Detected inconsistent adapter updates.글 내용

    ConcatAdapter를 사용하던 도중 다음과 같은 crash를 만났다. 원인은 간단했다. ConcatAdapterController public int getLocalAdapterPosition( Adapter

    좋아요0
    댓글0작성시간2023. 4. 10.
  • Android 13 Notification permission 분기글 내용

    시나리오 1: Target sdk Android 12 이하, 기기 OS도 Android 12 이하 변경 사항 없음 (기본적으로 권한 On) 시나리오 2: Target sdk Android 12 이하, 기기 OS가 Android 13 이상 사용자가 앱을 설치한 이후 Android 13으로 업데이트한 경우 : 기존의 권한을 그대로 유지, 별도 영향 없음 사용자가 Android 13에서 최초로 앱을 설치한 경우 : 초기 알림 권한은 Off인 상태로 실행, 최초로 알림 채널이 생성될 경우 해당 알림은 무시되고 사용자에게 알림 요청 다이얼로그가 노출됨. 이때 사용자가 허용 안 함을 클릭했을 경우 앱을 다시 설치하거나 앱 설정에서 수동으로 권한을 변경할 때까지 메시지가 다시 표시되지 않음. 시나리오 3: Targe..

    좋아요0
    댓글0작성시간2023. 3. 29.
  • (Compose) Text의 자간이 넓어 보일 때글 내용

    MaterialTheme( colors = colors, typography = Typography(), shapes = Shapes(), content = content ) 별도로 typography를 설정하지 않는다면 아래와 같은 font style이 자동으로 설정되는데 constructor( defaultFontFamily: FontFamily = FontFamily.Default, h1: TextStyle = TextStyle( fontWeight = FontWeight.Light, fontSize = 96.sp, letterSpacing = (-1.5).sp ), h2: TextStyle = TextStyle( fontWeight = FontWeight.Light, fontSize = 60.sp..

    좋아요0
    댓글0작성시간2023. 3. 24.
  • (Android) 패키지명으로 SHA-1 키값 가져오는 방법글 내용

    StringBuilder sha1 = new StringBuilder(); try { PackageInfo packageInfo = getPackageManager().getPackageInfo(getReferrer().getHost(), PackageManager.GET_SIGNATURES); Signature[] signatures = packageInfo.signatures; Signature signature = signatures[0]; byte[] cert = signature.toByteArray(); MessageDigest md = MessageDigest.getInstance("SHA1"); byte[] publicKey = md.digest(cert); for (int i = 0; i..

    좋아요0
    댓글0작성시간2023. 3. 22.
  • (Android) Firebase Analytics 로깅 실시간 확인글 내용

    https://firebase.google.com/docs/analytics/events?hl=ko&platform=ios 이벤트 로깅 | Firebase용 Google 애널리틱스 5월 10일, Google I/O에서 Firebase가 돌아옵니다. 지금 등록하기 의견 보내기 이벤트 로깅 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. iOS+ Android 웹 Flutter 이 가 firebase.google.com adb shell setprop log.tag.FA VERBOSE adb shell setprop log.tag.FA-SVC VERBOSE adb logcat -v time -s FA FA-SVC 위 명령어를 통하여 terminal에서 실시간으로 로깅을 확인할 ..

    좋아요1
    댓글0작성시간2023. 3. 20.
  • Compose lineheight style글 내용

    https://medium.com/androiddevelopers/fixing-font-padding-in-compose-text-768cd232425b Fixing Font Padding in Compose Text TL;DR medium.com

    좋아요0
    댓글0작성시간2023. 3. 13.
  • 현재 보고있는 화면으로 이동하는 방법 (패키지명, xml, current activity)글 내용

    1. ADB command (패키지명 확인) adb shell dumpsys activity | grep "mCurrentFocus" 터미널에 adb 명령어를 사용하여 현재 보여지는 activity의 패키지명을 가져올 수 있다. 2. Layout Inspector (Xml, Compose 코드로 이동) Layout Inspector에서 특정 뷰를 선택하여 Go To Declaration을 사용하면 해당 뷰가 선언된 xml 혹은 Compose 코드로 이동시켜준다. 3. Open Current Activity 플러그인 (Activity로 이동) https://plugins.jetbrains.com/plugin/7877-open-current-activity Open current Activity - Inte..

    좋아요0
    댓글0작성시간2023. 2. 14.
    게시글 이미지
  • 안드로이드13 테마 앱 아이콘 대응글 내용

    https://developer.android.com/about/versions/13/features?hl=ko#themed-app-icons 기능 및 API 개요 | Android 개발자 | Android Developers Android 13의 개발자를 위한 새로운 기능과 API를 알아봅니다. developer.android.com 안드로이드13의 테마 앱 아이콘에 대응하기 위해서는 먼저 적응형 아이콘이 적용되어 있어야 한다. 적응형 아이콘을 적용하면 이런 형태로 패키지가 구성이 되는데 ic_launcher.xml에서 monochrome에 drawable을 넣어주면 된다. 아이콘에 tint를 넣는 형태로 구현이 되기 때문에 monochrome에 넣어주는 icon은 foreground icon과 같이 ..

    좋아요0
    댓글0작성시간2023. 2. 14.
    게시글 이미지
  • 외부 라이브러리에서 NoClassDefFoundError 발생하였을 때글 내용

    일반적으로 NoClassDefFoundError은 multi dex 설정을 안해주어서 발생하는 경우가 많다. 하지만 multi dex 설정도 잘 되어 있는데 특정 라이브러리 추가 이후 NoClassDefFoundError가 발생한다면 Firebase Performance를 의심해 볼 수 있다. 기존에 firebase performance 플러그인으로 'com.google.firebase:perf-plugin:1.3.1'을 사용하였는데 'com.google.firebase:perf-plugin:1.4.2'으로 버전을 올린 이후 해당 크래시가 발생하지 않았다. 혹은 빌드 옵션으로 debug { FirebasePerformance { instrumentationEnabled false } } 를 추가하여 de..

    좋아요0
    댓글0작성시간2022. 11. 25.
  • Kotlin Flow in Clean Architecture.글 내용

    https://florentblot.medium.com/kotlin-flow-in-clean-architecture-and-mvvm-pattern-with-android-682605c42a38 Kotlin Flow in Clean Architecture and MVVM Pattern with Android The first goal when developing an Android application is to have a code easy to test and painless to maintain. We must use an architecture… florentblot.medium.com

    좋아요0
    댓글0작성시간2022. 11. 7.
  • Target SDK 31 수정 이후 Widget에서 발생하는 크래시 이슈글 내용

    동작 변경사항: Android 12를 타겟팅하는 앱 | Android Developers Android 12를 타겟팅하는 앱에 영향을 주는 Android 12의 변경사항을 알아봅니다. developer.android.com 31 동작 변경 사항에 의하여 widget에서 사용하는 PendingIntent의 flag에 일괄적으로 PendingIntent.FLAG_IMMUTABLE 을 넣어주었다. 배포 이후 Caused by java.lang.NullPointerException이 발생하기 시작하였고 원인은 무지성으로 넣어준 IMMUTABLE flag 때문이었다. Widget의 ListView의 경우 setPendingIntentTemplate을 통하여 PendingIntent를 넘겨주고 RemoteViews..

    좋아요0
    댓글0작성시간2022. 10. 28.
  • Viewmodel에서 String 사용하기글 내용

    https://medium.com/@alex.calovi98/manage-android-strings-on-a-view-model-2da4aa2970ed Manage Android Strings on a View Model Written by Alex Calovi medium.com

    좋아요0
    댓글0작성시간2022. 10. 25.
  • Kotlin extension functions글 내용

    https://medium.com/codex/extension-functions-you-need-to-know-in-android-a87c2e9b5d9e Extension Functions You Need to Know in Android Leveraging the Power of Kotlin medium.com

    좋아요0
    댓글0작성시간2022. 10. 11.
  • 안드로이드 12 대응글 내용

    https://medium.com/native-mobile-bits/lets-use-android-12-migration-of-our-android-apps-to-android12-api-31-af329b6829d0 Let's use Android 12, Migration of our Android Apps to Android12 (API 31) This article is completely based on my recent experience dealing with Android 12, while I was trying to implement some new Android API… medium.com + Android 12 부터 http, https로 시작하는 scheme가 작동하지 않음 App Li..

    좋아요0
    댓글0작성시간2022. 10. 7.
  • 어플리케이션 시작 시간 개선글 내용

    https://blog.dipien.com/how-to-measure-and-improve-your-android-app-startup-times-b174a758b40 How to measure and improve your Android App Startup times Explore the different ways to measure and improve your Android App launch times. blog.dipien.com

    좋아요0
    댓글0작성시간2022. 9. 15.
문의안내
  • 티스토리
  • 로그인
  • 고객센터
© Kakao Corp.