💡 ViewBinding과 DataBinding의 차이와 특징을 비교하여 정리하였습니다 ViewBindingViewBinding은 액티비티 또는 프래그먼트에서 xml의 뷰를 직접 참조하기 위해 사용하는 라이브러리입니다.각 XML 레이아웃 파일의 Binding 클래스를 생성하여 인스턴스에서 레이아웃에 ID가 있는 모든 뷰를 직접참조 할 수 있습니다.findViewById를 쓰지 않고 XML의 view component에 접근하는 object를 반환받아서 view에 접근할 수 있습니다.특징자동으로 생성되는 뷰 바인딩 클래스XML 레이아웃마다 자동으로 뷰 바인딩 클래스를 생성합니다.activity_main.xml → ActivityMainBinding간단하고 안전한 타입 바인딩레이아웃에 있는 모든 뷰에 대해..
💡 우아한테크코스를 진행하면서 DataBinding에서 BindingAdapter를 활용한 경험을 기록하였습니다! BindingAdapterAndroid의 데이터 바인딩 기능에서 제공하는 어노테이션으로, XML 레이아웃에서 사용자 정의 속성을 사용하여 뷰에 데이터를 설정할 수 있습니다.이를 통해 기존에 제공되지 않는 속성을 XML에서 직접 설정할 수 있고, 뷰의 로직과 UI 설정을 보다 깔끔하게 분리할 수 있습니다.바인딩 어댑터 | Android Developers 바인딩 어댑터 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 바인딩 어댑터 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 결합 어댑터는 ..
💡 우아한테크코스 과정에서 진행한 mocking을 활용한 Presenter 테스트를 기록하였습니다. 개요MVC to MVP 과정을 통해서 MVP 패턴을 구현하였습니다.구현 후 테스트 코드를 리팩터링 하는 과정에서 Presenter 테스트에 대하여 학습하였고, 그 과정을 기록하였습니다 !이전 기수의 수달님의 영상을 많이 참고하였습니다.[10분 테코톡] 수달의 mock을 사용해 android presenter test하기 MockMock은 Test Double의 종류 중 하나로 호출에 대한 기대를 명세하고 내용에 따라 동작하도록 프로그래밍 된 객체입니다.안드로이드에서는 Mockito 프레임워크를 사용해 Mock 객체를 사용할 수 있으며, 이를 통해 테스트 상에서 어떤 결과를 반환할지 결정이 가능해집니다.T..
💡 데이터를 효율적으로 표시하기 위한 RecyclerView에 대하여 기록하였습니다 ! RecyclerViewAndroid에서 큰 데이터 세트를 효율적으로 표시하기 위해 도입된 강력하고 유연한 UI 컴포넌트입니다.ListView의 후속으로 개발되었으며, View를 재활용하여 사용한다는 장점이 있습니다.RecyclerView | Android Developers RecyclerView | Android Developersandroidx.appsearch.builtintypes.propertiesdeveloper.android.com ListView와 차이점ViewHolder 패턴 내장ListView에서는 ViewHolder 패턴이 필수가 아니며, 사용자가 직접 구현해야 했습니다.하지만 Recycl..
💡 ActivityResultLauncher를 활용한 액티비티 간 데이터 전달을 기록하였습니다 ! 단방향 데이터 전달Activity 간 단방향 데이터 전달은 Intent를 통해 이루어집니다.Intent | Android Developers Intent | Android Developers developer.android.com데이터 전달하기시작할 Intent에 putExtra나 putSerializable을 활용해서 데이터를 전달할 수 있습니다.CLUB_MODIFY_UI_MODEL이라는 key를 통해서 clubModifyUiModel을 전달하였습니다.fun getIntent( context: Context, clubModifyUiModel: ClubModifyUiModel,): Int..
💡 우아한테크코스에서 화면 회진 시 데이터 유지하는 방법에 대해 학습한 내용을 기록하였습니다 ! 개요디바이스 화면을 회전하면 동적으로 생성한 데이터가 초기화됩니다.이는 대표적인 액티비티가 종료되는 상황들 중 3번째에 해당합니다.뒤로가기로 종료finish() 메서드 호출시스템에 의한 종료3번째 경우는 홈 키를 눌러 화면에 보이지 않은 상태로 장시간 경과할 때, 화면을 회전할 때 발생합니다.이 때 액티비티 생명주기에 따라서 onDestory()가 호출되며 종료되고, 새로 생성되면서 onCreate()를 호출합니다.이 때 기존에 유지하고 있던 UI 상태와 동적 데이터가 초기화 되는 문제가 발생합니다.이를 방지하기 위해 onSaveInstanceState()와 onRestoreInstanceState()를 사..