Programming63 [Flutter] Firebase cloud messaging 적용하기 Firebase cloud messaging 적용하기 플러터 앱에 FCM 푸시 알림 기능을 적용해보자. FCM이란? FCM은 Firebase cloud messaging의 약자로 앱이나 웹에 푸시 알림을 전송할 수 있도록 해주는 파이어베이스 서비스 중의 하나이다. 푸시 알림에는 사용자에게 보여지는 제목과 내용, 사용자는 볼 수 없는 데이터를 포함하여 보낼 수 있으며, 데이터 사이즈에는 제한이 있지만 사용량에는 제한 없이 모두 무료이다. FCM 이전에 GCM(Google cloud messaging)이라는 서비스도 있었는데 2019년 4월 11일자로 서비스를 중단해서 이제는 FCM을 써야한다. 선행 작업 이 글은 1. 파이어베이스에 프로젝트 생성 2. 파이어베이스에 Android, iOS 등록 3. APN.. 2020. 4. 20. [Flutter] Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.RuntimeException: PluginRegistrantCallback is not set. Stacktrace Fatal Exception: java.lang.RuntimeException Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.RuntimeException: PluginRegistrantCallback is not set. 발생 원인 발생 조건 v2 embedding이 적용된 플러터 안드로이드 프로젝트 Firebase_messaging 패키지를 사용 사용자 문제는 아니고 Firebase_messaging 패키지가 v2 embedding을 제대로 적용하지 않아서 생긴 문제이다. 플러터에서 네이티브 코드를 호출하기 위해서는 패키지 내부 소스코드에서 .. 2020. 4. 17. [Flutter] Firebase를 이용하여 Sign In with Apple 사용하기 Firebase를 이용하여 Sign In with Apple 사용하기 파이어베이스에서 애플 로그인을 사용해보자. 알림 : 2020.04.08 안드로이드 환경에서 애플 로그인을 실행하는 플러그인을 개발하여 내용 추가함 알림 : 2019.12.29 아직 안드로이드나 iOS 12 이하에서 애플 로그인을 쉽게 적용할 수 있는 플러그인이 개발되지 않았으므로, 관련 내용은 추후에 추가할 예정 선행 작업 이 글은 1. 파이어베이스에 프로젝트 생성 2. 파이어베이스에 Android, iOS 등록 3. 애플 개발자 페이지에서 애플 로그인 활성화 4. 파이어베이스 호스팅 활성화 위 프로세스 이후의 작업을 다루므로 앞의 프로세스를 진행하지 않았다면 아래 링크에서 먼저 모든 작업을 완료해야 한다. 1. 파이어베이스 프로젝트 .. 2020. 4. 9. [Node.js] parameter가 있는 middleware parameter가 있는 middleware 매개변수를 사용할 수 있는 미들웨어를 만들어보자. router와 middleware의 기본 형태 router.get('/example', function (req, res, next) { ... }); NodeJS에서는 라우터를 구성할 때 위 소스코드처럼 경로를 지정하고 해당 경로에서 트리거 될 미들웨어를 작성한다. // 미들웨어의 기본 형태 function (req, res, next) { } // 파라미터를 스킵한 미들웨어의 형태 function () { } 미들웨어는 항상 기본 파라미터로 request, response, next 개체들을 받거나 스킵할 수 있는데, 개발자가 원하는 파라미터를 따로 선언할 수 없다는 문제점이 있다. parameterized.. 2020. 3. 27. [Flutter] Firebase remote config 적용하기 Firebase remote config 적용하기 Flutter 앱에 파이어베이스 원격 구성을 적용해보자 선행 작업 이 글은 파이어베이스 프로젝트가 생성되있어야 하고 파이어베이스 프로젝트에 Android, iOS가 등록된 이후의 작업을 다루므로, 앞의 작업을 완료하지 않았다면 아래 링크에서 먼저 모든 작업을 완료해야한다. 1. 파이어베이스 프로젝트 생성 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Console 접속 파이어베이스 서비스를 이용하기 위해서는 구글 파이어베이스 콘솔에 접속해야한다. https://console.firebase.. spiralmoon.tistory.com .. 2020. 2. 28. [Flutter] Firebase Crashlytics 사용 설정하기 Firebase Crashlytics 사용 설정하기 플러터 프로젝트에 오류 로그 수집기인 Firebase crashlytics을 설정해보자 선행 작업 이 글은 파이어베이스 프로젝트 생성 및 Android, iOS 앱 등록 이후의 작업을 다루므로 앞의 두 프로세스를 완료하지 않았다면 아래 링크에서 작업을 완료해야 한다. 1. 파이어베이스 프로젝트 생성 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Console 접속 파이어베이스 서비스를 이용하기 위해서는 구글 파이어베이스 콘솔에 접속해야한다. https://console.firebase.. spiralmoon.tistory.com 2... 2019. 12. 21. [Flutter] Firebase를 이용하여 Facebook Login 사용하기 Firebase를 이용하여 Facebook Login 사용하기 플러터 환경에서 파이어베이스를 사용하여 페이스북 인증을 해보자 작업 환경 아래 항목은 필수 사항이다. - 안드로이드 : AndroidX 이상 - iOS : Deployment target iOS 9 이상 선행 작업 이 글은 파이어베이스와 페이스북에 각각 프로젝트가 생성되어 있어야 하며, 양 쪽 프로젝트 모두 Android, iOS가 등록된 이후의 작업을 다루므로 앞의 프로세스를 진행하지 않았다면 아래 링크에서 먼저 모든 작업을 완료해야한다. 1. 파이어베이스 프로젝트 생성 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Co.. 2019. 12. 11. [Flutter] Firebase를 이용하여 Google Login 사용하기 Firebase를 이용하여 Google Login 사용하기 플러터 환경에서 파이어베이스를 사용하여 구글 인증을 해보자 선행 작업 이 글은 파이어베이스 프로젝트가 미리 생성되어 있어야 하고, 프로젝트에 Android나 iOS 앱을 등록한 이후의 작업을 다루므로 앞의 두 프로세스를 진행하지 않았다면 아래 링크에서 먼저 작업을 완료해야한다. 1. 파이어베이스 프로젝트 생성 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Console 접속 파이어베이스 서비스를 이용하기 위해서는 구글 파이어베이스 콘솔에 접속해야한다. https://console.firebase.. spiralmoon.tist.. 2019. 12. 4. [Android] Cannot fit requested classes in a single dex file Cannot fit requested classes in a single dex file Android나 Flutter 개발을 하다보면 잘 컴파일되던 소스코드가 갑자기 "Cannot fit requested classes in a single dex file"이라는 메시지와 함께 컴파일 오류를 내는 경우가 있다. 원인 안드로이드 공식 문서에는 다음과 같이 쓰여있다. 앱 및 앱이 참조하는 라이브러리에서 메서드가 65,536개를 초과하면 앱이 Android 빌드 아키텍처의 제한에 도달했음을 알리는 빌드 오류가 발생합니다. 개발에 실수해서 생기는 오류는 아니고 그냥 프로젝트에 포함된 총 메소드의 갯수가 65,536개가 넘어가면 발생하는 오류이다. (메소드 수는 라이브러리 내부의 메소드까지 포함한 수치) 위의 .. 2019. 11. 26. [C#] 확장 메소드 (Extension Methods) 확장 메소드 (Extension Methods) C#에서 이미 만들어진 클래스에 메소드를 추가하는 방법에 대하여 알아보자. 확장 메소드란? 프로그래밍을 하다보면 이미 만들어진 클래스에 새로운 메소드를 추가해야 할 때가 생긴다. 직접 만든 클래스라면 메소드를 추가하여 수정이 가능하지만, 남이 만든 클래스(라이브러리, C# 기본 제공 클래스 등)는 소스코드를 수정할 수 없다. 대표적인 대안으로 부모클래스를 상속하여 자식클래스에서 메소드를 추가해 확장하는 방법이 있는데, 이는 메소드가 추가될 뿐인데 상속을 유발하기 때문에 프로그램 설계상 가장 좋은 방법은 아니다. C#은 상속을 하지 않고도 이미 만들어진 클래스에 새로운 메소드를 추가 확장할 수 있는 방법을 제공하며, 이를 확장 메소드(Extension met.. 2019. 11. 21. [Javascript] 세미콜론 자동 삽입과 중괄호 위치 버그 세미콜론 자동 삽입과 중괄호 위치 버그 자바스크립트의 세미콜론 자동 삽입에 의해 나타날 수 있는 현상인 중괄호 위치 버그에 대해 알아보자. 세미콜론 자동 삽입 프로그래머가 세미콜론(;)을 삽입하지 않은 채 행을 종료하면, 자바스크립트에서는 코드가 실행될 때 행의 마지막에 세미콜론을 자동 삽입한다. // 예시 1 var number = 100 // 예시 2 console.log(number) 위 코드 두 줄은 각각 행의 마지막에 세미콜론을 붙이지 않은 코드이지만 실제로는 동작한다. 세미콜론을 넣지 않고 number 변수에 100을 할당하는 코드이다. 실제로 number 변수의 값을 조사해보면 100이 할당된 것을 확인해 볼 수 있다. console.log 함수를 이용해 number 변수의 값을 다시 한 번.. 2019. 11. 10. [Javascript] 문자열 replace와 replaceAll ▶ 주제 : 문자열 replace와 replaceAll. 자바스크립트에서의 문자열 replace 처리 동작과 replaceAll 하는 방법을 알아보자. ▶ 문자열 replace 문자열 replace 기법은 주어진 문자열의 내부에서 패턴 A에 해당하는 부분을 문자열 B로 교체하는 방법이다. 'aaa?bbb?ccc' 이라는 문자열에서 ?을 @로 교체(replace)한다고 했을 때 'aaa@bbb@ccc'로 변경된다고 이해하면 된다. 겨우 이런 것 가지고 글을 쓰는 이유는 Javascript에서의 replace 함수가 다른 메이저 언어들의 replace 함수와 동작이 다르기 때문이다. ▷ Javascript의 replace : let str = 'aaa?bbb?ccc'; console.log(str.repla.. 2019. 10. 20. 이전 1 2 3 4 5 6 다음 반응형