본문 바로가기

Dart/Flutter37

[Flutter] 소셜 애플 로그인(Sign In with Apple) 구현하기 해당 글에서는 애플 개발자 등록 및 파이어베이스 등록 및 절차에 관한 내용은 넘어간 후의 애플 로그인 구현을 설명드리겠습니다. Apple 로그인에서 제공되는 정보 이름 : 필수로 받습니다. 단, 유저의 이름은 직접 수정도 가능하기 때문에 실명이 아닐 수 있습니다. 이메일 : 선택입니다. 이외 전화번호, 프로필 사진 등 다른 소셜 로그인에서 제공되는 정보는 받아 올 수 없습니다. Firebase 설정 프로젝트에 맞게 Firebase에서도 프로젝트를 생성해 줍니다. 앱 추가 등록 위 이미지처럼 처음에 Firebase에 접속하게 되면 앱 등록 바로 보이게 됩니다. 안드로이드, IOS 모두 등록해 줍니다. 등록 과정에서 다운되는 google-services.json 파일은 아래와 같이 폴더 경로에 맞게 다르게 .. 2023. 4. 3.
[Flutter] 플러터 인앱(in_app_purchase) 정기결제 구현하기 정기 결제를 구현하기 이전에 인앱 상품을 결제하는 방법이 별도로 있습니다. 아래 링크를 통해서 먼저 확인하고 정기결제를 보시는 게 좋을 것 같습니다. 플러터 인앱(in_app_purchase) 결제 상품 구매 구현하기 [Flutter] 플러터 인앱(in_app_purchase) 결제 상품 구매 구현하기 플러터(Flutter)를 사용하여 앱 내에서 상품을 구매하고 소비하는 인앱 결제 기능을 구현하는 방법을 소개합니다. 인앱 결제는 사용자가 앱에서 콘텐츠, 기능, 서비스 등을 구매할 수 있도록 하는 dev-blackcat.tistory.com 정기결제 만들기 먼저, 코드상의 구현은 결제 상품 구매 구현하기 게시글에 있는것과 동일합니다. ProductID만 다르게 입력해 주면 되는 것이죠. 그 외에 전반적인 .. 2023. 3. 19.
[Flutter] 플러터 인앱(in_app_purchase) 결제 상품 구매 구현하기 플러터(Flutter)를 사용하여 앱 내에서 상품을 구매하고 소비하는 인앱 결제 기능을 구현하는 방법을 소개합니다. 인앱 결제는 사용자가 앱에서 콘텐츠, 기능, 서비스 등을 구매할 수 있도록 하는 강력한 기능입니다. 이 글에서는 플러터에서 인앱 결제를 구현하는 방법을 간단하게 설명합니다. 먼저, 진행하기 전에 가장 궁금하신 게 결제자를 어떻게 판별하고 관리하는지 궁금하실 거예요. 구글에서 전체적으로 관리를 제공해주지 않기 때문에 별도로 백엔드를 구현하셔서 주문 고객 등 관리를 별도로 해주셔야 합니다. 필요한 패키지 설치 플러터 인앱 결제를 구현하기 위해 필요한 패키지를 설치하려면, pubspec.yaml 파일에 아래와 같이 in_app_purchase 패키지를 추가하세요. in_app_purchase |.. 2023. 3. 19.
[Flutter] 어노테이션(annotation) `@` 사용해보기 어노테이션은 개발자가 소스 코드를 정적으로 분석하여 추론할 수 없는 의도를 표현하는 데 사용할 수 있는 주석입니다. 어노테이션 종류 @alwaysThrows 해당 함수가 항상 예외를 던진다는 것을 나타내는 어노테이션입니다. 이 어노테이션이 붙은 함수를 오버라이드하는 함수도 동일한 계약을 준수해야 합니다. @doNotStore 해당 메서드, 게터, 혹은 최상위 게터나 함수에서 반환된 값을 필드나 최상위 변수에 저장하지 말아야 한다는 것을 나타내는 어노테이션입니다. @experimental 해당 라이브러리나 클래스의 API가 실험적이며 언제든지 변경될 수 있다는 것을 나타내는 어노테이션입니다. 이 어노테이션이 붙은 API가 변경되어도 해당 패키지의 버전이 업데이트되지 않아도 됩니다. @factory 해당 인.. 2023. 3. 19.
[Flutter] Gradlew signingReport를 이용한 SHA1 및 SHA256 키 확인 간편 가이드 Gradlew signingReport를 사용하여 SHA1과 SHA256 키를 쉽게 확인하는 방법을 소개합니다. 명령어 실행 각 프로젝트 폴더에서 터미널로 `/android` 폴더로 이동하여 아래 명령어 실행 gradlew signingReport 아래와 같이 `Config: debug`, `Config: release`으로 `SHA-1`, `SHA-256` 값을 확인할 수 있습니다. 2023. 3. 18.
[Flutter] Error (Xcode): 34 duplicate symbols for architecture arm64 해결하기 위 오류의 문제는 관련 패키지 혹은 라이브러리가 잘못되었을때 발생하는 문제가 많습니다. 따라서 pod를 초기화하고 다시 설치해주시면 됩니다. pod 초기화 `ios` 폴더에서 명령어 실행 pod deintegrate pod cache clean --all pod install 2023. 2. 14.
[Flutter] IOS Update to recommended settings 경고 끄기 Xcode에서 프로젝트 항상 경고 문구가 뜨는데 바로 Update to recommended settings라고 뜹니다. 이 경고를 끄기 위해서는 Podfile에 코드 한 줄을 넣어주면 무시할 수 있습니다. 경고 무시하기 `ios/Podfile` 하단에 inhibit_all_warnings! 추가 후 빌드와 Xcode 재시작 해주면 사라집니다. target 'Runner' do use_frameworks! use_modular_headers! inhibit_all_warnings! flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) end 2023. 2. 9.
[Flutter] "Fatal signal 11 (SIGSEGV)" 오류 해결하기 `Fatal signal 11 (SIGSEGV)`오류는 프로그래밍에서 흔히 발생하는 오류이며 분할 위반이라고도 하는 분할 결함을 나타냅니다. 위치가 존재하지 않거나(NULL 포인터 역참조) 프로그램이 액세스 할 수 없도록 보호되어 있기 때문에 프로그램이 액세스가 허용되지 않은 메모리 위치에 액세스 하려고 시도할 때 발생합니다. 오류 메시지의 'in tid 18280 (1.io), pid 18247 (ital.parkinsons)' 부분은 오류가 발생한 스레드 ID(tid) 및 프로세스 ID(pid)를 나타냅니다. 이 오류는 다음과 같은 여러 요인으로 인해 발생할 수 있습니다. 오류 발생요인 초기화되지 않은 포인터에 액세스 (Accessing an uninitialized pointer) 이미 해제된 포인.. 2023. 2. 5.
[Flutter] Android "Unable to find bundled Java version" 오류 해결하기 위 문제는 이번 안드로이드 `Electric Eel` 버전의 프로그램 버그로 보입니다. 우선 해당 안드로이드 폴더인 `C:\Program Files\Android\Android Studio`로 이동하여 `jbr` 폴더의 내용을 `jre`에 덮어쓰기 해주세요. 만약, 위 문제가 해결되지 않는다면 `jre` 폴더 자체를 삭제해 보시면 될 것 같습니다 2023. 2. 4.
[Flutter] 임펠러(Impeller) 사용해보기 Kaleidoscopia는 임펠러로 그래픽 성능을 개선한 예를 보여주는 데모 임펠러는 Flutter의 새로운 렌더링 런타임으로 Flutter 3.7 Impeller는 Flutter 프레임워크의 최신 버전에서 추가된 기술입니다. Impeller는 성능, 그래픽 품질, 호환성, 개발 효율 등을 개선하는 기술로, 플러터 개발자가 더 높은 효율성으로 애플리케이션을 개발할 수 있도록 돕습니다. 사전 컴파일된 셰이더를 사용하여 보다 예측 가능한 성능을 제공하며, 실행 시 셰이더 컴파일로 인한 프레임 손실을 완화합니다. iOS와 Android의 최신 로우 레벨 API인 Metal과 Vulkan의 프리미티브를 활용합니다. 또한 동시성을 효과적으로 활용하여 스레드에 단일 프레임 워크로드를 분산합니다. 셰이더 활용 2023. 1. 31.