해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. Bloc 과 Cubit 둘중 어떤걸 사용하는게 좋을까요? 블록 공식 문서에 따르면 https://bloclibrary.dev/#/coreconcepts?id=cubit-vs-bloc "무엇을 사용해야 할지 아직 확신이 서지 않는 경우 시작하여 Cubit나중에 필요에 따라 리팩터링하거나 확장할 수 있습니다 Bloc" 라고 설명이 되어 있어요. 요약하면 그냥 필요에 맞게 사용해라 정도가 될듯 해요. 그렇다면 Bloc 과 Cubit은 어떤 차이가 있을까요? 아래 그림을 보면 좀더 쉽게 이해가 될듯 해요. 그림 1 에서 보듯이 Cubit은 Bloc에 포함되어 있어요. 그럼 좀더 자세하게 Cubit에는 없고 Bloc에는 ..
해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. 1. BlocProvider Bloc + Provider , 블럭을 제공하는 위젯 특징 : 지연생성 옵션(lazy) 하위 계층 위젯들에서 접근 가능 Bloc 생성후 메모리 반환의 경우 자동으로 해준다. 2. MultiBlocProvider blocProvider 다중 등록 3. BlocBuilder BlocProvider로 생성된 bloc을 사용할때 쓰는 Widget bloc 옵션을 사용하지 않고 사용시 현 context로 부터 bloc을 찾아 변화 감지를 한다. bloc을 지정하는 케이스의 경우 특별한 케이스에서 사용하라고 권장한다. buildWhen 옵션을 통해 필요한 조건일때만 변화를 줄 수 있다. 4. ..
해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. 왜 bloc 을 사용해야 하는가? 1. 뷰 영역과 비즈니스 영역을 쉽게 구분할 수 있다. 2. 테스트 하기 쉽고, 재사용을 가능하게 해준다. 3. 이벤트 트레킹을 통합적으로 관리할 수 있다. 4. 많은 개발자들의 하나의 코드 베이스로 일을 처리 할 수 있다. (이직시에도 이직한 회사가 bloc을 사용하고 있다면 적응이 쉬움!) 5. Github에서 가장 높은 star수 ? 출처 : https://www.inflearn.com/course/%ED%94%8C%EB%9F%AC%ED%84%B0-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC-%EB%B8%94%EB%9D%BD-%EB%A7%88%EC%8A..
Flutter 프로젝트 마무리 후 이제 CI/CD 를 도입을 해보려고 해요. 많은 CI\CD 프로그램, 사이트들이 있는데, 저는 돈이 없으니까 무료로 어느정도 사용이 가능한 Codemagic 을 이용해서 자동으로 Firebase App Distribution에 배포 하도록 진행 할 거에요. 시작하기전 Firebase, Codemagic, Github 에 가입이 되어 있다고 가정을 하고 진행할거에요. 당연히 이미 Firebase에 프로젝트도 등록이 되어있어야 해요. 자 그럼 시작해 볼게요. 1. Firebase console (https://console.firebase.google.com/) 에서 프로젝트 개요 옆에 톱니바퀴 버튼을 누르고 프로젝트 설정 에 들어가요. 2. 아래로 스크롤 하면 내 앱 항목..
오늘은 Flutter에 sentry를 적용시켜 볼거에요. 단순 오류만 트래킹 하려고 사용하는 것이기 때문에 추가 기능은 아래 문서에서 찾아서 사용하시면 돼요. https://docs.sentry.io/platforms/flutter/ Flutter On this page, we get you up and running with Sentry's SDK, so that it will automatically report errors and exceptions in your application. Get started using a g docs.sentry.io 1. 먼저 아래 사이트에 들어가서 프로젝트에 최신 버전을 적용시키세요. https://pub.dev/packages/sentry_flutter sen..
오늘은 Flutter에 Android 프로젝트에서 FlutterActivity를 사용 하다가 FlutterFragmentActivity를 사용할 경우 놓칠 수 있는 부분에 대해서 잠깐 팁을 설명 하려고해요. 1. 먼저 FlutterActivity 사용 방법은 아래와 같아요. (플러터 홈페이지 공식 문서 코드에요 ) import io.flutter.app.FlutterActivity; import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.c..
회사 프로젝트 진행중 특이한 기능을 추가 하기로 했어요. 사진을 찍어서 특정 영역을 크롭 하는 기능을 추가 하는 것인데, 현재 진행중인 프로젝트는 Flutter 로 만들고 있었는데 Flutter 라이브러리를 아무리 뒤져봐도 최신 업데이트를 주기적으로 하는 Flutter 라이브러리가 보이지 않아 직접 native에 라이브러리를 추가 하여 Flutter로 읽어 오려 해요. 해당 문서는 Flutter 프로젝트에서 Android native 에 opencv 를 설치 하기 위한 문서에요 이제 시작 할게요. 1. 먼저 opencv를 다운 받아야 해요 아래 Github 에서 최신 releases 버전을 다운 받아 주세요. 저는 안드로이드 native에서 사용할 것이기 때문에 opencv-4.7.0-android-sd..
오늘 살펴볼 라이브러리는 table_calendar 에요. 프로젝트를 진행하면서 캘린더를 커스텀해서 사용할 일이 생겼는데, 생각보다 기능이 다양해서 정리를 해두려해요. 자세한 정보는 아래 사이트에 들어가셔서 확인 가능해요 https://pub.dev/packages/table_calendar table_calendar | Flutter Package Highly customizable, feature-packed calendar widget for Flutter. pub.dev 라이브러리 추가를 해줘요. pubspec.yaml table_calendar: ^3.0.9 weekNumbersVisible: true, 아래 그림에 빨간색 원에 안에 숫자를 보여줄지 설정하는 변수에요 해당 연도에 몇주차 인지 표..
setState()는 StatefulWidget 에서 특정 오브젝트의 상태(값)를 변경하기 위해 사용하는 메소드에요 . 근데 이번에 showModalBottomSheet에서 요일을 선택하는 기능을 가진 화면을 작업하다가 setState 를 통해 상태 변경을 호출해도 화면이 변경되지 않는 현상을 발견했어요. 아래는 문제의 코드에요 showModalBottomSheet( context: context, builder: (context) { return Container( height: heightOfModalBottomSheet, child: RaisedButton(onPressed: () { setState(() { heightOfModalBottomSheet += 10; }); }), ); }); 아래는..
플러터로 개발을 하던중 서버쪽에서 알림에 이모지를 보여주고 싶다는 요청이 들어왔어요. 그와 동시에 알림 리스트 에 unicode 를 넣어서 내려 보내주기 시작했어요. 플러터 Text Widget 에서 유니코드 문자를 사용하려면 아래와 같은 형식으로 사용을 해야지만, Text("Is test. \u{1f60e}"} 클라이언트 개발자와 어떠한 협의도 없이 아래처럼 String 데이터를 내려 주는거에요........ U+1F389 나는 U+1F389 프로그래머에요 당연히 Flutter 에서는 지원하지 않는 형식이므로 원하는 형태로 보이지 않았고, 결국 유니코드 캐릭터가 포함된 값을 찾아서 플러터에서 인식할 수 있는 형태로 바꿔주는 방식을 직접 구현하게 되었어요. String unicodeContainStrin..