본문 바로가기

React/ReactNative

(6)
리액트 네이티브 테스팅: Maestro E2E 테스트와 유닛 테스트 이 글에선처음 접해보는 리액트 네이티브에서는 어떻게 테스팅을 진행해야할까 고민했고, 참여하고 있는 번역 활동에서 리액트 네이티브 테스팅에 관한 공식 문서를 번역하기도 했습니다. 이에 기초하여 리액트 네이티브에서 E2E테스트와 유닛테스트를 하는 방법을 소개하고자 합니다. 자동화 테스트 라이브러리 비교부터 Sentry, Maestro, Appium 중 Maestro을 선택한 이유, 실제 예제 코드 그리고 유닛 테스트 작성까지의 과정을 다룹니다. 자동화 테스트 라이브러리 비교리액트 네이티브 앱의 E2E 테스트를 위해 여러 라이브러리를 고려해볼 수 있습니다. 그 중 저는 Sentry, Appium, Maestro를 표로 비교해보겠습니다. SentryAppiumMaestro주 용도애플리케이션 모니터링 및 오류 추..
React Native에서 딥링크 처리 및 푸시 알림 최적화하기 이 글에선React Native에서 딥링크 처리와 푸시 알림 기능을 최적화하는 방법에 대해 알아볼 것입니다. 특히, Firebase의 Messaging과 Notifee를 함께 사용한 이유에 대해서도 다루고 있습니다. 딥링크 설정, 푸시 알림 설정, 그리고 최적화된 코드 구조를 통해 효율적인 리액트 네이티브 link routing과 푸시 알림을 구축하는 방법을 설명해보겠습니다. 1. 딥링크 처리하기딥링크는 사용자에게 특정 콘텐츠를 제공하기 위해 앱의 특정 화면으로 직접 이동할 수 있도록 도와줍니다. React Native에서 딥링크를 처리하려면 @react-navigation/native의 LinkingOptions를 설정하고, 앱이 열릴 때 해당 URL을 처리하도록 구성해야 합니다. 우선, 딥링크를 설정..
[ReactNative] react-query refetch가 안되는 문제와 해결 방법 문제 상황 리액트 쿼리는 기본적으로 화면이 focus될 경우, refetch되는 속성을 가지고 있다. 그래서 화면을 이탈했다 돌아오면, stale시간과 상관없이 다시 새로운 데이터로 fetching 되게 된다. 하지만 리액트 네이티브에선 화면의 focusing 여부를 알지 못했다. 그래서 아무리 다른 페이지에 갔다 돌아와도, 데이터가 변경이 되어도, 리액트 쿼리는 계속해서 이전의 데이터만을 보여주게 된다. 이를 어떻게 해결할 수 있을까? 해결 방법 직접 custom hook을 구현하는 것으로 해결할 수 있다! 스크린이 focus 될 때마다, react query의 refetch 함수를 실행시키는 훅을 만들 수 있다. 커스텀 훅에 원하는 refetch 함수를 파라미터로 넘겨주도록 만들어주면 된다. impo..
[ReactNative] ios .env파일 수정 후 적용이 안되는 현상 XCode -> Product -> Clean Build Folder 후, 재빌드하면 해결됩니다⭐️
React Native에서 웹뷰(react-native-webview)를 사용할 때, 고려해야할 것들(#삽질, #Next.js) 들어가며 이 글은 리액트 네이티브에서 웹뷰만으로 서비스 개발을 하다가 큰 문제에 부딪혀 프레임워크 자체를 변경하게된 일을 작성한 회고록입니다. Web-View만으로 리액트 네이티브 개발을 생각중인 분들에게 도움이 될 것이라 생각합니다. 아래부턴 간결한 문장을 위해 평어로 진행하겠습니다. Web-View 개발을 선택한 이유 내가 만들고자 하는 서비스는 소셜로그인으로 회원가입이 되고, 카카오톡처럼 핸드폰의 연락처를 가져와 친구를 만들고, 쇼핑에 결제까지 되는 서비스이다. 그래서 SSR, CSR 등 각 페이지에 맞는 렌더링 기법을 선택할 수 있는 Next.js를 활용하면, 빠른 속도 경험을 유저에게 제공할 수 있을 거라 생각했고, Next.js를 웹 프레임워크로 선택했다. 이렇게 web을 만들고, 해당 web..
[React Native] WebView 적용하는 방법(localhost 안될때,nsurlerrordomain) WebView를 어떻게 App에서 적용할 수 있는 건지 항상 궁금했었는데, 이번 프로젝트를 통해서 알게됐다. WebView란 웹 프로젝트 그 자체를 그냥 앱에서 띄우는 것이다. Naver도 WebView로 만들어진 앱으로 유명한데, 웹뷰는 즉, naver.com을 치면 나오는 화면을 그대로 앱에서 보여주는 것이다. React Native에서 적용하는 방법은 엄청 간단하다! import React from 'react'; import {WebView} from 'react-native-webview'; export default function Home() { return ( ); } 이렇게 해주면? 나도 네이버앱 완성이다!ㅋㅋㅋㅋ 다만 WebView를 보여줄 때, 고려해야할 점은 바로 Stack이다. A..