
아직 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 추가 생성자와 프로퍼티 자동 ..

에러 원인 Error (Xcode) File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a 위 에러는 Framework를 추가할 경우 최소 iOS 버전이 충족되지 않아서 발생하는 문제이다. 해결 방법 - cocoapods을 사용하는 경우 Podfile 파일에 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '(최소 지원 iOS 버전)' 을 추가해준다. pod install을 실행해준다. 해결 방법 - cocoapods을 사용하지 않는 경우 TARGETS → General → Mini..

Theme는 앱의 정체성을 표현하는데 가장 중요시 된다. 하지만 Material Color Theme를 지정하기 위해선 여러 값에 따라 색상을 지정해줘야한다. 이러한 번거로움을 한 번에 해결하는 플러그인을 소개한다. Flutter Favorite을 받은 플러그인이므로 믿고 사용할 수 있다. Theme 지정하기themes playgroud 페이지에서 본인이 원하는 Theme를 지정한다. (Custom 가능)Theme Code를 선택하여 코드를 복사한다.https://rydmike.com/flexcolorscheme/themesplayground-v7-1/#/ (v-7-1 의 값은 플러그인 버전에 따라 변동된다, 23.05.16 기준 flex_color_scheme 7.1.1 버전이다.) Theme 적용..

요즘 스마트폰은 해상도 사이즈가 다양하다. 그렇기 때문에 반응형으로 작업해줘야한다. 한 기기로 작업 후 다른 해상도의 기기로 실행하면 의도치 않은 레이아웃 배치가 되곤한다. 그렇다고 시뮬레이터를 다운받아 일일히 확인하는 것도 여간 힘든 작업이 아니다. 간단하게 나의 앱을 여러 해상도로 확인해볼 수 있는 유용한 패키지를 활용해보자. https://pub.dev/packages/device_preview device_preview | Flutter PackageApproximate how your Flutter app looks and performs on another device.pub.dev

OOP 기반 언어에서 객체를 비교할 경우가 많다. 그럴 때 객체의 필드 값을 전부 비교하거나 operator 함수와 hashCode 함수를 override 하여 비교한다. 하지만 개발하다 보면 클래스의 수가 많아지기 때문에 클래스마다 함수를 override 하는 일은 생산성을 떨어트리기 때문에 이를 자동화해주는 유용한 플러그인을 사용하자. ※ Hash Code란? - 객체를 식별할 수 있는 고유한 정수값이다. Operator 함수 재정의하는 경우equal(==) operator 함수를 override 한다.hashCode 함수를 override 한다. Equatable 플러그인을 사용하는 경우Equatable 클래스를 상속받아 props 함수를 override한다.props 의 return 하는 리스트..

gitignore가 적용되지 않을 때 git의 캐시를 삭제 현재 디렉토리의 모든 변경 내용을 스테이징 영역으로 옮긴다. 커밋

Google Map style 변경하기 flutter_google_map 패키지 사용할 경우 Makers 추가 시 Default로 보여지는 Landmarkers가 보여져서 내가 추가한 Makers가 눈에 덜 띄거나 Makers 가 너무 많아 의도한 정보를 보여주지 못할 가능성이 있다.그런 경우 Map의 style을 Custom하여 조절할 수 있다. Style 커스텀하기아래 사이트에서 원하는 스타일을 커스텀한다.FINISH 버튼 클릭 후 COPY JSON 버튼을 클릭한다.https://mapstyle.withgoogle.com/ Styling Wizard: Google Maps APIsTo import, paste in your JSON. When importing we reorder and rewrite..

Font(폰트) 변경Font 지정하는 방법 2가지에 대해 알아보자.google_fonts 패키지를 활용해서 폰트를 지정하는 방법직접 Font를 다운로드 받아 지정하는 방법google_fonts 패키지 사용구글에 등록된 폰트를 쉽게 사용할 수 있는 패키지HTTP 통신을 통해 폰트를 자동으로 가져온다.GoogleFonts 내 Font 별 Theme 함수가 제공된다. (모든 폰트를 제공하진 않는다.)공식 영상 앱 전체 Font 적용하기MaterialAPP 내 theme 속성을 지정한다.ThemeData 내 textTheme 속성에서 GoogleFonts의 원하는 폰트의 theme를 선택한다. 일부 텍스트만 Font 적용하기 1. 고정 Font (폰트가 변경되지 않는 경우) 2. 가변 Font (상황에 따..