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

Activity 및 fragment 다른 컴포넌트의 생명주기 상태가 변경될 때 이에 대응해주는 라이브러리이다. 생명주기 인식 컴포넌트를 사용하면 더 체계적이고 가벼운 코드를 작성하고 유지보수에 용이하다. 일반적으로 Activity와 fragment는 각 생명주기에 해당하는 핸들러 메서드에서 데이터나 리소스를 할당하고 정리하는데 코드가 많아지고 잠재적인 에러 유발 요소가 증가한다. 생명주기에 의존적이던 코드를 생명주기 메서드에서 걷어내고 생명주기 인식 컴포넌트에 이를 위임한다. androidx.lifecycle 패키지는 액티비티 또는 프래그먼트 생명주기 상태에 따라 자동으로 동작을 조정할 수 있는 클래스와 인터페이스를 제공한다. 왜 생명주기가 중요한가? 안드로이드 프레임 워크의 핵심 구성요소(Activit..
코틀린 인터페이스 - 코틀린 인터페이스는 자바 8 인터페이스와 유사하다. - 추상 메서드뿐 아니라 구현이 있는 메서드도 정의 가능하다(자바 Default method와 유사) - 어떤 필드도 선언 불가능하다. - 자바와 동일하게 인터페이스는 여러 개를 구현할 수 있지만 클래스는 1개만 상속 가능하다. - override 변경자는 반드시 사용해야 된다. 아래와 같이 2개의 인터페이스를 1개의 클래스에서 구현하다면 둘 다 default showOff 메서드가 구현되어 있는데 어떻게 될까? Class 'Button' must override public open fun showOff(): Unit defined in Clickable because it inherits multiple interface met..

Include - 속성의 이름을 통하여 바인딩 변수를 include 되는 xml 로전달한다 - include.xml 에서 바인딩 변수명을 속성명과 동일하게 하여 받을 수 있다. - 각 분할된 레이아웃 파일에 대해 바인딩되는 viewModel은 최상위에 바인딩된 뷰모델안에 참조를 둔다. viewStub - include와 동일한 형태로 바인딩변수를 넘겨줄수 있다. - 바인딩 어텝터를 따로 정의 하지 않으면 바인딩이 어렵다. - ViewStub도 View를 상속하기 때문에 View를 파라미터로 받는 바인딩 어뎁터를 사용할수 있다. - 하지만 ViewStub만의 로직을 필요로하다면 인 ViewStub을 파라미터로 받는 바인딩 어뎁터를 만들어준다. - 반드시 id를 지정해야 XXXBindingClass를 포함한..

two-way DataBinding 일반적인 데이터 바인딩은 ViewModel에서 Observable 한 데이터의 변화에 있어 그것을 UI에 바로 적용하는 방식이지만 반대로 UI의 변화를 ViewModel의 데이터에 주입하는것. 속성 = " @={ }" 간단한 예제. public class MainActivity extends AppCompatActivity { ActivityMainBinding mBinding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mBinding = DataBindingUtil.setContentView(this, R.layout.activity..