Flutter Github Action 사용해보기
2021-05-16
Github Action은 Github Repositry를 기반으로 Workflow를 자동화 할 수 있는 도구입니다. 간단하게 말해서 Github에서 직접 제공하는 CI/CD 도구라고 할 수 있습니다. Github Action 설정 이번에는 Flutter 프로젝트에 적용하기 위해 Github Action에서 지원하는 다양한 기능 중에 Flutt...
Flutter Test Coverage
2021-05-16
플러터 프로젝트의 test coverage를 체크하기 위해서는 우선 해당 명령어로 커버리지 파일을 생성해야 합니다. 유닛 테스트를 진행하고 해당 테스트를 토대로 lcov.info 파일이 생성됩니다. genhtml 해당 파일에서도 커버리지 정보를 확인할 수 있지만, genhtml을 이용하면 한눈에 알아보기 쉬운 html 파일을 생성해 줍니다....
Flutter fvm(Flutter Version Management) 사용하기
2021-05-06
fvm은 Flutter Version Management의 약자로 Flutter SDK 버전을 프로젝트 별로 다르게 적용할 수 있게끔 도와주는 라이브러리입니다. 공식 레포지토리 설치 Flutter SDK 설치가 완료되어야 합니다. fvm은 dart의 pub 패키지 관리를 이용해 사용하므로 우선 dart와 pub-cache 를 커맨드에서 사용...
Flutter Provider
2021-05-06
전역 상태 관리를 위한 패턴의 하나로 관심사의 분리(비즈니스 로직과 UI 부분의 분리) 및 상태 데이터를 전역적으로 관리가 가능하고, Flutter 에서 권장되는 또 다른 패턴인 BLoC Pattern에 비해서 적은 코드로 간단하게 구현이 가능합니다. Provider Package를 이용해서 사용 가능합니다. ChangeNotifier 리스너...
Flutter 플랫폼 별 pull to refresh List 위젯 만들기
2021-03-17
기본적인 리스트 위젯인 ListView 위젯과 CustomScroolView 를 이용하여 iOS와 안드로이드 플랫폼 별로 로딩 인디케이터를 구별해주는 위젯을 만들어봤습니다. 사용시에는 itemCount, onRefresh, builder parameter 값을 주고 사용 가능합니다. pull to refresh 액션을 해보면 iOS에서는 C...
Flutter Text Widget 기기의 font size 무시하기
2021-03-17
Text 위젯에 바로 적용할 수 있는 방법으로는 Text 위젯의 textScaleFactor 옵션을 이용하면 됩니다. 앱 전체에 적용을 원한다면 MaterialApp의 builder parameter를 이용해서 MediaQuery 위젯의 textScaleFactor 설정을 바꿔서 리턴해주면 됩니다. ...
Flutter 기존 프로젝트 2.0(null safety) 로 마이그레이션 하기
2021-03-07
*Flutter 2.0이 릴리즈 되면서 dart 2.12 버전이 적용되어 dart에 null safety가 적용되었습니다. null safety에 관한 내용은 공식 문서를 참고하시고, 이 포스트에서는 마이그레이션 방법만 다루겠습니다. 마이그레이션 가이드 공식문서와 영상을 참조하였습니다.* ⚠️ 마이그레이션 중 문제가 생길 수 있으니 백업 혹은 커밋 후 진행...
Equatable 패키지
2021-03-05
객체 간 비교를 간편하게 해주는 flutter 패키지 BLoC 에서 새로운 데이터를 받아 올 때 객체를 생성하면 새로운 인스턴스를 생성하여 이전값과 동일한 객체인지 비교가 불가능하여 State가 바뀌고 BlocBuilder에서 builder가 호출 되기때문에 이전값과의 변화가 없을 시 builder 호출을 방지하고자 해당 패키지를 사용합니다. Da...
RxDart 패키지를 이용한 BLoC Pattern 예시
2021-03-05
ReactiveX API를 Dart에서 사용할 수 있게 구현한 패키지 Stream을 사용하기 용이하게 확장합니다. RxDart를 이용한 BLoC Pattern 예시 예시코드 int 형태의 count를 state로 가지는 CounterBloc 클래스 초깃값과 해당 Bloc의 상태를 변화하는 함수 등을 정의합니다. BehaviorSubject ...
Flutter BLoC Pattern 개요
2021-03-05
BLoC(Business Logic Component)는 Presetation Layer와 Busuiness Logic을 분리하여 코드를 작성할 수 있도록 해줍니다. BLoC Pattern은 Stream을 이용해서 구현 가능합니다. 위젯은 Sinks (입구)를 통하여 BLoC에 이벤트를 보냄 BLoC 객체는 위젯으로부터 이벤트를 전달받으면 필요한...
