한 발짜국

Android Studio(Kotlin) 한 줄 읽기 #2 (lateinit, RecyclerView, Property, 의존성 주입) 본문

Android Studio(Kotlin) 한 줄 읽기 #2 (lateinit, RecyclerView, Property, 의존성 주입)

발짜국 2022. 11. 11. 01:47

이해할 코드 한 줄

lateinit var recyclerView: RecyclerView

lateinit (늦은 초기화)

  • 전역변수로 선언 후 null 값을 지정하지 않고 초기화하는 방법
  • 일반적으로, null 타입이 아닌 프로퍼티는 반드시 생성자에서 초기화되어야 한다. 하지만 프로퍼티가 의존성 주입을 통해 혹은 단위 테스트 셋업 함수에서 초기화 되어야 하는 경우 이러한 방식은 편리하지 않다. 
  • 이러한 경우 생성자에 null이 아닌 초기화를 제공할 수 없지만, 클래스 본문 내에서 속성을 참조할 때 null 검사를 피하고 싶을 때 lateinit를 사용한다.
  • 계속해서 값이 변경될 수 있다는 속성을 위해 무조건 var을 사용해야 하며,  String을 제외한 Primitive Type (Int, Float, Double, Long 등), val 키워드는 사용 불가능, getter와 setter 정의 불가능

RecyclerView

  • RecyclerView는 클래스 이름일 뿐 아니라 라이브러리 이름

recyclerview 라이브러리의 RecyclerView 클래스

  • 대략의 데이터 세트 효율적으로 표시 가능
  • 개발자가 데이터를 제공하고 각 항목의 모양을 정의하면 RecyclerView 라이브러리가 필요할 때 요소를 동적으로 생성
  • 개별 요소 재활용, 항목이 스크롤되어 화면에서 벗어나더라도 뷰 제거 대신 화면에서 스크롤된(화면에서 벗어난) 새 항목의 뷰 재사용
  • 뷰 재사용 → 앱의 응답성 개선, 전력 소모 감소 → 성능 개선

기타 정리

프로퍼티 (Property)

  • 일부 객체지향프로그래밍 언어에서 필드(데이터 멤버)와 메소드 간 기능의 중간인 클래스 멤버의 특수한 유형
  • 읽기와 쓰기는 일반적으로 getter와 setter 메소드 호출로 수행

의존성 주입 (Dependency Injection)

  • 객체가 외부에서 의존하는 또 다른 객체를 생성하고 이를 주입받아 사용하는 것
  • 코드에서 두 모듈 간의 연결을 의미
  • 일반적으로 둘 중 하나가 다른 하나를 어떤 용도를 위해 사용
  • 객체지향언어에서는 두 클래스 간 관계라고도 말함
  • 클래스간의 의존성이 줄어들면 유지보수 시 매우 편리

아래 블로그에 정리가 잘 되어있다.

https://velog.io/@jojo_devstory/DIDependency-Injection%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

DI(Dependency Injection)에 대해 알아보자

요즘들어 삘을 받아서 폭풍 포스팅 중 입니다.🤗이번 포스팅은 DI(Dependency Injection) - 의존성 주입에 대한 내용인데요.먼저 DI가 무엇인지 알아보고 안드로이드에서 많이 쓰이는 DI 라이브러리들

velog.io


참고 블로그와 사이트

https://kotlinlang.org/docs/properties.html#checking-whether-a-lateinit-var-is-initialized

https://velog.io/@haero_kim/Kotlin-lateinit-vs-lazy-%EC%A0%95%ED%99%95%ED%9E%88-%EC%95%84%EC%84%B8%EC%9A%94

 

[Kotlin] 🤚🏻 lateinit vs lazy, 정확히 아세요?

조금이라도 헷갈린다면 들어오세요!

velog.io

https://ddolcat.tistory.com/602

 

[android : kotlin] 코틀린 lateinit, lazy 사용방법 및 예제

자바에는 없는 lateinit와 lazy에 대해 알아봅니다. 코드 예제를 먼저 보아요. 아래 코드 스니펫(Code Snippet)에서 보는 것처럼 mediaPlayer객체를 전역 변수로 선언 후 초기화를 나중에 하기 위해 null 값

ddolcat.tistory.com

https://developer.android.com/guide/topics/ui/layout/recyclerview?hl=ko 

 

RecyclerView로 동적 목록 만들기  |  Android 개발자  |  Android Developers

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. RecyclerView로 동적 목록 만들기   Android Jetpack의 구성요소 RecyclerView를 사용하면 대량의 데이터 세트를 효율적

developer.android.com

 

반응형
Comments