본문 바로가기

개발40

Flutter Provider (프로바이더 with MVVM) 상태관리 패키지 Provider란? 일반적으로 우리가 어떤 데이터를 위젯에서 표현하다 보면 같은 데이터를 공유하는 Widget이 발생하게 되고 데이터의 무결성을 위해서 State값을 공유하고 하위 위젯에게 전달하기 위해서 의미 없는 StatefulWidget을 구현해야 할때가 있다. 위젯에서 위젯으로 데이터 State를 전달하고 전달해서 그변화를 감지하여 화면에 다시 그려주고 하는 일들을 하게 되면 State값의 변화로 인해 다시 그리지 않아도 되는 Widget을 빈번하게 다시 그리게 된다. 상태값(State)을 공유하면서 Depth가 깊어지고 그러면서 flutter구조가 가져오는 성능저하를 개선하고 반복되는 코드를 제거 하기 위해서 만들어진 것이 Provider이다. 이 포스팅에서는 간단하게 viewModel과 pro.. 2022. 4. 5.
Flutter Rotate Animation (회전 애니메이션 만들기) Flutter Rotate Animation (회전 애니메이션 만들기) 위와 같은 이미지를 아래와 같이 회전하게 만드는 방법은?? 일정한 타이밍으로 애니메이션이 진행되어야 하는 애니메이션이 하나이기 때문에 SingleTickerProviderStateMixin 클래스를 상속받는다. SingleTickerProviderStateMixin 클래스는 StatefulWidget을 지원하기 때문에 애니메이션이 구현되어야 하는 Widget은 StatefulWidget이어야한다. TickerProviderStateMixin을 제대로 상속받았다면 vsync 값에 this를 입력했을때 제대로 인식할 것이다. animationController를 선언 하면서 애니메이션의 간격을 duration 값으로 정한다. 값이 작아지.. 2022. 4. 4.
Flutter. 이미지를 원형으로 crop해보자 default로 로드한 이미지의 경우 위와 같은 모양을 하고 있지만 요구사항에 의해 원형으로 만들어야 한다면 다음과 같은 방법으로 가능하다. 방법 1. Container( width: 80, height: 80, decoration: BoxDecoration( shape: BoxShape.circle, image: DecorationImage( fit: BoxFit.fill, image: AssetImage('assets/img/music.png'), ) ) ); 방법 2. CircleAvatar( radius: 40, backgroundImage: AssetImage('assets/img/home-delivery.png'), ); 2022. 4. 4.
Flutter. 화면에 경고 영역이 생기면.. (Right Overflowed by N Pixels) Right Overflowed by N Pixels. 화면에 맞지 않는 큰이미지를 로드 했더니 다음 처럼 화면에 경고(주의) 영역이 표시되었다. 이럴때는 다음과 같은 방법으로 해결할 수 있다. 1. 실제 이미지 사이즈 줄이기 디자인 툴을 이용하여 이미지의 실제 사이즈를 줄인다. 모바일 디바이스에 맞춰 디자인을 다시 한다. 2. Image 위젯을 SizedBox로 감싸고 사이즈 변경하기 설정한 사이즈로 이미지사이즈가 변경된다. SizedBox(width: 200, child: Image.asset('assets/img/music.png')); 3. Image 위젯을 Flexible로 감싸기. 화면에 맞춰 이미지 사이즈가 자동으로 조절 된다. Flexible(child: Image.asset('assets/.. 2022. 4. 4.
DI (Dependency Injection)는 왜 써야 하는가? 각 클래스간의 관계를 유연하게 해서 OOP에 효율적인 코드를 만들자! DI란? 객체와 객체의 관계를 주입을 통해서 연결해 주어 객체간의 관계를 유연하게 하는 것. 이라고 말할 수 있다. 그렇다면 객체와 객체간의 관계를 유연하게 하는 것은 어떤 것일까? 아래 내용으로 천천히 설명해 보겠다. 사설. 언젠가 이런 질문을 받은적이 있다. DI에 대해서 아시나요? DI는 왜 사용해야 하나요?? 나의 답은 너무나 간단하게 "OOP를 잘하려면 DI를 사용해야 합니다. " 였는데 생각해보면 이 이야기가 무엇인지 알아들을수 있는 사람이 있고 혹여는 오해 할 수 있겠다라는 생각이 들었다. 또 누군가는 좋다고 하는건 알겠는데 굳이?? DI 쓰지 않고도 개발은 가능하잖아?? 라고 생각하는 사람도 있을 것이다. 게다가 OOP를.. 2022. 3. 28.
Android Hilt에 대해서 알아보자 배우기 나름 쉽고 빌드하면서 오류를 찾아 낼수 있는 DI Tool 인 Hilt에 대해서 알아보자 # 환경 설정 hilt의 경우는 version에 민감하므로 전체적으로 version을 잘 맞춰줘야 할 필요가 있다. 그렇지 않으면 오류를 쏟아 낸다. 각각 아래 파일들의 버젼을 확인하고 추가 할 부분은 추가해 주자. gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip project level build.gradle dependencies { ... classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1' //2022... 2022. 3. 21.