본문 바로가기

분류 전체보기17

Flutter Bloc 패턴 기존에 프로바이더를 사용했던 플러터 구조에서 조금 더 AAC (안드로이드 아키텍처 컴포넌트 ) 와 비슷한 bloc 패턴으로 리펙토링을 하기로 결심하고 기존 프로젝트를 수정하게 되었다. Bloc 패턴 알아보기 우선 블록이라 함은 Business Logic of Components 의 줄임말으로 여러가지 상태관리 중 setState redux Provider Bloc InheritedWidget 하나로 개발자들간에 자주 쓰이는 패턴이다. 그전에 상태관리에 대해 상태가 무엇인지 왜 상태관리를 해야하는지 설명하도록 하겠습니다. 상태 (State) 쉽게 해석하자면 앱 내부의 데이터 라고 보면 될거같다. 유저가 어떤 행동을 취했을 때 내부에서 변하는 데이터가 상태(state)라고 합니다. 상태관리 (state ma.. 2020. 12. 20.
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.