전체 글 179

TIL (04.29) - LiveData 실습

Observer PatternLiveData를 공부하기 전에 옵져버 패턴에 대한 이해가 선행되어야 한다.LiveData공식문서를 보면, "LiveData는 관찰자 패턴을 따릅니다. LiveData는 기본 데이터가 변경될 때 Observer 객체에 알립니다."라고 되어있기 때문이다.옵져버 패턴은 디자인 패턴 중 하나로, 감시자들이 한곳을 계속 바라보고 있는 패턴이다. 어떤 이벤트가 일어나면 이벤트를 관찰하던 관찰자들이 바로 반응하는 패턴이다.이런 옵져버 패턴을 가지지 않는다면 이벤트를 체크해야하는 오브젝트들은 이런 이벤트가 발생했는지 계에속 이벤트를 발생 여부를 확인해야 한다.→ 필요없는 리소스 낭비가 발생하고 이벤트 발생 감지를 놓치는 경우 발생→ 하지만 옵져버가 반응하니 바로 이벤트를 감지할 수 있다...

Kotlin/TIL 2024.04.29

TIL (04.23)

RecyclerView item 데이터 수정 dataSource에 데이터 변경 메서드 생성 //dataSource.kt fun updateItem(position: Int,newData:Data){ if(position in 0 until dataList.size){ dataList[position] = newData } } Main에서 Detail로 값 넘기는 부분 //MainFragment.kt //Detail에 선택한 item 데이터 전달 adapter.itemClick = object : DataAdapter.ItemClick { override fun onClick(view: View, position: Int) { val selectedData = dataSource.getDataList()[..

Kotlin/TIL 2024.04.23

TIL (04.22)

Android 주소록 프로젝트 공통 manifests 만약 Permission exists without corresponding hardware tag 이런 오류가 발생한다면 밑에 코드를 추가해줘야한다. 발생 원인 ? 전화 권한을 허용하고 있지만 해당 기능에 대한 하드웨어가 기기에 없기 때문에 발생한다. 앱이 전화 기능을 지원하지 않는 기기에서도 작동할 수 있도록 필요한 경우에따라 위에 코드를 추가한다. 전화걸기 private fun setUpCall() { binding.ivCall.setOnClickListener { binding.tvNumber.text = "01012345678" //

Kotlin/TIL 2024.04.22

TIL(04.18)

Fragment를 사용해서 구현했습니다. 구현 내용은 선택과제 3_1까지 구현(좋아요 기능 구현 실패) 필수 구현 1단계 - 메인페이지 강의에서 전부 진행했던 내용이라 딱히 정리할 내용은 없는 것같아서 뒤로가기버튼 클릭시 종료, 알림에 대해 코드만 올리자면, 뒤로가기 버튼 시 AlertDialog 더보기 //뒤로가기 눌렀을 때 종료 물어보기 private fun finishAlert() { requireActivity().onBackPressedDispatcher.addCallback(requireActivity(), object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { AlertDialog.Builder(requireCo..

Kotlin/TIL 2024.04.18

TIL (04.16)

Multi-View-Type RecyclerView 첫 구현 GitHub - Combro-Kim/try_multi_view1 Contribute to Combro-Kim/try_multi_view1 development by creating an account on GitHub. github.com Multi ViewType Recycler는 다양한 유형의 항목을 포함하는 레이아웃을 구성할 때 사용된다고 한다. 좀 찾아보다가 대충 이런느낌인건가 싶어서 저번에 구현한 RecyclerView를 사용해서 구현했다. 맞게 한지 모르겠어서 찾아봤는데 더 좋은 방법이 많았다. 처음 구현한 프로젝트의 경우에는 viewHolder가 추가되면 추가될 수록 adapter의 내용이 길어지고 있다. 구글링한 내용에서는 vie..

Kotlin/TIL 2024.04.16

MVVM 강의 실습

단순 MVVM 패턴을 강의를 통해 진행한 내용 따라 써서 실습해보기 예제 1 버튼을 눌렀을 때 text의 값이 변경되도록 실습 textView의 id = tv_test button의 id = btn_test activity_main 코드 더보기 1. ViewMode 생성 먼저 mainActivity의 viewModel을 생성 ViewModel()을 상속받게 생성하면 된다. MainViewModel.kt 2.mainActivity ViewModel 인스턴스 생성하기 2가지 방법으로 불러올 수 있다. val viewModel = ViewModelProvider(this)[MainViewModel::class.java] //[1] private val viewModel: MainViewModel by view..

Kotlin 2024.04.16