일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린
- 함수형프로그래밍
- Kotlin
- Design Pattern
- ㅓ
- ㅋㅁ
- 추상팩토리패턴
- 빌터패턴
- a
- F
- 팩토리 메소드
- 싱글톤
- 옵저버 패턴
- 프로토타입 패턴
- Abstract Factory
- designPattern
- Singleton
- PrototypePattern
- builderPattern
- Functional Programming
- El
- factory method
- 디자인패턴
- 추상 팩토리
- Observer Pattern
- 디자인패턴 #
- r
- Today
- Total
목록Android Jetpack Architecture/ViewModel (8)
오늘도 더 나은 코드를 작성하였습니까?
UI 이벤트는 UI 레이어에서 UI 또는 ViewModel로 처리해야 하는 작업입니다. 가장 일반적인 이벤트 유형은 사용자 이벤트입니다. 사용자는 화면 탭하기 또는 동작 생성과 같은 앱과의 상호작용을 통해 사용자 이벤트를 생성합니다. 그러면 UI에서 onClick() 리스너와 같은 콜백을 소비하여 이러한 이벤트를 사용합니다. 핵심 용어: UI: 사용자 인터페이스를 처리하는 뷰 기반 또는 Compose 코드입니다. UI 이벤트: UI 레이어에서 처리해야 하는 작업입니다. 사용자 이벤트: 사용자가 앱과 상호작용할 때 생성하는 이벤트입니다. ViewModel은 일반적으로 특정 사용자 이벤트의 비즈니스 로직을 처리합니다 (예: 사용자가 일부 데이터를 새로고침하는 버튼을 클릭하는 경우). ViewModel은 보통..
1. Activity, Fragment 각자 뷰모델을 생성하는 경우 Activity class MainActivity : AppCompatActivity() { private lateinit var mBinding: ActivityMainBinding private lateinit var mViewModel: NotesViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main) mViewModel = ViewModelProvider(this).get(NotesVie..
안드로이드 아키텍쳐 컴포넌트인 ViewModel은 유용한 기능을 제공해주는 반면 사용에 제약도 따른다. 1. ViewModel은 절대로 Activity나 Fragmemt 또는 View의 Context를 참조해서는 안된다. 언제든 생성 및 파괴될수있는 객체의 참조를 ViewModel에게 유지시키는 일은 파괴된 Activity를 ViewModel에서 유지 시킴으로서 메모리 누수를 발생시킨다. 시스템의 Context가 필요한경우 AndroidViewModel을 사용해라. 2. ViewModel에서 안드로이드 프레임워크 코드를 참조하면안된다. 프레임 워크 코드를 참조하게되면 단위테스트가 불가능해진다. ViewModel은 View에 표현할 데이터및 비지니스 로직을 지녀야 한다. 3. Dagger2및 ViewMod..
CursorLoader와 같은 로더 클래스는 앱 UI의 데이터와 데이터베이스 간의 동기화를 유지하는 데 자주 사용된다. ViewModel을 몇 가지 클래스와 함께 사용하여 로더를 대체할 수 있습니다. ViewModel을 사용하면 UI 컨트롤러가 데이터 로드 작업에서 분리됩니다. 즉, 클래스 간에 강력한 참조가 적어집니다. 일반적인 로더 사용 방법 중 하나로, 앱이 CursorLoader를 사용하여 데이터베이스의 내용을 관찰할 수 있습니다. 데이터베이스에서 값이 변경되면 로더가 자동으로 데이터 새로고침을 트리거하고 UI를 업데이트합니다. ViewModel은 Room 및 LiveData와 함께 작업하여 로더를 대체합니다. ViewModel은 기기 구성이 변경되어도 데이터가 유지되도록 보장합니다. 데이터베이스..