일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 팩토리 메소드
- 프로토타입 패턴
- r
- 디자인패턴 #
- 함수형프로그래밍
- 디자인패턴
- Observer Pattern
- builderPattern
- 옵저버 패턴
- PrototypePattern
- factory method
- Abstract Factory
- 추상팩토리패턴
- a
- 추상 팩토리
- Kotlin
- ㅓ
- F
- El
- Functional Programming
- ㅋㅁ
- Design Pattern
- designPattern
- Singleton
- 코틀린
- 싱글톤
- 빌터패턴
- Today
- Total
목록Android Jetpack Architecture/ViewModel (8)
오늘도 더 나은 코드를 작성하였습니까?
ViewModel이 없이 하나의 Activity에서 일반적으로 여러 개의 Fragment와의 데이터를 공유하고 전달하기 위해서는 Activity가 인터페이스를 구현하고 그 인터페이스의 참조(context)를 각 Fragment에 넘겨준 후 호출시키는 방법으로 통신을 하는 것이 기본적이다. 하지만 두 fragment가 모두 인터페이스 설명을 정의해야 하고 소유자 Activity가 두 fragment를 함께 결합해야 하므로 이 사례는 간단히 처리할 수 있는 작업이 아닙니다. 또한 두 fragment는 모두 다른 fragment가 아직 생성되지 않았거나 표시되지 않은 시나리오도 처리해야 합니다. ViewModel을 사용하면 이러한 Activity 및 Fragment 간 데이터의 공유 및 통신이 쉬어지고 코드가..
생명주기를 인식하는 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..
ViewModel 클래스는 수명 주기를 고려하여 UI 관련 데이터를 저장하고 관리하도록 설계되었다. ViewModel 클래스를 사용하면 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있습니다. Android 프레임워크는 Activity/Fragment 와 같은 UI 컨트롤러의 수명 주기를 관리합니다. 프레임워크는 특정 사용자 작업이나 완전히 통제할 수 없는 기기 이벤트에 대한 응답으로 UI 컨트롤러를 제거하거나 다시 만들도록 결정할 수 있습니다. 시스템에서 UI 컨트롤러를 제거하거나 다시 만들면 컨트롤러에 저장된 일시적인 모든 UI 관련 데이터가 손실됩니다. 예를 들어 앱은 Activity중 하나에 사용자 목록을 포함할 수 있습니다. 구성 변경을 위해 Activity를 다시 생성하면 새 활동은..