본문 바로가기

안드로이드 프로그래밍17

[안드로이드] Hilt에서 @Binds와 @Provides의 차이 @Binds vs @Provides공통점@InstallIn로 정의된 모듈 내부에서 종속성 주입을 위해 사용된다.@Binds : 인터페이스와 인터페이스의 구현체를 연결하는데에 사용된다.@Binds의 메서드는 추상 메서드여야 한다.고로 abstract 키워드를 요구한다.@Binds 메서드는 동일한 인터페이스에 여러개의 인터페이스 구현체를 연결할 수 없다.주입될 타입은 인터페이스이다.@Provides : 종속성 객체를 생성, 제공하는 메서드를 정의할 때 사용된다. (@Binds 외의 경우)종속성을 제공하는데에 의미가 있으므로, 반환값이 존재해야 한다.복잡한 종속성을 제공하거나 외부 라이브러리를 제공하는데에 사용된다.주입될 타입은 인터페이스, 클래스 등 다양하다. 2024. 9. 10.
[트러블슈팅] ScrollView와 RecyclerView의 충돌 -> NestedScrollView 다음과 같은 화면을 구현 도중에 스크롤뷰가 끝까지 스크롤 되지 않는 문제가 발생하였습니다. 자료를 찾아본 결과 ScrollView 내부에 RecyclerView가 포함될 경우, RecyclerView가 자체적인 스크롤 기능을 가질 수 있으므로 스크롤 이벤트가 충돌이 발생 할 수도 있다는 사실을 알게 되었고 이를 해결 하기 위해  ScrollView 대신 NestedScrollView를 사용하면 된다는 정보를 얻게 되었습니다 !  -> ( 추후에 NestedScrollView 의 문제점도 설명)    나중에 설명하자 2024. 8. 27.
[Android / 트러블슈팅] 동적으로 크기가 변하는 뷰 대응하기 문제 같은 bottom sheet임에도 불구하고, recyclerView의 아이템이 많아지면 상단의 텍스트뷰 화면을 초과하여 짤리는 상황  해결layout_height를 0dp로 준 뒤, constraintHeight_default="wrap" 속성을 추가해줬다.= app:layout_constraintHeight_default="wrap" 속성은 기본적으로 wrap_content 높이를 사용하겠다는 의미-> 리사이클러뷰가 확장되더라도 높이가 동적으로 결정된다!! 추가로 ! 리사이클러뷰를 구현할때에는 itemCount의 개수를 충분히 설정하는 것을 잊지말아야겠다. itemCount 값을 작게 설정해 놓고 디자인된 화면은 정상인데 왜 item의 개수가 많아지면 짤리는지 계속 고민했었다... 2024. 7. 30.
[kotlin] Strategy Pattern 이란 Strategy Pattern 이란 ? 정책 패턴(Policy Pattern) 이라고도 불린다. 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 사용할 수 있게 해줌객체의 행위를 변경하고 싶은 경우 직접 수정하지 않고 전략이라 불리는 캡슐화한 알고리즘을 변경해줌으로써 유연하게 확장하는 방법정리하자면 ! !  인터페이스를 사용해 기본 행위를 정의한 후 객체의 행위를 변경하고싶을 때, 직접적으로 행위를 수정하는 것이 아닌, 객체에서만 행위를 변경해 유연하게 확장하는 패턴그렇다면 언제 사용할까 ?  Strategy 패턴을 사용하는 상황은 다양한 알고리즘이 필요하고, 이들 알고리즘을 유연하게 교체하거나 확장할 수 있는 구조가 필요할 때입니다. 다음은 Strategy 패턴을 사용할 만한 몇 가지 예시.. 2024. 7. 16.