엑스포 프로젝트에서 https://github.com/tolu360/react-native-google-places과 같은 라이브러리를 사용할 수 있습니까? 나는 어떤 npm 라이브러리도 추가 할 수 있다고 가정하지만, 네이티브 프로젝트를 링크하기 위해 포스트 설치 단계를 요구하는이 구글 플레이스 피커와 같은 라이브러리는 어떨까요? 그들은 엑스포로 지원됩니까?네이티브 종속성이있는 라이브러리를 Expo 반응 네이티브 프로젝트에 추가 할 수 있습니까?
답변
일반 엑스포 프로젝트는 JavaScript로만 작성되었으며 Objective-C 또는 Java가 포함 된 npm 패키지는 지원하지 않습니다. 그러나 Expo는 ExpoKit이라는 고급 SDK를 제공하므로 사용자 정의 원시 코드를 사용해야합니다. 엑스포 문서에서 :
일반적으로 엑스포 앱은 순수 JS로 작성되며을 기본 iOS 또는 Android 레이어에 "드롭 다운"하지 않습니다. 이것은 박람회 철학의 핵심이며 박람회를 에 빠르고 강력하게 만드는 이유 중 일부입니다.
그러나 고급 개발자가 기본네이티브 기능을 필요로하는 경우가 있습니다. 가장 일반적인 은 프로젝트가 React Native Core 또는 Expo SDK에서 지원하지 않는 특정 네이티브 모듈 을 필요로하는 경우입니다.
ExpoKit가 포함 된 Xcode 및 Android Studio 프로젝트를 만들기 위해 엑스포 프로젝트를 "분리"할 수 있습니다. 그런 다음 사용자 정의 Objective-C 또는 Java를 다른 Xcode 또는 Android Studio 프로젝트와 동일한 방식으로 추가합니다.
그러나 Expo 문서는 맞춤형 기본 코드 작성의 단점에 대해서도 경고합니다. 많은 기능을 JS에서 잘 구현할 수 있으므로 표준 Expo 프로젝트의 모든 이점을 유지할 수 있습니다.
경고 : 우리는 당신이해야 할 거의 모든 것이 더 나은 JS와 크로스 플랫폼 방식으로 을 달성 믿습니다으로 우리는이 경로, 을 복용에서 우리의 개발자의 대부분을 억제.
JS로 작성하면 무선 코드 배포를 최대한 활용하고 Expo의 지속적인 업데이트 및 지원 혜택을 누릴 수 있습니다. 네이티브 네이티브 코드 (예 : 예)와 같이 엑스포가 특수한 CPU 집약 비디오 처리를 수행하는 코드에서 특정 요구가있는 경우에만이 작업을 수행해야합니다.이 작업은 장치에서 로컬로 발생해야합니다.
+1. 귀하의 답변을 기반으로 나는 '반응 네이티브 링크'가 필요하고 [반응 네이티브]로 이동하므로 [react-native-fs] (https://github.com/itinance/react-native-fs)를 사용할 수 없습니다. -fetch-blob] (https://github.com/wkh237/react-native-fetch-blob). [react-native-fs] (https://github.com/expo/exponent-react-native-fs)의 엑스포 버전이 있지만 제대로 작동하지 않습니다. 이걸 좀 도와 주실 래요? 감사합니다. –
@ lal-zada Expo 2.0은 이미 파일 시스템을 지원합니다. https://docs.expo.io/versions/latest/sdk/filesystem.html – ronin1184