Android82 [Android] 안드로이드에서 Rect 클래스 활용하기 Rect 클래스는 안드로이드에서 사각형 영역을 정의할 때 사용되는 클래스입니다. 좌표 시스템에 기반하여, 사각형의 왼쪽 위 모서리와 오른쪽 아래 모서리의 위치를 정의함으로써 사각형의 위치와 크기를 나타냅니다. Rect 객체는 주로 뷰(View)의 크기나 위치를 계산하고, 그래픽을 그릴 때 영역을 지정하는 등의 목적으로 사용됩니다.Rect 클래스는 다음과 같은 네 가지 주요 필드를 가지고 있습니다.left: 사각형의 왼쪽 변의 x 좌표입니다.top: 사각형의 상단 변의 y 좌표입니다.right: 사각형의 오른쪽 변의 x 좌표입니다.bottom: 사각형의 하단 변의 y 좌표입니다.이 네 가지 좌표는 사각형의 위치와 크기를 완벽하게 정의합니다. 예를 들어, left가 10, top이 20, right가 30,.. 2024. 5. 3. [Android/Java] ActivityResultLauncher 및 ActivityResultContracts 활용 방법 ActivityResultLauncher는 안드로이드 앱 개발에서 다른 액티비티로부터 결과를 받아오기 위해 사용되는 클래스입니다. AndroidX 라이브러리의 일부로, Android 11(R API 레벨 30)이 출시됨과 동시에 소개되었습니다. 기존의 startActivityForResult() 메서드와 onActivityResult() 콜백 방식을 대체하기 위해 도입되었으며, 사용하기 쉽고, 코드가 더 읽기 쉬워지고, 타입 안전성을 높여줍니다. 기본 사용 방법ActivityResultContracts 정의: ActivityResultLauncher를 사용할 때는, 어떤 타입의 액티비티 결과를 기대하는지 정의해야 합니다. 이는 ActivityResultContracts에 있는 다양한 계약 중 하나를 사용.. 2024. 5. 2. [Kotlin] Kotlin에서의 지연 초기화: lateinit 키워드 이해하기 lateinit는 Kotlin에서 나중에 초기화될 프로퍼티를 선언하기 위해 사용되는 키워드입니다. 코틀린은 널 안정성(null safety)을 중요시하는 언어이기 때문에, 프로퍼티를 선언할 때 반드시 초기화를 해주거나 null 가능 타입으로 선언해야 합니다. 그러나, 어떤 경우에는 클래스의 초기화 과정 중에 바로 프로퍼티 값을 결정하기 어렵거나, 의존성 주입 등으로 인해 객체 생성 이후에 초기화가 이루어져야 할 경우가 있습니다. 이런 경우에 lateinit 키워드를 사용하면 초기화를 지연시킬 수 있습니다. lateinit의 주요 특징:초기화 지연: lateinit 키워드를 사용하면 선언 시점에서 바로 초기화하지 않고, 나중에 초기화할 수 있습니다.널이 아닌 타입 사용 가능: lateinit으로 선언된 프.. 2024. 4. 30. [Kotlin] Kotlin의 companion object 이해하기 Kotlin에서 companion object는 클래스 내부에 정의될 수 있는 객체 선언으로, 이를 통해 그 클래스의 static 멤버와 유사한 기능을 구현할 수 있습니다. Java와는 달리 Kotlin에는 static 키워드가 없으며, 대신 companion object를 사용하여 클래스 레벨의 변수나 메소드를 만들 수 있습니다. 이러한 특성은 Kotlin에서 클래스 인스턴스 없이도 클래스 이름을 통해 직접 접근할 수 있도록 해 줍니다. Companion Object의 특징:클래스 내부 객체: companion object는 클래스 내부에 위치하며, 해당 클래스의 모든 인스턴스가 공유하는 객체입니다.정적 멤버 접근: companion object 내부에 정의된 속성이나 함수는 클래스 이름을 통해 접근할.. 2024. 4. 30. [Kotlin,Java] 코틀린과 자바에서 MutableList 선언 및 조작의 차이점 탐구 코틀린과 자바에서 MutableList를 선언하는 방법은 언어의 특성에 따라 다소 차이가 있다. 아래에서는 각 언어에 따른 MutableList 선언 방법을 코드를 통해 설명하겠다. 코틀린에서의 MutableList 선언 코틀린에서는 mutableListOf 함수를 사용하여 간결하게 MutableList를 선언할 수 있다. 코틀린의 표준 라이브러리는 다양한 컬렉션 타입을 쉽게 생성할 수 있는 함수들을 제공한다. val mutableList: MutableList = mutableListOf(1, 2, 3) mutableList.add(4) // MutableList에 아이템 추가 println(mutableList) // 출력 결과: [1, 2, 3, 4] 코틀린에서는 타입을 명시적으로 지정해주거나, 타.. 2024. 4. 23. [Android] RecyclerView의 notifyItemChanged 사용 시 발생하는 깜빡임 문제 해결 방안 RecyclerView에서 notifyDataSetChanged를 사용해 어댑터 아이템들을 업데이트할 때 발생하는 성능 문제를, 특정 아이템만을 업데이트하는 notifyItemChanged를 통해 해결할 수 있었다. 그러나 이 방식을 적용하더라도, 엘레베이터의 층수가 1초마다 변하면서 UI를 업데이트할 때 깜빡임과 버벅거림 문제가 계속 발생했다.이 문제의 원인을 조사해보니, Android의 RecyclerView를 위한 SimpleItemAnimator의 기본 애니메이션 효과가 원인임을 알아냈다.SimpleItemAnimator는 RecyclerView 아이템 애니메이션을 구현하기 위한 추상 기본 클래스로, RecyclerView.ItemAnimator를 확장한다.공식 문서의 RecyclerView.I.. 2024. 4. 22. [Kotlin,Java] 자바와 코틀린에서의 프로퍼티 선언 방식의 차이점 설명 자바와 코틀린 모두에서 프로퍼티는 클래스의 상태를 나타내는 중요한 구성 요소이다. 그러나 코틀린은 프로퍼티를 선언하고 사용하는 방법에서 자바에 비해 더 단순하고 강력한 기능을 제공한다. 자바에서의 프로퍼티 생성 자바에서는 프로퍼티를 만들기 위해 필드(변수)와 그 필드를 접근하기 위한 getter 및 setter 메소드를 명시적으로 선언해야 한다. java public class Person { private String name; // 필드 // Getter public String getName() { return name; } // Setter public void setName(String name) { this.name = name; } } 코틀린에서의 프로퍼티 생성 코틀린에서는 필드, gette.. 2024. 4. 21. [Android] RecyclerView 데이터 변경 시 UI 업데이트 최적화를 위한 알림 메서드 활용법 제어 즐겨찾기 영역에서 특정 기기를 호출할 때마다, 전체 기기 목록이 업데이트되는 문제가 발생했었다.이런 상황은 반복적으로 성능 문제를 일으켰다.문제의 원인을 분석해본 결과, RecyclerView의 어댑터가 UI에 데이터 변경 사항을 알릴 때 notifyDataSetChanged 메소드를 사용하고 있었기 때문에, 다음과 같이 전체 기기 목록이 갱신되는 것을 확인했다. 이 문제는 어댑터의 아이템 위치값(position)을 활용하여 notifyItemChanged 메소드를 호출함으로써 해결할 수 있었다. notifyItemChanged는 지정된 위치의 아이템만을 업데이트하므로, 전체 목록을 갱신하는 것보다 훨씬 효율적이다.이 방법으로 성능 문제를 개선하고 사용자 경험을 향상시킬 수 있었다. 이 경험을 통해.. 2024. 4. 21. [Android] LiveData의 이해: Android 앱에서 데이터와 UI의 효율적 동기화 LiveData는 Android 아키텍처 컴포넌트의 일부로, 데이터 관찰 및 UI 업데이트를 위한 데이터 홀더 클래스이다.LiveData는 관찰 가능한 데이터 클래스로서, UI 컴포넌트가 데이터의 변경 사항을 관찰하고, 데이터가 변경될 때마다 UI를 자동으로 업데이트할 수 있도록 해준다.LiveData의 주요 특징과 작동 방식은 다음과 같다. 1. 생명주기 인식LiveData는 생명주기를 인식하는 컴포넌트로서, Android 생명주기에 따라 관찰자(Observer)에게 데이터 변경을 통지한다. 즉, 액티비티나 프래그먼트의 생명주기 상태를 고려하여, 이 컴포넌트들이 활성 상태(STARTED 또는 RESUMED 상태)일 때만 데이터 업데이트를 수신한다.이로 인해 메모리 누수, 액티비티가 종료된 후에도 데이터.. 2024. 4. 21. 이전 1 ··· 4 5 6 7 8 9 10 다음 반응형