본문 바로가기
728x90

Android12

안드로이드의 시작 상태 - app startup time (Cold, Warm, Hot) 안드로이드 애플리케이션은 사용자에게 빠르고 편리한 시스템을 제공합니다. 하지만 안드로이드 앱에서 너무 많은 시간을 대기하거나 멈춰있는 경우 사용자가 앱을 사용을 이탈하거나 앱을 삭제할 수도 있습니다. 따라서 안드로이드 앱을 개발할 때에는 단순히 실행되는 앱이 아닌 빠르고 편리한 앱을 만들 수 있도록 목적을 주어야 합니다. 안드로이드 앱 실행 시간 안드로이드 앱은 상태에 따라 각각 다른 속도로 실행됩니다. 이러한 각각의 상태를 안드로이드 시작 상태라고 합니다. 앱은 콜드 스타트, 웜 스타트, 핫 스타트라는 세 가지 상태 중 하나에서 시작하며, 각 상태를 앱이 사용자에게 실행되는 데에 걸리는 시간에 영향을 미칩니다. 상태를 간단하게 비교하자면 콜드 스타트는 앱이 처음부터 시작됩니다. 다른 상태(웜 스타트, .. 2023. 2. 7.
::class.java는 무엇일까 안드로이드를 하다 보면 Activity를 가리키는 상황에서 MyActivity::class.java나 Class::class.java와 같은 코드를 사용하는 경우들이 종종 있습니다. 분명 코틀린을 사용하고 있는데 java가 나오는 이유가 무엇일까요? 전 글에서 더블 콜론에 대해 설명하며 짧게 지나간 내용이 있습니다. Java와 Kotlin의 Class는 다릅니다. Java의 클래스의 경우 Calss로 반환되지만 Kotlin의 클래스의 경우 KClass로 반환됩니다. 안드로이드를 하며 클래스를 반환하는 대부분의 경우에선 Java 클래스인 Class를 필요로 합니다. 따라서 저희는 Kotlin을 사용하기 때문에 KClass를 Class로 변환해야 합니다. 위 메서드는 KClass를 반환하는 방법을 알려줍니다.. 2023. 2. 7.
Can't determine type for tag '<macro name="m3_comp_assist_chip_container_shape">?attr/shapeAppearanceCornerSmall</macro>' 해당 오류는 implementation("com.google.android.material:material:${Versions.MATERIAL}") Gradle app 수준의 material 의 버전이 맞지 않아 생기는 문제입니다. 따라서 google materia 라이브러리의 버전을 1.6.0으로 변경해주면 해결됩니다. 2023. 2. 4.
Android 4대 컴포넌트 안드로이드 앱에는 기본 요소라고 불리는 여러 요소들이 존재합니다. 그중 Android 4대 컴포넌트 라고 불리는 요소들은 면접에서도 자주 나올 정도로 안드로이드 앱을 개발하면서 굉장히 중요하다는 것을 알 수 있습니다. 안드로이드에서는 아래 유형들을 안드로이드 4대 컴포넌트라고 부릅니다. 액티비티 (Activity) 서비스 (Service) 브로드캐스트 리시버(Broadcast Receiver) 콘텐츠 제공자(Content Provider) 각 유형들은 안드로이드 앱에서 뚜렷한 목적을 수행하고, 나름의 수명 주기가 있어 구성 요소의 생성 및 소멸 방식을 정의합니다. 또한 사용자나 시스템이 앱에 진입할 수 있는 진입점입니다. 조금 더 자세하게 하나씩 알아봅시다. 액티비티(Activity) 액티비티는 사용자와.. 2023. 1. 27.
디바운스(Debounce)와 스로틀(Throttle)이란? [Rx Programming] 디바운스와 스로틀은 모두 리액티브 프로그래밍에서 이벤트를 제한하는 방법입니다. 이 두 방법은 모두 특정 시간을 분기로 삼아 이벤트를 제한해 준다는 공통점이 있습니다. 이벤트 처리할 때 제한을 해주는 이유 스포티파이를 본다면 노래를 검색할 때 검색하기 버튼을 클릭하지 않고, 그저 키워드를 입력하면 아래 페이지가 변하는 것을 알 수 있다. 이는 사용자의 행동을 감지하여 검색을 한 후, 그 결과를 반영하는 것인데 만악 당신이 클라이언트 개발자라고 하였을 때 위와 같이 검색버튼을 클릭하지 않더라도 검색이 되도록 구현하고 싶다면 어떻게 해야 하는가? 이벤트 처리 그저 사용자가 검색하는 필드를 확인한 후 값이 변할 때마다 서버로 요청을 보내면 됩니다. 하지만 이 부분에는 큰 문제가 발생한 다는 점을 알 수 있습니다.. 2023. 1. 26.
Non-body HTTP method cannot contain @Body. 오류 해결 안드로이드 앱을 개발하며 Retrofit2를 이용하여 Http 통신을 하던 도중 생긴 에러이다. Android Http 통신을 할 때 POST method 에서는 body를 사용하여 값을 서버로 보낸다. 하지만 GET method의 경우 body를 사용하지 않고, Query나 QueryMap을 이용하여 서버와 통신한다. 따라서 Body로 보내던 값들을 Query로 변경해주면 해결된다. 2022. 12. 30.
728x90