본문 바로가기

Flutter

(22)
Flutter) JWT를 구현해보기lutter) JWT를 구현해보기 이번 포스팅에서는 JWT 토큰을 이용한 벡엔드 통신 코드를  (견본) 직접 구현해보겠습니다.직접 검증까지 해보고 싶지만 벡엔드 서버가 없어서 견본으로만 퉁치겠습니다. 본 포스팅에서는 구현을 다룰 것이기 때문에 JWT 통신은 설명은 다른 블로그 참고를 추천드립니다.간단한 설명은 아래 이미지를 참고 바랍니다.다만 여기서 JWT 발급 이후 사용자 서버에 API 요청을 보냈을 때 Access Token이 만료된 경우는 다음과 같은 과정을 통해 다시 API를 요청합니다. 1. Access Token이 만료되었을 시 이전에 발급 받은 Refresh Token을 가져온다2. Refresh Token를 이용하여 서버에 Access Token을 재발급 API를 요청한다.3-1. 재발급 실패 시  Refresh Token..
위젯을 캡쳐하고 공유하기 Flutter의 화면 내에서 특정 위젯을 캡쳐하고 해당 사진을 갤러리에 저장 및 공유를 해보겠습니다. 풀코드는 아래에 남겨두겠습니다.flutter pub add screenshot //캡쳐flutter pub add path_provider //저장 경로 설정flutter pub add share_plus //공유flutter pub add gallery_saver_plus //사진 갤러리에 저장   먼저 스크린샷컨트롤러를 선언해줍니다 그 다음 캡쳐할 위젯을 스크린샷 위젯으로 감싸고 컨트롤러를 추가합니다.이러면 위젯을 캡쳐할 준비는 끝났습니다. 이제 캡쳐 후 저장 및 공유를 코드를 작성해보겠습니다.  2~3줄 : 사진을 저장할 경로를 가져오기4~5줄:  캡쳐본의 이름설정 (이름+ 시간난수로 저장) 9~1..
Flutter) env파일을 암호화가 될까? Flutter를 이용해서 개발을 하다보면 env파일을 생성하여 주요 Key값들을 보관하게 됩니다.이유는 주로 다음과 같은데 1. Github에 공개적으로 업로드 하는 경우2. Store에 배포할껀데 암호화를 하고 싶은 경우 1번의 경우는 env파일 자체가 암호화 되지 않아도 업로드만 하지 않으면 되기 때문에 문제가 없지만2번처럼 보안을 강화하기 위해라면 진짜 큰일이 날 수도 있습니다.  Why not to use dotenv on flutterAlmost all developers have used dotenv at least once. Environment variables really help us to manage projects when we have more than one…systemweakn..
Flutter) 비동기 요청을 병렬로 처리하기 우리가 Flutter를 이용해서 비동기 코드를 10개 실행한 후 페이지가 로딩되기를 원한다고 생각해봅시다.  예를 들어 다음 사진과 같이 5개의 뉴스 데이터를 불러와야하는 상황일 때 가장 좋은 상황은 1번의 요청으로 서버에서 5개의 데이터를 한번에 몽땅 내려주는 상황일 겁니다. 하지만 Firebase를 사용한다는가, 뭔가 특수한 상황에서는 각각을 요청하기 위해 5번의 요청을 보내할지도 모릅니다. (참고로 저는 Firebase때문에 해당 상황이 발생했습니다 ㅋㅋ;) 각각의 요청을 총 5번 비동기로 요청하는 코드를 작성하면 다음과 같습니다. dartpad에서 실행하여 다소 오차는 있지만 대략적으로 각각 5번을 실행했을 때 5초정도가 소요되는걸 확인할 수 있습니다. 이제  해당 코드를 이용해서 병렬로 처리해봅..
riverpod을 사용한 MVVM 예제를 작성해보자 riverpod를 이용해서  API통신을 곁들인 MVVM 예제를 작성해보겠습니다. 코드가 길어질 것 같아 MVVM에 대한 개념은 생략하겠습니다. 매우 간단하게 설명하면 UI 그리는 View파일, 비즈니스 로직들어가는 ViewModel, 데이터 파싱하는 Model 파일 3개로 나눠서 코딩해주시면 됩니다. flutter pub add flutter_riverpoddart pub add riverpod_generatorflutter pub add riverpod_annotationdart pub add dioflutter pub add freezed_annotationflutter pub add dev:build_runnerflutter pub add dev:freezedflutter pub add json_..
Go_router에 URL 전달하기 다음과 같이 Go_router에 url과 같은 매게변수를 다음과 같은 형태로 전달하면 제대로 작동하지 않는다.사실 이는 간단한 문제로 URL에 있는 특수 문자 때문에 Go_router가  변수를 제대로 인식하지 못하는것이다  따라서 다음과 같이 URL에 존재하는 특수 문자를 변환 후 사용하면 된다.
Flutter) Riverpod 사용 정리 나만 보는용@riverpod 생성  명령어 - flutter pub run build_runner build  1. 익스텐션 설치  - Flutter Riverbed Sinppets - freezed (직렬화 snippets) 2. 의존성 추가 ## riverpod 패키지  flutter pub add flutter_riverpod flutter pub add riverpod_annotation flutter pub add dev:riverpod_generator flutter pub add dev:build_runner flutter pub add dev:custom_lint flutter pub add dev:riverpod_lint ##freezed (직렬화  코드 자동생성 패키지) flutter ..
riverpod http 요청 예시 View///명렁어 실행/// flutter pub run build_runner buildimport 'package:dalant/pages/sample/test123.dart';import 'package:flutter/material.dart';import 'package:flutter/widgets.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';class Home extends ConsumerWidget { const Home({super.key}); @override Widget build(BuildContext context, ref) { final asyncCounterState = ref.watch(counterPr..