injectable | Dart packageInjectable is a convenient code generator for get_it. Inspired by Angular DI, Guice DI and inject.dart.pub.dev DI(Dependency Injection) 패키지인 get_it 의 짝궁인 injectable 패캐지를 소개합니다.IoC(Inversion of Control)의 이점이 있는 get_it을 더 편리하게 사용할 수 있습니다.그렇기에 필수적으로 get_it 패키지와 함께 사용해야합니다. Annotation을 사용하기에 백엔드 프레임워크인 Spring을 해보신 분들이라면 익숙하길꺼라 생각듭니다. 사용하기pubspec.yaml에 get_it과 injectable 관련 패..
Freezed 혹은 Json serializable 그 외 annotation을 활용하여 코드 생성하는 경우 특정 함수 혹은 키워드를 사용할 경우 invalid_annotation_target 경고가 나타납니다.대표적으로 json_annotation의 @JsonKey()에서 발생합니다. 프로젝트 전체에 적용하기analysis_options.yaml 파일에 아래 내용을 추가합니다. Referencehttps://github.com/rrousselGit/freezed/issues/488
Launcher icon 이란?Android에서의 APP 아이콘을 의미한다. APP의 정체성을 가장 쉽게 노출한다.Flutter를 초창기(Null Safe도 지원하기 전)부터 개발해왔던 나로서 이런 패키지가 생산성을 크게 증가시킨다는 것을 느낍니다.이전엔 Android, iOS의 APP 아이콘을 각각 따로 설정해줬었지만 간단하게 패키지를 사용해 플랫폼 별 아이콘 세팅을 해줄 수 있습니다. 사용법App Icon에 관한 설정을 pubspec.yaml에서 설정하는 법과 따로 파일을 분리해 만드는 법 2가지가 있습니다.pubspec.yaml 에서 설정 Terminal에서 명령어 입력flutter pub get flutter pub run flutter_launcher_icons 파일을 분리해 설정파일 생성 시 ..
MarkDown 이란?Markdown은 일반 텍스트 문서에 서식 요소를 추가하는 데 사용할 수 있는 경량 마크업 언어입니다. 2004년 John Gruber가 만든 Markdown은 현재 세계에서 가장 인기 있는 마크업 언어 중 하나입니다.GitHub에서 사용되는 README.md 파일이 MarkDown으로 작성되었습니다.MarkDown의 파일 확장자 명은 .md 혹은 .markdown을 사용합니다. MakDown에 대한 더 자세한 내용은 MarkDown Guide를 참고바랍니다. 사용법child (단일)에 배치하는 경우MarkDownWidget 을 사용Container, SizedBox 등 같은 child (단일)항목에 배치하는 경우에 사용 children (다중)에 배치하는 경우MarkdownGene..
아직 Flutter는 공식 OpenAI 패키지가 없다고?현재 기준 (23.05.22) 아직 Dart/Flutter에서 공식적으로 지원하는 OpenAI 패키지는 존재하지 않습니다. 이전 포스팅한 chat_gpt_sdk 또한 공식 패키지가 아닙니다. 비공식적이지만 OpenAI 홈페이지에서 dart_openai 패키지를 추천하고있으므로 언제가될진 모르지만 공식 패키지가 지원되기 전까지 해당 패키지를 사용하는 것을 추천합니다. 사용법API 인증키 dart_openai 패키지 설명에는 환경변수 설정을 envied 패키지를 사용하였지만 해당 패키지는 배포된지 얼마 되지않았을 뿐더러 Major버전이 0이므로 이전 포스팅한 flutter_dotenv 패키지를 사용하는 것을 추천합니다. ( flutter_dotenv ..
env를 사용하는 이유개발(테스트, 스테이징 등) 중에 프로덕션 환경 설정git 오픈소스에 올리면 안되는 보안 상 문제가 될 수 있는 값 (예. API 키, DB 정보 등)을 따로 분리할 경우 사용법Root 경로에 .env 파일을 생성한다..env 파일에 환경 변수를 지정한다. pubspec.yaml 파일에 assets에 .env파일을 추가한다. 병합env 파일에서 병합.env 파일에 지정된 환경변수의 값을 병합해 사용할 수 있다.$를 사용하여 환경변수의 값을 가져온다.$의 문자를 포함할 경우 환경변수의 값을 ''로 지정한다. 소스 상에서 병합load 함수의 mergeWith 에서 병합할 환경변수의 Key, Value 값을 지정한다. Null Safe환경변수의 Key 값이 없는 경우 Assertio..
Flutter 에서 사용하는 dart 언어에서 Model 클래스를 만들기 위해 다양한 기능을 override하거나 직접 구현해야한다.Freezed는 이러한 번거로움을 단번에 해결할 수 있는 유용한 플러그인이다.Flutter Favorite이므로 믿고 사용할 수 있다.Freezed에서 제공하는 기능으로 인해 Bloc, Retrofit을 사용할 때 함께 사용하면 더욱더 진가를 발휘한다. Freezed의 기능생성자(constructor)와 프로퍼티(properties) 자동 생성 toString, operator == , hashCode 함수를 ovrride 해준다.copyWith를 사용해서 객체를 복제직렬화/역직렬화 지원Union 타입과 sealed classDependency 추가 생성자와 프로퍼티 자동 ..