Flutter
이전에 어플의 출석 기능을 위해서 랜덤 토큰 생성을 Functions로 하기 위해서 도전을 해봤었다. 그런데 internal 오류가 계속 날아와서 이를 해결하지 못하고 functions가 아닌 다른 방식을 선택해서 구현했었다.그런데 이번에할 자동 앱을 이용한 FCM을 하기 위해서는 필연적으로 Functions를 이용해야만 일반 사용자가 FCM을 이용해 공지나 알림을 띄울 수 있다. 그래서 이번에는 포기하지 않고 다시 도전해 보기로 한다. 먼저 Functions가 뭔지 간단하게 알아보자.Cloud Functions for Firebase Cloud Functions for FirebaseFirebase용 Cloud Functions는 Firebase 기능과 HTTPS 요청에 의해 트리거되는 이벤트에 응답하..
FCM(Firebase Cloud Messaging)을 이용해서 Notifications을 설정해보려고 한다. 가장 먼저 Firebase_messaging 패키지 설정하는 내용을 정리해보겠다. 초기 설정방법은 아래의 유튜브를 참고해서 진행했다.Push Notifications in Flutter using FCM with REST API - HTTP V1 API - Firebase Cloud Messaging 1. Firebase_messaging package Install가장먼저 해줄것은 패키지를 설치하는 것이다. flutter pub add firebase_messaging 2. Firebase Messaging settingFirebase Messaging을 이용한 Notifications 설정을..
독서록 앱은 Firebase를 이용해서 백앤드를 대체하고 있는데 Firebase에는 여러가지 기능이 있어서 그 중 auth 기능을 써보려고 했다. Firebase Auth를 사용해보려고 검색을 해보니 아래의 블로그를 찾았다. flutter - firebaseAuth로 email 회원가입, 로그인 하기firebase에서 회원가입 로그인을 사용하려면 아래의 Authentication으로 들어가 준다 들어가서 시작하기를 눌러주고 이메일을 사용할 거니까 제공업체에서 이메일/비밀번호를 선택한다 이렇게 한 뒤cpcp127.tistory.com읽어보니 굉장히 간단하게 로그인과 회원가입을 구현할 수 있었다.위의 방식은 페이지 하나에 기능을 간단하게만 구현한것으로 현재 독서록 앱은 Clean archiecture 구조이..
앱을 개발하던 중에 갑자기 앱의 빌드가 안되는 문제가 발생했다.Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)이게 무슨 문제일까?Ai에게 먼저 물어봤다. "이 오류는 주로 Flutter 앱의 Dart 코드와 네이티브 플랫폼(Android 또는 iOS)의 Firebase SDK 간에 통신 채널이 제대로 설정되지 않았을 때 발생합니다." 라고 했다.Firebase와 Native간의 발생하는 것으로 이해했고, 검색을 해보아도 firebase 설정 파일을 다시 설치해보라는 말이 있어있다. 그래서 다시 해보았다.ios/Runner/GooleService-info.pl..
인턴 활동을 하면서 처음 봤던 것 중에 mounted 확인이 있었다. mount는 이전에 앱을 만들때 사용해본 적이 없어서 무슨 기능인지 이번 기회에 알아보려고 한다.우선 mounted라는 말은 무엇일까? ed가 붙으면 수동형이 되는데 mount는 여러가지의 의미가 있지만 명사형의 의미중에장치어떤 것을 지지하거나 고정하는 데 사용되는 장치를 의미합니다. 예시: "a camera mount" (카메라 거치대)라는 의미가 있습니다. 그러면 flutter Mounted의 의미로 해석을 해보자면 "연결이 되었다" 정도로 해석을 해보고 넘어가 보겠습니다. 간단하게 알아보기그 다음으로 공식 사이트를 찾아보겠습니다. 검색을 해보면 공식 사이트에선 state와 element에 대해서 두가지의 mounted 설명이 나..
제가 참여했던 인턴 프로젝트에서는 백엔드와의 API 통신을 통해 정보를 가져오는 모든 부분이 Future 방식으로 구현되어 있었습니다. Future는 Flutter의 대표적인 비동기 처리 방식으로, 한 번의 API 요청으로 데이터를 가져오는 데는 매우 적합합니다.하지만 프로젝트를 진행하면서 한 가지 큰 문제점을 발견했습니다. 바로 실시간으로 정보가 업데이트되어야 하는 중요한 기능들까지도 Future를 통해 처리하고 있었다는 점이었습니다.예를 들어, 실시간으로 변동되는 주문 상태나 알림 같은 정보들이 이에 해당했습니다. 당시에는 이러한 '실시간' 데이터를 가져오기 위해 Future를 **일정 시간마다 반복적으로 호출(폴링)**하는 방식으로 구현되어 있었습니다. 이 방식의 문제점은 명확했습니다Future는 ..
인턴이지만 내가 일하게 된곳에는 flutter를 메인으로 하는 곳이 아니였다. 그래서 바로 flutter 프로젝트에 참여하게 되었다. 인원이 부족했기 때문에 나의 부족한 지식으로도 곧바로 도움을 줄 수 있어서 좋았다.참여하게된 프로젝트에서 가장 처음으로 눈에 띄는게 Route 방식이였다. Navigator, GoRouter만을 사용해보았었고, GoRouter가 워낙 좋았어서 다른 Route 방식을 찾아보지 않았었다. 그런데 회사 프로젝트에서는 처음 보는 Route방식을 사용하고 있었다. Named RouterNamed Route는 페이지의 이름을 정의해서 navigator에 이름으로 화면으로 전환하는 방법입니다.import 'package:flutter/material.dart';void main() {..
독서록 앱에는 책 검색 기능을 사용하고 있는데 검색을 할때 바로 원하는 책을 찾을 수 없을 수도 있습니다.. 그렇지만 한번에 많은 양의 정보를 요청하면 앱의 속도가 느려질 수 있으니 적은 수를 원할때마다 요청 하면서 속도를 높이는데 이때 사용할 수 있는것이 무한 스크롤입니다.1. api 분석API요청에는 무한 스크롤처럼 데이터의 중간부분만 요청 할 수 있게 설정할 수 있는 파라미터가 있는 경우가 있습니다. 없다면 구현이 불가능 할 수 있으니 가장 먼저 확인해줍니다. 다행히 데이터 요청의 시작지점을 설정할 수 있어서 사용할 수 있다는 것을 확인했습니다.2. Start 파라미터 추가하기데이터를 요청 할 때 start의 위치를 알려줘야하므로 함수 마다 start를 추가해줍니다.3. 검색 함수를 수정한다. i..
독서록 앱에서 책 정보를 일일이 입력하기 보다 검색을 통해서 책정보를 가져오면 좋을 거 같아서 찾아보니 여러곳에서 책 api를 제공하고있었습니다. 책 제목, 저자, 출판사 등의 간단한 정보만 필요하기 때문에 그 중에서 가장 친숙한 naver api를 이용하기로 결정했습니다.api 통신을 할 때는 역직렬화라는 여러 단계를 거처야 json 형식으로 오는 데이터의 요소를 필요에 따라서 이용할 수 있습니다. 이를 간편하게 해주는 라이브러리 Freezed 가 있어서 사용해보기로 했습니다.https://totally-developer.tistory.com/139 [060] 플러터 (Flutter) 배우기 - freezed 사용하기 1안녕하세요~ totally 개발자입니다. 먼저 이 포스팅 보시기에 앞서 지난 059..



