일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 팩토리 메소드
- 프로토타입 패턴
- 옵저버 패턴
- Observer Pattern
- El
- 함수형프로그래밍
- 빌터패턴
- ㅓ
- a
- F
- r
- PrototypePattern
- 디자인패턴
- 싱글톤
- ㅋㅁ
- Design Pattern
- 추상팩토리패턴
- 디자인패턴 #
- Abstract Factory
- designPattern
- Singleton
- Functional Programming
- Kotlin
- 추상 팩토리
- 코틀린
- factory method
- builderPattern
- Today
- Total
목록Android Jetpack Architecture (70)
오늘도 더 나은 코드를 작성하였습니까?
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Ee1EH/btqG142HQr1/H6GFs8j9eZkKK6KkPKzLSK/img.png)
생명주기를 인식하는 ViewModel 인스턴스를 얻으려면 Lifecycle을 ViewModel Provider에 넘겨준다. 따로 new나 코틀린 객체를 생성하지 않는다. ViewModel은 범위가 지정된 Lifecycle이 영구적으로 경과될 때까지, Activity가 소멸될 때, Fragment가 Activity에서 떼어질 때까지 메모리에 존재한다. 아래 그림은 Activity가 화면구성의 변경될 때 생명주기가 변하는 동안 ViewModel의 전체 기간도 보여준다. 일반적으로 시스템에서 활동 객체의 onCreate() 메서드를 처음 호출할 때 ViewModel을 요청합니다. 시스템은 활동 기간 내내(예: 기기 화면이 회전될 때) onCreate() 메서드를 여러 번 호출할 수 있습니다. ViewModel..
* AndoridViewModel vs ViewModel AndroidViewModel 클래스는 ViewModel의 하위 클래스이다. 유사하며 UI 관련 데이터를 저장하고 관리하도록 설계되어 데이터를 준비하고 제공해야 합니다. UI의 경우에도 구성 변경 시에도 데이터가 자동으로 유지된다. AndroidViewModel과의 유일한 차이점은 응용 프로그램 콘텍스트와 함께 제공되므로 시스템 서비스를 받기 위해 콘텍스트가 필요하거나 비슷한 요구 사항이 있는 경우 유용하다. context에 대한 작업이 필요한것이 아니면 일반적인 ViewModel클래스를 상속받아서 이용할 것을 권장하고 있다. 아키텍처 구성요소는 UI의 데이터 준비를 담당하는 UI 컨트롤러에 ViewModel 도우미 클래스를 제공한다. ViewMo..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/RKxms/btqGJwybSR0/MHZsrY4OLedpDOitgumLv0/img.jpg)
ViewModel 클래스는 수명 주기를 고려하여 UI 관련 데이터를 저장하고 관리하도록 설계되었다. ViewModel 클래스를 사용하면 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있습니다. Android 프레임워크는 Activity/Fragment 와 같은 UI 컨트롤러의 수명 주기를 관리합니다. 프레임워크는 특정 사용자 작업이나 완전히 통제할 수 없는 기기 이벤트에 대한 응답으로 UI 컨트롤러를 제거하거나 다시 만들도록 결정할 수 있습니다. 시스템에서 UI 컨트롤러를 제거하거나 다시 만들면 컨트롤러에 저장된 일시적인 모든 UI 관련 데이터가 손실됩니다. 예를 들어 앱은 Activity중 하나에 사용자 목록을 포함할 수 있습니다. 구성 변경을 위해 Activity를 다시 생성하면 새 활동은..
databinding의 가장 중요한 목적은 LiveData(Observable)을 이용하여 MVP 패턴에서 View와 Presenter 간의 높은 의존성을 약하게 만들어야 되었다. 또한 안드로이드 구성요소의 생명주기를 인식할 수 있는 LiveData를 이용한다면 생명주기에 대한 수동 처리 없이 데이터 변경에 따른 UI를 변경을 반응형으로 프로그래밍할 수 있다. *안드로이드 스튜디오 3.1 이상 버전부터는 Observable 필드의 사용보단 LiveData의 사용을 데이터 바인딩에서 권장된다. LiveData와 Binding클래스를 같이 사용하려면 바인딩 클래스에 LifecycleOwner를 명시하여 생명주기를 인식하고 생명주기를 인식하고 이에 따라 LiveData가 트리거 될 수 있도록 해야 된다. pu..