일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- material3
- 싱글톤
- 프로토타입 패턴
- android designsystem
- designPattern
- 안드로이드 디자인시스템
- ㅓ
- builderPattern
- 옵저버 패턴
- Kotlin
- Functional Programming
- F
- Design Pattern
- r
- 코틀린
- 추상 팩토리
- 빌터패턴
- Abstract Factory
- PrototypePattern
- El
- 추상팩토리패턴
- compose
- 팩토리 메소드
- factory method
- 디자인패턴 #
- Singleton
- 디자인패턴
- 함수형프로그래밍
- Observer Pattern
- ㅋㅁ
- Today
- Total
목록전체 글 (333)
오늘도 더 나은 코드를 작성하였습니까?

왜 DataBinding 이 필요할까? MVVM 패턴에서 DataBinding 및 LiveData(Observable)을 이용하여 MVP 패턴에서 View와 Presenter 간의 높은 의존성을 약하게 만들어야 되었다. ViewModel은 View에 표현될 데이터를 관리 및 비지니스 로직을 처리한다. 이 데이터를 View과 관찰하고 하고 있다가 비즈니스 로직에 따라 데이터가 변경이 되면 즉시 반영할 수 있다. ViewModel이 View에 대한 의존성을 갖지 않고 느슨하게 연결되려면 DataBinding가 필수적이다. 데이터 바인딩 기본. 모듈 수준 그레이들 파일에 build.gradle(Moudule: app) 데이터 바인딩 허용. android { dataBinding { enabled = true ..

관심사의 분리 초보 개발자는 앱을 만들다보면 UI 기반의 클래스(Activity 또는 Fragment)에 많은 코드를 작성한다. UI 기반의 클래스는 UI 및 운영체제와 상호작용을 처리하는 로직만 포함해야 합니다. 이러한 클래스를 최대한 가볍게 유지하여 많은 수명 주기 관련 문제를 피할 수 있다. Activity 및 Fragment 구현은 소유의 대상이 아니며 Android OS와 앱 사이의 계약을 나타내도록 이어주는 클래스일 뿐입니다. OS는 사용자 상호작용을 기반으로 또는 메모리 부족과 같은 시스템 조건으로 인해 언제든지 클래스를 제거할 수 있습니다. 만족스러운 사용자 환경과 더욱더 수월한 앱 관리 환경을 제공하려면 이러한 클래스에 대한 의존성을 최소화하는 것이 좋습니다 SOLID 원칙과 많은 부분이..

객체지향 설계 원칙(SOLID) 1. 단일 책임 원칙(Single Responsibility Principle) - 모든 클래스는 하나의 책임을 가지며 그 책임을 완전히 캡슐화해야 된다. - 클래스가 제공하는 모든 기능은 책임과 연관되어 있다. - 모듈, 클래스, 메서드는 단 하나의 기능을 가져야 한다. - 수정을 하거나 에러가 나면 고치기 쉽다. 2. 개방- 폐쇄의 원칙(Open Closed Principle) - 확장에 대해 열려 있다. 모듈의 동작을 쉽게 확장할 수 있다는 것을 의미한다. 애플리케이션의 요구 사항이 변경될 때, 이 변경에 맞게 새로운 동작을 추가해 모듈을 확장할 수 있다. 추후 변경사항이 발생하더라도 다른 코드나 모듈에 영향이 없도록 한다는 것. - 수정에 대해 닫혀 있다. 어떤 모..

Dagger2란? - 자바와 안드로이드를 위한 의존성 주입 프레임워크다. - 리플렉션을 사용하지 않는다. - 런 타임 시에 바이트 코드도 생성하지 않는다. - 컴파일 타임에 Annotation 프로세서의 의해 의존성 주입과 관련된 코드를 이용해 코드를 생성한다. 장점 - 자원공유의 단순화 및 지정된 범위의 생명주기 내에서 동일한 Instance를 제공한다. - 복잡한 의존성을 단순하게 설정할 수 있다. - 유닛 테스트를 쉽게 할 수 있다. - 자동 코드 생성을 통해 디버깅이 가능하다. 핵심 개념 @Module (제공하는 방법을 정의한다. 어떻게 제공할지) - 모듈은 Component를 통해 Instance 또는 데이터를 제공한다. - 제공하는 메소드를 @Provides 어노테이션을 통해 지정한다 @Com..