CocoaPods 없이 React Native 개발하기
오진성 토스 · 토스 기술 블로그
AI 핵심 요약
운영 중인 iOS 앱에 React Native를 부분 도입할 때 CocoaPods를 기존 의존성 관리 도구와 함께 쓰면 의존성 중복이나 빌드 실패가 생길 수 있습니다. 이를 피하기 위해 React Native 라이브러리를 CocoaPods로 미리 빌드해 XCFramework로 만들고, 이를 binaryTarget으로 담은 Swift Package를 생성하는 Prebuild 방식을 제안합니다. 빌드 스크립트는 시뮬레이터와 기기용 아카이브를 만든 뒤 XCFramework와 Package.swift를 생성하며, 운영 프로젝트는 Swift Package Manager로 패키지를 추가합니다. 이 방식은 앱의 의존성 관리 도구를 하나로 유지하고 React Native 코드의 반복 빌드 부담을 줄이는 데 목적이 있습니다.
- 여러 의존성 관리 도구는 서로의 의존성 그래프를 알지 못해 같은 라이브러리가 중복되거나 빌드가 실패할 수 있습니다.
- 의존성 충돌을 피하려고 라이브러리를 포크해 podspec을 수정한다면, 변경 이력과 원본 대비 차이를 지속적으로 관리해야 합니다.
- React Native 의존성을 CocoaPods로 설치한 뒤 시뮬레이터와 기기용으로 각각 아카이브하고 XCFramework로 묶을 수 있습니다.
- 생성한 XCFramework를 Swift Package의 binaryTarget으로 등록하면 운영 앱에서는 Swift Package Manager로 React Native를 가져올 수 있습니다.
소개
토스와 비슷하게 많은 회사들이 각자 다른 이유로 운영 중인 서비스를 크로스 플랫폼으로 확장하고자 React Native를 도입하려고 할 거예요. 이런 경우에 CocoaPods를 사용하지 않고 React Native를 도입하는 방법을 알려드릴게요.
비슷한 학습 자료
컨퍼런스 SLASH
웹과 유사한 개발 경험을 제공하는 React Native, 디버깅 경험은 과연 어떨까요? 토스에서 자체 디버깅 도구를 만들어 생산성을 끌어올리게 된 과정을 소개합니다. 이근혁 / 토스 Frontend Platform Engineer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-24 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #토스 #개발자컨퍼런스 #SLASH #SLASH24 #frontend #reactnative 유의 사항 *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전송권에 위배됩니다. *토스가 다루는...
모바일 앱 개발 개발 도구
컨퍼런스 SLASH
토스ㅣSLASH 23 - 달리는 토스 앱에 React Native 엔진 더하기
컨퍼런스 SLASH
토스의 사용자와 개발자 경험을 모두 개선해준 ‘React Native’, 도입 과정은 어땠을까요? React Native를 도입하는 과정에서 토스가 마주한 기술적인 도전과 그 해결 과정을 소개합니다. 박서진 / 토스 Frontend Chapter Lead 발표 자료 👉🏻 https://bit.ly/3CePOfI 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #reactnative #사용자경험 #frontenddeveloper #토스 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에...
모바일 앱 개발
컨퍼런스 SLASH
토스ㅣSLASH 22 - 미친 생산성을 위한 React Native
문서 이근혁
ESBuild를 위한 HMR, 직접 만들기
문서 박서진