본문 바로가기

분류 전체보기158

디자인패턴 MVC / MVP / MVVM 이번에는 디자인패턴에 대해서 알아보겠습니다. MVC (Model - View - Controller) Model: 데이터 / View: XML파일 / Controller: Activity MVP (Model - View - Presenter) Model: 데이터 / View: Activity / Presenter: Model과 View를 연결해주는 매개체 MVVM (Model - View - ViewModel) Model: 데이터 / View: Activity / ViewModel: Model과 View를 연결해주는 매개체 1. MVC (Model - View - Controller) View: MVC에서 View는 아무 역할 없는 느낌이다. 뷰를 그냥 표시하는 XML파일이라고 생각하면 된다. Contr.. 2021. 11. 18.
안드로이드(Android) 생명주기(LifeCycle)에 관하여 이번에는 안드로이드(Android) 생명주기(LifeCycle)에 관하여 알아보겠습니다. 생명주기(LifeCycle)은 크게 Activity와 Fragment 각각 하여 총 2가지에 대해서 알아보겠습니다. 1. Activity *알아두면 좋은점 1. 불투명한 새로운 액티비티가 최상단으로 올라와서 기존 액티비티가 완전히 보이지 않게 되면 onPause()에 이어 onStop()까지 호출된다는 점. 불투명 새로운 액티비티가 최상단으로 올라오면 기존 액티비티는 사용자와 더 이상 상호작용을 할 수 없다. 포커스도 새로운 액티비티에 맞춰진다. 그렇기 때문에 onPause()에 이어 onStop()까지 호출되는 것이다. 2. 하지만 새로운 액티비티가 백그라운드 속성값이 투명한 경우는 onPause()까지만 호출이 .. 2021. 11. 18.
데이터 바인딩 (DataBinding) 이란? 이번에는 데이터 바인딩(DataBinding)에 대해서 알아보겠습니다. DataBinding이란? 코틀린에서 레이아웃을, 레이아웃에서 코틀린의 데이터를 직접 참조하는 라이브러리. 코틀린에서 레이아웃 파일에 의존적인 부분이 많이 사라지고 MVVM등의 패턴과 함께 사용된다. 인드로이드에서 해당 view에 어떤 값을 변경하거나 그럴때 코드를 계속 작성해야 하는 번거로움 하지만 최근 디자인패턴과같이 코드를 서로 분리시키는 디자인패턴 중 하나인 MVVM에서는 View에 해당되는 코드를 xml에서 처리할 수 있기 때문에 View 자체에서 데이터 변경에 대한 동적 처리가 가능합니다. (ViewModel에 데이터만 남게 함으로서 View-ViewModel 분리가 용이함) 결론적으로 다음과 같이 DataBinding을 .. 2021. 11. 18.
LiveData에서 setValue() / postValue()의 차이점 오늘은 LiveData를 사용하다보면 한번쯤은 생각해보게될 setValue와 postValue에 대해서 알아보겠습니다. 처음에 둘의 차이점은 뭐길래 이렇게 안되고 오류나고 하는것인가 생각해보았었는데요 오늘 내용정리를 통해 한번 더 이해하는 시간을 가져보겠습니다. LiveData는 Android Architecture Components(AAC)에서 제공하는 라이브러리 중 하나 MVVM 패턴을 적용한다면 ViewModel, DataBinding과 함께 많이 사용하는 라이브러리입니다. LiveData는 Observer패턴을 따르며 데이터의 변경이 일어날 때 콜백을 받아 원하는 동작을 수행할 수 있다. LiveData는 값을 변경하게 해주는 함수가 바로 setValue()와 postValue() LiveDat.. 2021. 11. 18.