Programming66 [Flutter] 여러 페이지를 한 화면에서, PageView 여러 페이지를 한 화면에서, PageView 여러 페이지를 한 화면에서 처리할 수 있게 해주는 PageView 위젯을 알아보자 작업 환경 Flutter : 1.17.3 Dart : 2.8.4 PageView란? PageView는 여러 페이지를 한 화면에서 구현할 수 있도록 해주는 위젯 클래스이다. 보통은 한 화면에 한 페이지를 구현하는데, PageView를 사용하면 한 화면에서 여러 페이지를 책처럼 넘겨볼 수 있도록 구현할 수 있다. flutter 공식 채널의 PageView 소개 영상 페이지를 수직, 수평으로 넘기거나 페이지 전환 애니메이션 등을 적용할 수 있다. PageController 클래스를 등록하여 페이지 전환을 트리거 할 수도 있다. PageView 사용해보기 여러 페이지 추가하기 책을 만드.. 2020. 6. 15. [프로그래밍 이론] 두 점 사이의 절대각도를 재는 atan2 두 점 사이의 절대각도를 재는 atan2 프로그래밍 언어에서 역탄젠트를 계산하는 함수 atan2의 특징을 알아보자 아크탄젠트란? 아크탄젠트(arctangent)는 역탄젠트라고도 하며 탄젠트의 역함수이다. 아크탄젠트를 이용하면 위 사진에서의 θ의 각도를 구할 수 있다. 모든 프로그래밍 언어에는 아크탄젠트를 계산할 수 있도록 Math 모듈에 atan(y / x)과 atan2(y, x) 함수를 지원한다. atan과 atan2의 차이점 atan과 atan2은 두 점 사이의 θ의 절대각을 구하는 함수인데 왜 두가지로 나뉘었을까? atan은 두 점 사이의 탄젠트값을 받아 절대각을 -π/2 ~ π/2의 라디안 값으로 반환한다. (-90 ~ 90도) atan2는 두 점 사이의 상대좌표(x, y)를 받아 절대각을 -π .. 2020. 6. 3. [Algorithm] 평면 좌표 경로 압축 알고리즘 평면 좌표 경로 압축 알고리즘 2D 평면 좌표(x, y)들의 경로를 압축, 요약하는 알고리즘을 만들어보자. 사전 지식 이 알고리즘은 평면좌표 표현 방법과 기초 삼각 함수를 숙지하여야 한다. 라디안 라디안 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 라디안(영어: radian)은 각의 크기를 재는 SI 단위이다. 호도(弧度)라고도 하며, 기호는 rad이다. 단위원의 중심각의 라디안 값은 그 각이 대하는 호의 길이와 같다. 1라디안은 약 57.3도이다. 라디안은 입체각의 단위인 스테라디안과 함께 SI 보조 단위에 속했으나, 1995년에 SI 보조 단위가 폐지되면서 SI 유도 단위가 되었다. 라디안의 표기는 rad 기호가 가장 흔하며, 이는 자주 생략된다. 간혹 c(위첨 ko.wiki.. 2020. 5. 14. [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. 이전 1 2 3 4 5 6 다음 반응형