DI Dependency Injection는 의존성 주입으로 객체의 생성과 관심을 분리하는 것이다. 간단하게 설명하면, 어떤 객체가 필요로 하는 의존성을 직접 만들어내지 않고, 외부에서 주입받는 것을 말한다. A가 B의 기능을 사용해야 한다고 한다면, A는 B의 직접 생성하지 않고, 외부에서 B를 만들어서 A에게 주입시켜준다. 장점 그렇다면, 이렇게 의존성을 주입했을 때 어떠한 부분이 좋아질까? A와 B의 결합도가 낮아지고 유연한 구조를 가지게 된다. 이렇게 되면, B의 변경이 발생하게 되면 일반적으로 A에게 영향을 미쳤지만, DI를 적용하게 되어 A에게도 영향이 미치지 않을 가능성이 높아지게 된다. 결국 대규모 어플리케이션에서의 유지보수성을 향상시키게 된다. Hilt Hilt는 안드로이드에서 DI를 쉽..
[문제 상황] Floating Button에서 icon을 적용하고 흰색으로 색상을 바꾸려고 할 때 tint 자동완성을 하게 되면 아래와 같이 작성된다. android:tint="@android:color/white" 하지만 실제로는 흰색이 적용되지 않는다. https://github.com/material-components/material-components-android/issues/1106 [FloatingActionButton] FAB Icon is Always Black · Issue #1106 · material-components/material-components-android Hello! For some reason when I set an icon using android:src on ..
최근에 여러 앱을 사용하다보면, 버튼을 꾹 누르고 일정한 시간이 지났을 때 결과가 나타나는 그런 UI 경험한 적이 있었다. 간단하게 만든 이미지를 미리 추가하여 설명하자면, 버튼을 누르고 일정시간이 지나면 그에 맞는 결과가 나오게끔 만드는게 오늘의 목표이다. Progress를 표현할 shadow를 표현하기 위해 Stack 구조를 사용하기로 하였다. 또한 AnumationController를 이용하여 값을 체크하였고, 만약 버튼이 끝까지 가지않고 땠을 경우 원래대로 돌아오도록 하였다. class HoldPressButton extends StatefulWidget { String? contents; final Color? backgroundColor; final double? textSize; final ..
문제 상황 다음과 같이 Textfield를 클릭하였을 때 키보드가 올라오면 Overflow가 발생하는 문제가 발생한다. 해결 방법 scaffold에 아래 코드를 추가하면 된다. resizeToAvoidBottomInset: false,
스크롤이 중첩되다보니 생기는 문제이다. ListView의 내부에 다음 속성을 추가해주면 된다. physics: const NeverScrollableScrollPhysics(),
floating button을 클릭시 showDialog가 화면에 보이도록 구현하려고 했는데, context관련 에러가 발생했다. 해결 방법은 다음과 같이 직접 Builder를 통해 context를 넘겨주면 된다. floatingActionButton: Builder(builder: (context) { return FloatingActionButton( onPressed: () { showAddDialog(context); }, ); }),