• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

안녕하세요, 강의 잘 들었습니다 :) RN과 파이어베이스 관련해서 질문드릴게 있습니다!

22.12.16 22:08 작성 조회수 413

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 코드는 깃헙에 올리고 깃헙 주소를 함께 남겨주세요.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

먼저 친절하고 꼼꼼한 강의 감사드립니다. 강의처럼 expo와 파이어베이스를 이용해서 모바일 앱을 만들어보려고 공부 중입니다. 본 강의에서는 expo를 사용하면서 파이어베이스 JDK를 사용하는데요, expo docs 파이어베이스 섹션에는 react-native-firebase 라이브러리를 사용할 수 있다고 안내가 되어 있어서 질문 드립니다. react-native-firebase 라이브러리를 사용하면 애널리틱스 뿐만 아니라 crashlytics, 동적 링크 등을 사용할 수 있다고 안내가 되고 있는데요, 이런 기능들의 사용을 위해서는 개발 툴로 expo go가 아니라 커스텀 가능한 dev-client를 설치해 사용하라고 권장하고 있습니다. expo에서 dev-client를 사용하는 목적은 불필요한 expo 모듈을 제거해 용량을 줄이고 RN-CLI처럼 네이티브 의존성 라이브러리와 모듈을 제어할 수 있다고 하는데요. 여기서 질문 드릴 점은,

1) 애널리틱스 기능과 같은 파이어베이스의 서비스를 웹이 아닌 모바일앱에서도 온전히 사용하려면 현업의 개발자들은 react-native-firebase 라이브러리를 반드시 사용하고 있나요?

2) dev-client와 기존 eject 명령을 대체하는 prebuild를 이용하면, expo의 매니지드 워크플로우를 따르고 있어도 네이티브 환경을 커스텀할 수 있다고 합니다. 그런데 이 부분이 명확히 이해가 안 됩니다.. 그저 네이티브 의존성인 RN라이브러리를 expo에서도 사용할 수 있다는 건지, xcode나 안드로이드 스튜디오에서 네이티브 코드를 직접 짜 넣을 수 있는지 구글, 스택오버플로등에 검색해도 잘 나오지 않는데요.. 특히 위젯 기능 같은 경우는 RN으로 구현할 수 없고 네이티브 소스를 직접 짜야하는데 그러려면 반드시 RN-CLI로 가야 하는지 아니면 dev-client + prebuild를 사용할 수 있는지.. 강의 범위를 조금 넘어선 질문일 수도 있지만 이 부분도 여쭈어봅니다.

좋은 강의와 교재 감사드립니다.!:)

답변 1

답변을 작성해보세요.

1

안녕하세요 nakedpunch91님,

 

1) Authentication, Firestore, Storage 정도만 사용한다면 JS SDK 를 사용해도 괜찮지만, 다른 기능들도 모두 사용한다면 react-native-firebase를 사용해야 합니다.

https://docs.expo.dev/guides/using-firebase/#using-firebase-js-sdk

 

2) dev-client는 expo는 사용하고 싶은데, expo에서 지원하지 않는 라이브러리를 설치하고 이용할 때 사용하면 됩니다.

예를 들어, react-native-firebase를 사용하고 싶다면 expo-dev-client를 사용하면 됩니다.

https://rnfirebase.io/#managed-workflow

 

expo-dev-client를 사용하면, CLI처럼 ios,android 폴더 및 코드가 나타납니다.

네이티브 코드가 나타나고, expo 문서에서 add custom native code 문서를 보면 네이티브 코드 작성이 가능하리라 봅니다.

https://docs.expo.dev/workflow/customizing/

다만, 제가 expo-dev-client를 이용해서 네이티브 모듈을 작성한 경험은 없어서, 이 개발 경험이 좋다 나쁘다 명확하게 답변드리긴 어렵습니다.

만약 직접 네이티브 코드를 작성해야 한다면, CLI를 이용하는것을 권장합니다.

실제로 현업에서도 대부분 CLI를 사용해서 프로젝트를 진행합니다.

 

답변에 도움이 되셨길 바랍니다.

즐거운 하루 되세요

감사합니다.

답변 감사드립니다. 많은 도움이 되었네요 ~! 좋은 연말 연휴 보내시길 바랍니다 :)