본문 바로가기

Android5

Android RecyclerView Adatper 코드 리펙토링 안드로이드 RecyclerView.Adapter를 구현하다보면 되게 복잡하게 코드가 짜여진다. 다른 adpater를 만들 때 마다 계속해서 구현 해줘야하는 onCreateViewHolder 와 onBindViewHolder 아래 사진은 제가 지금까지 adpater를 구현 할 때 마다 했던 방식입니다. 사진으로 비교해봐도 두개 각기 다른 Adapter인데 계속해서 불필요한 class 를 분산 시키고 클래스 파일을 제작하였었습니다. 이를 어떻게하면 하나의 베이스인 adapter를 만들어 해 나갈까 생각하던 중 좋은 예시를 하나 발견하고 저만의 스타일로 바꿔 나가기 시작했습니다. 제가 참고한 블로그는 아래 링크에 남겨 두겠습니다. 우선 처음에는 RecyclerView.ViewHolder를 상속받은 BaseVi.. 2019. 12. 11.
ViewModel에서 startActivity 적응 AAC중 하나인 MVP에서는 view 와 Presenter가 의존성이 있어서 뷰 에서 클릭 이벤트 발생 시 Presenter에서 이벤트 처리를 해주는 방식으로 구현을 하였다. 이렇게 넘어가도록 구현을 했지만 ViewModel 에서는 View와의 의존성을 제거한 상태여서 View에 데이터만 넘겨주는것이지 직접 관리를 하지 않는다 생각한다. 처음에는 이를 모르고 ViewModel에서 구현을 아래 그림처럼 하였다. 바로바로 사진을 못찍어서 급하게 만든 함수인데 원래 클릭하면 액티비티가 실행되고 Bundle과 같이 position값에 따른 id를 넘겨주는 코드였습니다 ㅜㅜ,, 아무래도 view와의 의존성을 제거 했는데 view를 관리해주는게 이상하다 싶어서 어떻게 LiveData로 관리를 할 수 없을까 하다가 .. 2019. 12. 10.
안드로이드 부족한 공부(R이 하는 역할, RecyclerView & ListView 차이점, viewmodel에서 mutableLiveData, LiveData 두는 이유) 안드로이드에 부족한 점이 많아 포스팅을 하게 되었다. - 우선 R이 하는 역할이다. 안드로이드 개발 시 항상 R.~ 이렇게 진행되는 코드를 매우 많이 봤다. 해당 R이라는 클래스가 어떤 역할을 하는지 상세하게 알아가기 위해 안드로이드 프로젝트의 External Library 안의 R클래스를 들어가보았다. 다음과 같이 많은 코드가 추가된것을 알 수 있다. 해당 추가된 코드들은 res 파일의 상세 디렉토리 style, string, dimen, color 등 이렇게 구분되어있고 각각 변수는 파일명을 따른다. 그로인해 res안에 임의의 디렉토리를 함부로 생성해서는 안된다. 해당 res 파일안의 디렉토리의 각각 변수는 int형으로 생성된다. - RecyclerView 와 ListView의 차이점. ListVie.. 2019. 12. 9.
ViewModel 처음 사용 시 일어날 수 있는 에러 이번에 MVP 패턴말고 MVVM 패턴을 사용해봐야겠다고 마음먹고 첫 MVVM 패턴을 이용한 어플리케이션을 제작하기로 했다. MVVM패턴 이라하면은 Model, View, ViewModel 이렇게 나눠 지는데 Model 은 비즈니스 로직을 담당하고 View 는 UI 부분 ViewModel 은 View 에서 일어난 이벤트 처리하는 함수 등 여러가지가 포함되어있다. 처음 사용하던 MVVM 패턴 이었지만 MVP 패턴에서 Presenter 가 View의 상태를 아는것과 ViewModel은 View 의 상태를 모르는것 이 차이점만 있기 때문에 어렵기 않게 적용 시켜 나갔지만 ViewModel을 객체화 시키는데에서 문제가 생겼다. 본문 바로 아래 그림처럼 컴파일 에러는 아니지만 런타임 에서 오류가 계속 나는것이었다... 2019. 12. 6.