분류 전체보기 (34) 썸네일형 리스트형 registerForActivityResult 메서드의 동작과정 //1. ActivityResultRegistry를 구현한 객체를 생성한다. 개발자가 ActivityResultLauncher.launch() 메서드를 호출할 때 사용될 onLaunch 메서드를 재정의해두었다. public class ComponentActivity extends androidx.core.app.ComponentActivity implements ContextAware, LifecycleOwner, ViewModelStoreOwner, HasDefaultViewModelProviderFactory, SavedStateRegistryOwner, OnBackPressedDispatcherOwner, ActivityResultRegistryOwner, ActivityResultCaller { .. 디자인 패턴1. MVP 패턴 //View 와 Presenter 인터페이스를 소유한 Contract 인터페이스 interface Contract { interface View { fun showNewItem(item: String) } interface Presenter { var view: View var model: Model fun requestItem() } } /* * Presenter 는 View 와 Model 사이에 존재하며 * View 에서 특정 이벤트가 발생하면 Presenter 는 Model 에게 데이터를 요청하고 * Model 은 Presenter 에게 Remote 또는 Local 데이터를 전달한다 * Presenter 는 Model 에서 전달받은 데이터를 View 에게 전달하고 * View 는 데이터를 UI 에 .. context 1. applicationContext //Activity 상속 구조 AppCompatActivity by Delegates.observable 동작 방식 class ObservableClass { var stringProperty: String by Delegates.observable("INITIAL_VALUE") { prob, oldValue, newValue -> println("기존값: $oldValue, 새로운 값: $newValue") } } val observableClass = ObservableClass() observableClass.stringProperty = "first change" observableClass.stringProperty = "second change" 위 코드를 java 코드로 디컴파일을 해보면 아래와 같이 동작한다 /* * 1. ReadWriteProperty를 상속받은 ObservableProperty를 상속.. 이전 1 2 3 4 다음