일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- El
- 싱글톤
- 디자인패턴 #
- factory method
- 추상팩토리패턴
- Kotlin
- builderPattern
- F
- Design Pattern
- PrototypePattern
- compose
- 옵저버 패턴
- ㅓ
- 추상 팩토리
- r
- Observer Pattern
- 코틀린
- android designsystem
- 안드로이드 디자인시스템
- 프로토타입 패턴
- 디자인패턴
- Singleton
- 빌터패턴
- 함수형프로그래밍
- material3
- 팩토리 메소드
- ㅋㅁ
- Functional Programming
- designPattern
- Abstract Factory
- Today
- Total
목록분류 전체보기 (333)
오늘도 더 나은 코드를 작성하였습니까?
자바에서는 필수적인 eqauls, hashCode, toString 등의 메서드를 클래스 생성 시 기계적으로 구현을 해둬야 한다. 하지만 코틀린 컴파일러는 이런 메서드를 보이지 않는 곳에서 생성해준다. 따라서 필수 메서드로 인한 잡음 없는 깔끔한 소스코드를 유지하는 것이다 가능하다 모든 클래스가 정의해야 하는 메서드 - 자바와 마찬가지로 코틀린 역시 eqauls, hashCode, toString 등을 오버라이드 할 수 있다. class Client(val name: String, val postCode: Int) 문자열 표현 : toString() - 객체(Instance)의 정보를 표현하는 메서드 - 기본적으로 주소 값을 보여주지만 오버라이드로 유용한 표현으로 바꿔주는 게 좋다. class Clien..
코틀린은 주(primary) 생성자와 부(secondary) 생성자를 구분한다. 초기화 블록을 통해 초기화 로직을 추가할 수 있다. 클래스 초기화: 주 생성자와 초기화 블록 class User( 주 생성자 ){ ... } 주 생성자는 파라미터를 지정하고 그 생성자 파라미터에 의해 초기화되는 프로퍼티를 정의하는 2가지 목적을 가지고 있다. class User constructor(_nickname: String){ val nickname: String init { nickname = _nickname } } * _nickname은 자바처럼 this.nickname = nickname ; 과같은 파라미터와 멤버 변수의 이름이 동일할 때 모호성을 없애기 위해 사용된다.(this를 사용해도 된다.) contst..

권장사항 UI 컨트롤러(활동과 프래그먼트)를 가능한 한 가볍게 유지하세요. 이러한 컨트롤러는 자체 데이터를 확보하려고 해서는 안 됩니다. 대신 ViewModel을 사용하여 데이터를 확보하고 LiveData 객체를 관찰하여 변경사항을 다시 뷰에 반영한다(DataBinding 을 이용한다) 데이터 기반 UI를 작성해 보세요. 여기서 데이터 변경에 따라 뷰를 업데이트하거나 사용자 작업을 다시 ViewModel에 알리는 것은 UI 컨트롤러의 책임입니다. ViewModel 클래스에 데이터 로직을 넣으세요. ViewModel은 UI 컨트롤러와 나머지 앱 간의 커넥터 역할을 해야 합니다. 하지만 데이터를 가져오는 것(예: 네트워크에서 데이터 가져오기)은 ViewModel의 책임이 아닙니다. 대신 ViewModel은 ..
만약 LifecycleOwner를 직접 구현하려면 LifecycleRegistry 클래스를 사 용수 있다. 다음 코드 예에서와 같이 LifecycleRegistry 클래스에 이벤트를 전달해야 합니다. public class MyActivity extends Activity implements LifecycleOwner { private LifecycleRegistry lifecycleRegistry; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); lifecycleRegistry = new LifecycleRegistry(this); lifecycleRegistry.markSt..