Expo 외부 앱으로 연결 Deep Linking 방법 (길찾기, 유튜브 등)
·
🔍 Tech 🔍/Front-End
앱을 구현하다 보면 다른 앱으로 연결을 해야 할 때가 있습니다.1. 전화 / 문자2. 인스타그램 프로필 / 페이스북 페이지 열기3. 지도앱으로 길찾기4. 카카오톡으로 공유하기 1. Linking그때 Expo에서 사용하는 메서드가 Linking입니다.https://reactnative.dev/docs/linking Linking · React NativeLinking gives you a general interface to interact with both incoming and outgoing app links.reactnative.dev사용법은 간단합니다. 특정 웹 페이지를 열고 싶다면 아래와 같이 작성하면 되고Linking.openURL("https://www.google.com")앱의 설정 페이..
React Native Expo FCM 푸시 알림 설정
·
🔍 Tech 🔍/Front-End
본 포스팅에서 다뤄볼 것1. Firebase FCM2. FCM 서비스 계정 키 얻기3. FCM 서비스 키 얻기4. Expo, FCM push token 얻기5. push 알림 채널 및 설정6. 포그라운드 알림 설정7. 포그라운드 알림 처리8. 알림 클릭 처리 및 데이터 담아 보내기9. 프로덕션 배포를 위한 EAS 설정 FCM 푸시 알림 소개에 앞서 Expo 푸시 알림이 궁금하신 분들은 아래 링크의 공식문서를 확인하세요.https://docs.expo.dev/push-notifications/push-notifications-setup/ Expo push notifications setupLearn how to set up push notifications, get credentials for develo..
React Native Expo google map 지도 구현 방법
·
🔍 Tech 🔍/Front-End
본 포스팅에서 다뤄볼 것1. expo google map 구현2. 지도 초기 위치 (고정/현재위치)3. 현재 위치 표시4. 현재 위치 이동 버튼 (커스텀)5. 지도 이동 시 동작 (예: 현재 위치 재검색)6. 지도에 마커 표시 (커스텀)7. 마커 선택 시 말풍선(callout) 표시 (커스텀)8. 검색 리스트 선택 시 해당 위치로 이동+마커+말풍선 1. expo google map 구현https://docs.expo.dev/versions/latest/sdk/map-view/ MapViewA library that provides a Map component that uses Google Maps on Android and Apple Maps or Google Maps on iOS.docs.expo.de..
React Native Expo에 google AdMob 추가하기
·
🔍 Tech 🔍/Front-End
1. react-native-google-adsexpo 앱에 google admob을 추가할 때 expo-ads-admob 라이브러리를 사용했지만, Expo SDK 46을 기준으로 더 이상 지원하지 않습니다.현재 포스팅일(2024.10) 기준 Expo SDK 버전은 51입니다.@Expo Versionhttps://github.com/expo/expo-ads-admob GitHub - expo/expo-ads-admobContribute to expo/expo-ads-admob development by creating an account on GitHub.github.com 공식 문서에서 추천하는 react-native-google-mobile-ads 라이브러리를 사용할 것입니다.https://githu..
React Native Top Sheet 직접 구현 #2
·
🔍 Tech 🔍/Front-End
지난번에 gesture handler, reanimated 라이브러리를 사용해 top sheet를 직접 구현해 보았는데, 오늘은 top sheet가 확장/축소 됐을 때 다른 컨텐츠를 보여주고 하단에 자연스럽게 스크롤이 생기게 적용했다. 1. 컨텐츠 배치top sheet 아래 부분에 메인 컨텐츠가 표시되어야 하므로 Section 컴포넌트를 ScrollView로 묶어주었다.   현재 상태(top sheet가 축소된 상태)에서는 Section에 스크롤이 생기지 않는다.하지만 확장되면 늘어난 top sheet의 높이만큼 스크롤이 생긴다.    2. 확장/축소 컨텐츠위 사진처럼 서로 다른 컨텐츠를 자연스럽게 변환하기 위해 몇 가지 기능을 추가해야 했다. 2-1. useSharedVa..
React Native Top Sheet 직접 구현 #1
·
🔍 Tech 🔍/Front-End
회사에서 진행하는 Kotlin 앱을 React Native로 컨버팅 하는 프로젝트 진행 중 기획 단계가 끝나고 어떤 라이브러리를 사용할지 설계 중이었다. 기존 앱의 메인 페이지에는 상단에 드래그 가능한 Top Sheet가 구현되어 있는데, 열심히 찾아보아도 RN에선 Botton Sheet 라이브러리만 있을 뿐 원하는 Top Sheet 라이브러리는 없었다. # 가장 많이 사용하는 Bottom Sheet 라이브러리https://ui.gorhom.dev/components/bottom-sheet/ React Native Bottom Sheet | Gorhom UIA performant interactive bottom sheet with fully configurable options 🚀ui.gorhom.d..
Next.js 맛보기
·
🔍 Tech 🔍/Front-End
그동안 React로 CSR 방식의 프로젝트만 구현했었는데, SSR 방식을 알아보던 중 React 문법을 사용할 수 있는 Next.js를 직접 사용해 보면서 어떤 차이점이 있는지 알아보고 싶어 간단한 애플리케이션을 구현해보았다. 1. 애플리케이션 생성https://nextjs.org/docs/getting-started/installation Getting Started: Installation | Next.jsCreate a new Next.js application with `create-next-app`. Set up TypeScript, styles, and configure your `next.config.js` file.nextjs.org기존에 React로 생성할 때 CRA(create-reac..
프론트 엔드에서 테스트 코드
·
🔍 Tech 🔍/Front-End
1월 원티드 챌린지에서 프론트 엔드에서도 테스트 코드가 필요하다는 것을 알게 되었다.프론트 엔드에서 테스트 코드를 활용한 경험을 담은 기술블로그의 글을 읽다 보면 공통적으로 말하는 장점이 있다.1. 오류를 빠르게 발견하고 수정할 수 있다.2. 다른 라이브러리/프레임워크로 쉽게 리펙터링이 가능하다.3. 로직의 흐름을 파악하기 쉬우므로 문서화 역할을 하며 새로운 팀원이 해석하기 쉽다. 여기에 추가적으로 TDD 방법론을 적용하였을 때 개발 시간이 줄어든다는 실제 사례를 에서 본 기억이 있다.복잡한 비즈니스 로직이 포함된 코드가 아닌 간단한 사칙연산 수준의 코드를 구현함에 있어서도 위처럼 유의미하게 차이가 발생했다. 챌린지에서 배웠던 내용을 한마디로 요약하자면 "UI 테스트는 하지 않고, 요구사항의 사용자 시나..
컴파운트 컴포넌트 패턴 (CCP)
·
🔍 Tech 🔍/Front-End
원티드 온보딩 챌린지를 참여하며 새로 알게 된 개념인 CCP에 대해 알아보았다.결국 프론트 엔드 개발을 하며 많은 시간을 할애하는 부분은 코드 구현이 아닌 계획과 설계 그리고 리펙터링인 것 같다. 독립적인 컴포넌트 작업으로 얻을 수 있는 여러 이점들이 React를 사용하는 이유라면 장점을 극대화하기 위해선 컴포넌트 하나하나 신중하게 생성해야 할 것이다. 바로 이 부분을 염두한 패턴이 CCP가 아닐까 싶다. https://patterns-dev-kr.github.io/design-patterns/compound-pattern/ Compound 패턴하나의 작업을 위해 여러 컴포넌트를 만들어 역할을 분담하게 한다 - …patterns-dev-kr.github.ioimport React from 'react'i..