본문 바로가기

안드로이드 공부 노트59

[Android-Compose] 안드로이드 컴포즈 4편 Lazy lists - LazyColumn, LazyRow 이번 컴포즈의 공부 내용은 xml의 리사이클 러뷰의 역할을 하는 LazyColumn, LazyRow, LazyVerticalGrid, LazyHorizontalGrid이다. # Lazy lists(지연 목록) - 안드로이드 공식 문서에서는 Lazy lists(지연 목록)은 아래와 같이 설명 하고 있다. 많은 수의 항목이나 길이를 알 수 없는 목록을 표시해야 하는 경우 Column과 같은 레이아웃을 사용하면 모든 항목이 표시 가능 여부와 관계없이 구성되고 배치되므로 성능 문제가 발생할 수 있습니다. Compose는 구성요소의 표시 영역에 표시되는 항목만 구성하여 배치하는 구성요소 집합을 제공합니다. 이러한 구성요소에는 LazyColumn 및 LazyRow가 포함됩니다. 참고: RecyclerView 위젯을.. 2022. 11. 6.
[Android] 안드로이드 Parcelable(@Parcelize) 사용해 액티비티간 데이터(Object) 전달하기 - Kotlin 안드로이드에서의 액티비티 간 Object를 전달하는 방법은 두 가지가 있다. 1. Serializable(직렬화)를 통한 방법 2. Parcelable interface를 통한 방법 이번 공부내용은 두 번째 방법인 Parcelable을 사용해서 액티비티 간 Object를 전달하는 법을 알아보겠다. # Parcelable란? - Parcel이라는 뜻을 먼저 해석해보면 소포, 꾸러미등으로 해석이 되고 Parcelable이라 함은 택배로 부칠 수 있는 정도로 해석이 가능하다. - Android에서 지원해주는 SDK에 포함되어 있는 인터페이스이다. - Serializable 대비 속도면에서 훨씬 빠르다. # 기존 Parcelable 문제점 - Parcelable을 구현하는 것은 직접 구현해야 한다 그렇게 때문에.. 2022. 10. 28.
[Android - Glide] 안드로이드 이미지 로드 라이브러리 Glide 사용법 - Kotlin 이번에 공부할 내용은 안드로이드에 많은 이미지 로드 라이브러리가 있지만 그중 가장 유명하고 사용이 많이 되는 Glide 라이브러리를 공부해보겠다. # 글라이드(Glide)란? 공식문서 원본 Glide is a fast and efficient image loading library for Android focused on smooth scrolling. Glide offers an easy to use API, a performant and extensible resource decoding pipeline and automatic resource pooling. Glide supports fetching, decoding, and displaying video stills, images, and ani.. 2022. 10. 9.
[카카오 맵 오류]Caused by java.lang.NullPointerException Attempt to invoke virtual method 'java.util.List android.location.LocationManager.getAllProviders()' on a null object reference 본 필자는 카카오 맵 API를 사용 중이었다. 하지만 제목과 같이 오류가 발생해 구글링을 하던 중 원인을 발견한 후 해결 완료했다 그럼 이제 원인과 해결방법을 알아보자! # 발생 원인 - KakaoMap에서 SDK31 이상부터 대한 대응이 아직 안되어있기 때문이다. # 해결법 - 해결 방법은 간단하다 구버전인 Kakao Map SDK를 최신 버전인 SDK로 교체해주면 된다. 최신 버전은 카카오 맵 공식 사이트에서 들어가 다운로드를 하면 해결된다. 적용 법은 카카오 맵 공식 사이트에도 나와있지만 간단하게 설명 하겠다. 이미 카카오맵 API를 적용 중이면 아래 사진과 같이 파일을 옮겨 주기만 하면 완료된다. 참고 자료 https://devtalk.kakao.com/t/android-target-sdk-31-.. 2022. 10. 6.
[오류] Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.Using insecure protocols with repositories, without explicit opt-in, is unsupported Tracker를 추가하기 위해 build.gradle 설정 중 위 제목과 같은 오류가 발생하였다. # 발생 원인 ## 최신 gradle에서는 보안을 위해 http 서버를 사용하는 것을 허용하지 않는다라는 이유 때문이다. # 해결법 - 추가해주려는 코드 아래에 allowInsecureProtocol true를 적어 준다! repositories { maven { url '~~~~~~~~' // 추가 할 코드 allowInsecureProtocol true // 아래 추가 } } 적어 준 allowInsecureProtocol true 코드는 http 서버를 사용하게 하는 코드이다. 2022. 9. 29.
[Android-Compose] 안드로이드 컴포즈 3편 - Row,Column 이번 Compose 시리즈 3편의 공부할 내용은 정말 중요한 Row, Column을 알아보겠다. # Row - 컴포즈에서 각 아이템 요소들을 가로로 나열하고 싶을 때 사용하는 함수이다. Row는 기존 XML에서 LinearLayout의 orientation을 horizontal로 한다는 거와 같은 의미이다. 즉 Row = LinearLayout orientation = "horizontal"이다. @Composable fun TestRow() { // Row로 가로 배치 Row( modifier = Modifier.fillMaxSize() ) { BoxAndText(Color.Red) BoxAndText(Color.Blue) BoxAndText(Color.Green) } } // 각 아이템을 만드는 Co.. 2022. 9. 4.