대런대런
CodeCraft
대런대런
전체 방문자
오늘
어제
  • 분류 전체보기 (18)
    • 블록체인 (1)
    • Front-end (13)
      • Browser (2)
      • React & React Native (11)
    • Windows (4)
    • 알고리즘 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 앱스토어 업로드
  • apollo-client
  • local server
  • react
  • ios 파일다운로드
  • style overriding
  • web3
  • 윈도우10
  • react native
  • ios build
  • react-native-fs
  • 브라우저 원리
  • 파일 안보임
  • edge effect
  • 브라우저 엔진
  • strapi
  • offsetLimitPagination
  • rn-fetch-blob
  • main.jsbundle
  • webkit

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
대런대런

CodeCraft

Front-end/React & React Native

React Native 파일 다운로드 구현 (rn-fetch-blob VS react-native-fs)

2020. 11. 17. 16:55
반응형

React Native에서 간단한 파일 다운로드를 구현할 일이 있어 패키지를 검색하던중 가장 star가 많은 두 패키지를 비교하였다.

 

npm trend 비교

www.npmtrends.com/react-native-fs-vs-rn-fetch-blob

 

react-native-fs (star 3.8k, 오래됨)

import RNFS from 'react-native-fs';

const download = async (file: File) => {
  const downloadDest = `${RNFS.DocumentDirectoryPath}/${file.name}`;
  const {promise} = RNFS.downloadFile({
    fromUrl: BACKEND_URL + file.url,
    toFile: downloadDest,
  });
  const {statusCode} = await promise;
};

 

rn-fetch-blob (star 2.2k, 안드로이드 다운로드 매니저 지원)

import RNFetchBlob from 'rn-fetch-blob';

const download = async (file: File) => {
  await RNFetchBlob.config({
    addAndroidDownloads: {
      useDownloadManager: true,
      notification: true,
      path: `${RNFetchBlob.fs.dirs.DownloadDir}/${file.name}`,
    },
  }).fetch('GET', BACKEND_URL + file.url);
};

 

둘다 잘 다운로드 되지만, 안드로이드 다운로드 매니저를 통하는 방식을 지원하는건 rn-fetch-blob만 가능하여 이 패키지로 선택하였다.

반응형

'Front-end > React & React Native' 카테고리의 다른 글

React Native 이미지/동영상 갤러리(스와이프) 구현 삽질기  (4) 2020.11.26
React Native 컴포넌트에서 children 스타일 덮어쓰는 방법  (0) 2020.11.19
[React] ApolloClient 캐시 비우는 간단한 방법  (0) 2020.11.19
[Strapi + React] ApolloClient로 초간단 pagination 구현하기  (0) 2020.11.18
React Native 안드로이드 스크롤 끝 이펙트(edge effect) 설정  (0) 2020.11.18
    'Front-end/React & React Native' 카테고리의 다른 글
    • React Native 컴포넌트에서 children 스타일 덮어쓰는 방법
    • [React] ApolloClient 캐시 비우는 간단한 방법
    • [Strapi + React] ApolloClient로 초간단 pagination 구현하기
    • React Native 안드로이드 스크롤 끝 이펙트(edge effect) 설정
    대런대런
    대런대런
    IT & 프로그래밍 관련 블로그

    티스토리툴바