일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- 추상팩토리패턴
- designPattern
- 옵저버 패턴
- El
- Design Pattern
- F
- 안드로이드 디자인시스템
- 디자인패턴
- Singleton
- ㅓ
- Observer Pattern
- ㅋㅁ
- factory method
- 함수형프로그래밍
- Abstract Factory
- 빌터패턴
- android designsystem
- 코틀린
- 싱글톤
- material3
- PrototypePattern
- 팩토리 메소드
- 추상 팩토리
- 프로토타입 패턴
- compose
- r
- Kotlin
- Functional Programming
- 디자인패턴 #
- builderPattern
- Today
- Total
목록전체 글 (333)
오늘도 더 나은 코드를 작성하였습니까?
실제로 다뤄야 되는 API 중에 상당수는 자바로 작성되어 있다. 하지만 코틀린의 람다를 이용하면 아무런 문제 없이 자바 API를 사용할 수 있다. 예) 자바에서 버튼에 리스너 객체를 전달하기 위해 무명 클래스의 인스턴스를 생성해서 넘겨준다. button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); button.setOnClickListener = { view -> } 이런 코드가 작성 가능한 이유는 OnClickListener 인터페이스가 단 하나의 추상 메서드를 가지고 있기 때문이다. 이런 인터페이스를 SAM(Single Abstract Method) 인터페이스라고 부른다. ..
* 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를 다시 생성하면 새 활동은..
databinding의 가장 중요한 목적은 LiveData(Observable)을 이용하여 MVP 패턴에서 View와 Presenter 간의 높은 의존성을 약하게 만들어야 되었다. 또한 안드로이드 구성요소의 생명주기를 인식할 수 있는 LiveData를 이용한다면 생명주기에 대한 수동 처리 없이 데이터 변경에 따른 UI를 변경을 반응형으로 프로그래밍할 수 있다. *안드로이드 스튜디오 3.1 이상 버전부터는 Observable 필드의 사용보단 LiveData의 사용을 데이터 바인딩에서 권장된다. LiveData와 Binding클래스를 같이 사용하려면 바인딩 클래스에 LifecycleOwner를 명시하여 생명주기를 인식하고 생명주기를 인식하고 이에 따라 LiveData가 트리거 될 수 있도록 해야 된다. pu..