위와 같이 데이터가 주어진 경우 Bloc으로 Device데이터의 변화를 DeviceUser가 감지할 수 있도록 만들려고 한다.Bloc에서는 스트림을 활용해서 이를 구현할 수 있는데, 이 글에서는 편의상 Cubit을 사용해 구현해보려고한다.addListener 함수를 보
go_router를 사용하면서 오늘 해결한 문제점에 대해 정리 및 공유할 겸 글을 써본다.오늘 업무 중 리스트의 CRUD를 구현하는 업무가 있어 작업을 하던 중, Delete 기능을 만드는 과정에서 문제가 발생했다.문제가 발생한 상황은 아래와 같았다.A페이지의 목록에
요즘 블로그에 글을 못쓴 변명을 해보자면. 알고리즘 겅부를 시작했다. 사실 프론트엔드 개발을 하는 입장에서 알고리즘을 실제로 직접 많이 구현하기 보다는 이미 존재하는 라이브러리를 사용하는 경우가 많아서 알고리즘에 대한 공부를 게을리 했었다. 하지만 일을 하면서
타이머 위젯을 만들면서 타이머가 동작하고 있는 동안 위젯이 위젯 트리에서 dispose되니 제목과 같은 에러가 나타났다.에러 메시지 내용 그대로 setState()가 선언된 위젯, 혹은 해당 위젯의 부모위젯이 dispose된 후 setState()가 호출된 경우를 나타
flutter_bloc과 bloc 패키지에서는 Bloc패턴을 활용한 상태관리를 보다 편리하게 구현할 수 있도록 Bloc과 Cubit이라는 클래스가 존재한다.Bloc을 사용하면서 이 두가지 클래스 중 어떤 것을 사용하는 것이 더 좋을까라는 궁금증이 있었는데 이러한 궁금증
블록? -> 상태관리를 위해 사용하는 디자인 패턴. Flutter에서는 bloc패키지와 flutter_bloc패키지를 이용해서 쉽게 사용할 수 있다.간단하게 GetX 대비 장 / 단점을 나열해보자면견고한 구조를 가지기 때문에 시스템이 복잡해져도 소스코드의 유지 관리에
앱이든 웹이든 입력필드를 만들다보면 validation을 통해 입력값을 프론트엔드에서 1차적으로 필터링해주는 작업을 하게된다.플러터는 이러한 validation작업을 위해 TextFormField 위젯에 validator프로퍼티를 통해 손쉽게 validation을 수행
GoRouter에는 ShellRoute라는 클래스가 있는데 이걸 이용해서 모바일, 웹에서 NestedRoute를 구현할 수 있다.
GetX만 사용하다보니 Flutter 개발자가 아니라 GetX 개발자가 된 느낌이 들어 Provider를 통해 Flutter 개발의 범위를 넓히려고 했다.아래의 코드는 구글링을 통해 찾은 Provider 패키지를 사용한 예제의 코드 패턴을 학습해서 만든 예시이다.pr
GoRouter와 GetX를 사용할 때 GetPage를 사용하지 못하다보니 원래 사용해오던 Getx의 바인딩을 사용하지 못하는 문제가 발생했다.해결방법 : GetBuilder를 통해 바인딩을 직접 지정해줘야한다.이런 방식으로 호출하면 된다. builder가 두 번
플러터를 이용해 개발을 하면서 SelectableText를 많이 이용했었다. 그런데 언제부턴인가 SelectableText위젯에서 텍스트를 드래그하면 모바일 환경에서 텍스트 선택이 잘 되지 않는 문제를 겪게 되어 다른 방법을 찾아봤다.이렇게 작성된 코드를이렇게 바꿔주면
몇 개월동안 블로그에 글을 작성하지 않았다.궁색한 변명이지만 굳이 변명하자면, 일에 집중하면서 동시에 이사 준비를 해야해서 블로그에 정신을 쏟을 수 없었다.(하지만 다음달 내지 다다음달에 한 번 더 이사를 가야한다..)앞으로는 짧아도 꾸준히 글을 써 보려고 한다.
모바일 앱의 다양한 입력필드를 보면 입력 필드에 포커스가 맞춰져 있는 동안 입력 필드 내 특정 아이콘이나 버튼, 텍스트가 활성화 되는 경우가 상당히 많다.나 역시 플러터의 TextFormField위젯을 통해 포커스를 가지고 있는 동안 suffix버튼을 보여주려는 방법을
현충일에 돌아다니면서 찍었던 사진들촬영 장비Camera : Panasonic Lumix GX85LensLeica 25mm F1.4Olympus 12-50mm F3.5-6.3
GetxController를 사용하다보면 일부 컨트롤러의 경우 싱글턴 객체처럼 앱이 실행되는 동안 인스턴스를 계속 유지하고 싶어지는 순간이 발생하는 경우가 많다. 나는 이런 경우 아래와 같은 방법을 사용했었다. 전형적인 싱글턴 패턴을 적용한 GetxControlle
다니고 있는 직장에서 최근 수습기간이 지나 정규직이 되었다. 개인적으로 정말 만족하면서 다니고 있는 회사인 만큼, 정규직이 되길 간절히 바라면서 열심히 노력했는데, 그 결과가 긍적적으로 나타나 뿌듯한 기분을 감출 수 없었다. 각설하고, 이 글에서는 내가 우리 회사의 수습기간을 거치며 느낀 점들을 글로 쓰면 회고해보려고한다. 다른 스타트업은 우리회사와 사...
TextFormField나 TextField를 사용할 때 매 글자를 입력할 때마다 커서가 맨 앞으로 이동되는 현상이 나타나는 경우가 있음. 기존에는 그냥 커서를 맨 뒤로 보내야 겠다고 생각했고 이를 위해 아래와 같은 코드를 작성했음.
플러터를 사용해 리스트를 처음 구현했을 때 ListView.builder를 사용하라는 블로그 글을 통해 리스트를 구현했었다. 처음에는 "그냥 이렇게 구현하는건가 보다~"하고 넘어갔는데, 플러터 개발자로 취업을 하고, 정말 다양한 리스트 위젯을 구현하다보니 리스트를 구현하는 과정에서 다양한 방법이 있다는 것을 알게 됬다. 다양한 방법은 다음과 같았다. Col...
GetView를 통해 보다 간결하게 GetxController나 GetxService를 StatelessWidget에 추가할 수 있다. 이때, GetView는 Get.find()함수를 통해 컨트롤러를 호출하는데, 당연하게도 Get.put() 또는 Get.lazyPut(
원인 키보드가 올라오는 과정에서 플러터가 새롭게 UI를 렌더링함 위 과정에서 TextEditingController의 초기화가 의도된 흐름대로 진행되지 않아 텍스트 입력창에 초기 텍스트가 바인딩되지 않음 해결 StatefulWidget을 사용할 때 didUpdat