묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결React Native with Expo: 제로초에게 제대로 배우기
암호화 복호화 관련 질문
제로초님 안녕하세요..!! 백엔드쪽 요구사항에 따라서 데이터 요청 시 암호화, 받을 때 복호화 로직을 추가해야되는데, 백엔드측과 컨벤션을 맞추기 위해 AES-GCM 알고리즘을 사용해야 하는 상황입니다. expo-crypto 에는 해당 알고리즘을 지원하지 않는 거 같아서 강의에서 알려주신 https://reactnative.directory/ 를 통해서 지원하는 라이브러리를 찾아보는 중인데, 웹에서 사용하는 crypto-js 도 나와있어서 expo 환경에서도 사용할 수 있는건지 헷갈리네요. crypto-js의 공식문서를 읽어보니, NodeJS의 기본 Crypto 모듈 사용하라고하는데, react native에는 없어서 다른 대체 라이브러리가 있을까요? 또한 위 사이트에서 검색 가능한 라이브러리라면, development build 앱 또는 배포된 앱 환경에서는 모두 호환 가능하다고 보면 될까요?
-
해결됨React Native with Expo: 제로초에게 제대로 배우기
혹시 해당 강의 보면서 테스트용으로 사용할 맥북을 구매할 예정인데 어느정도 스펙 이상으로 사야 할지 의견 받아볼수있을까요?
혹시 해당 강의 보면서 테스트용으로 사용할 맥북을 구매할 예정인데 어느정도 스펙 이상으로 사야 할지 의견 받아볼수있을까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
[TypeError: Cannot read property 'find' of undefined] 문제
제로초님 안녕하세요!! 강의에 나온대로 top tabs 적용중인데, withLayoutContext에 제네릭 타입까지 강의와 같이 적용하려고 했으나import type { TabNavigationState, ParamListBase } from '@react-navigation/native';위 코드에서 '"@react-navigation/native"' 모듈에 내보낸 멤버 'ParamListBase'이(가) 없습니다.ts(2305)ParamListBase를 불러오지 못해서 우선 타입스크립트 적용하지 않고 아래 코드와 같이 테스트했습니다.import { withLayoutContext } from 'expo-router'; import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'; import { Text, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; const { Navigator } = createMaterialTopTabNavigator(); export const MaterialTopTabs = withLayoutContext(Navigator); const GitCallbackLayout = () => { const insets = useSafeAreaInsets(); return ( <View style={{ paddingTop: insets.top }}> <Text>Callback Layout</Text> <MaterialTopTabs> <MaterialTopTabs.Screen name="index" options={{ title: 'GitHub' }} /> <MaterialTopTabs.Screen name="gitlab" options={{ title: 'GitLab' }} /> <MaterialTopTabs.Screen name="bitbucket" options={{ title: 'Bitbucket' }} /> <MaterialTopTabs.Screen name="devops" options={{ title: 'DevOps' }} /> </MaterialTopTabs> </View> ); }; export default GitCallbackLayout; 폴더 구조는 아래와 같고 index, gitlab, devops, bitbucket 컴포넌트는 모두 default export 돼있는 상태입니다.이 상태에서 페이지에 /settings/manage-git/verify 경로로 접근하면 ERROR [TypeError: Cannot read property 'find' of undefined] Code: _layout.tsx 31 | <View style={{ paddingTop: insets.top }}> 32 | <Text>Callback Layout</Text> > 33 | <MaterialTopTabs> | ^ 34 | <MaterialTopTabs.Screen name="index" options={{ title: 'GitHub' }} /> 35 | <MaterialTopTabs.Screen name="gitlab" options={{ title: 'GitLab' }} /> 36 | <MaterialTopTabs.Screen name="bitbucket" options={{ title: 'Bitbucket' }} />이렇게 에러가 나는 상황인데,, 계속 해결이 안되네요ㅠ 어떤 문제인지 아시면 도움 부탁드려요
-
미해결[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
빠르게 실행해보고싶습니다.
강의를 다 듣지 않은 상태에서 빠르게 실행을 해보고 싶습니다.서버 실행, 데이터베이스 연결 이런 건 잘 했는데지도 라이브러리 다운 및 설정 등 일부 강의만 듣고 설정해서 실행하려고 하니 문제가 생기네요.필요한 라이브러리 버전 등 실행에 필요한 정보가 한꺼번에 나와있는 글은 없나요? ❗질문 작성시 꼭 참고해주세요에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다.질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github을 첨부해주세요.개발중인 OS, ReactNative, Node 버전 등의 개발환경을 알려주셔야합니다.에러메세지는 일부분이 아닌 전체 상황을 올려주세요. 일부만 보여주시면 답변이 어렵습니다. (에러 일부만 자르거나 일부만 복사하지말아주세요)
-
미해결[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
강의 수강 순서 관련
강의를 11강 이후의 백엔드 구현 먼저 듣고 앞부분으로 돌아와도 문제가 있을까요? 수업이 구성된 방식이 궁금합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
Ngrok 설치 후 forwarding Url로 연결 불가
그랩님 강의 잘 듣고 있습니다.다름이 아니라, 강의를 들으면서 Ngrok를 설치 후forwarding Url로 크롬브라우저에서 치고 들어가면,아래와 같은 에러가 떠서 어떻게 해결 해야 하는지 답변을 듣고 싶어 글을 작성하게 되었습니다.에러 화면은 아래와 같습니다. 추가적으로 위 사진하나로 해결 방법이 파악이 불가능하다면,추가로 다른 어떤 것을 첨부해야 에러를 해결 할 수 있는 점이라면, 저에게 어떤 스샷이 필요한지 말씀해주시면, 다시 스샷 올려서 질문을 이어나가겠습니다.답변 꼭 주시면 감사하겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
고농축 백엔드와 완벽한 프론트 강의 차이?
고농축 백엔드 코스의 첫 부분과 완벽한 프론트엔드 첫 부분이 겹치는 부분이 많은거 같은데, 둘 중 하나만 들어두될까요? 아니면 다른 부분이 있으니 들어야하나요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
.env 수정 후 eas update
제로초님 안녕하세요현재 게시돼있는 앱의 버전은 1.0.5버전이고, 간단한 css 수정 작업 후에 eas update로 production 채널에 업데이트를 했습니다. 이 때 .env 파일에 임시로 dev 버전 base url을 적용했었는데, 변경하는걸 까먹고 그대로 eas update를 해버려서 앱에서 업데이트를 받으니까 api가 dev 버전으로 변경돼서 다시 .env 파일을 기존 production용 base url로 변경 후 production 채널에 eas update로 배포했는데, 여전히 dev 버전 url로 나오고 있는 상황입니다. 어떻게 다시 잘못된 base url을 고칠 수 있는지 조언 주시면 감사하겠습니다..
-
해결됨웹 개발자의 연봉을 올려주는 하이브리드앱 with Expo 프레임워크
강의자료는 어디에 있나요?
강의자료는 어디에 있나요?[02-05] 헤더 옵션 심화 하는데 이미지 첨부하는 자료또는 강의에서 진행하는 소스코드를 어디서 받을 수 있는지 알려주세요.
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
클라이언트 사이드에서 세션 관련 질문
서버쪽 코드의 .env 파일을 보면 JWT이 기본적으로 20분으로 설정되어 있는 것을 보았습니다. 예를 들어 JWT이 만료가 되고 이어서 진행을 하게 된다면, AuthRoute에 해당되는 경로들을 클라이언트에서는 여전히 접근이 가능하지만 서버에서 400번대를 응답합니다. 일반적으로 앱을 사용했던 경험을 생각하면 앱의 세션은 웹에 비해서 매우 길거나 백엔드에 대한 지식은 충분하지 않아 모르겠지만, 백엔드에서 새로 접속시 연장을 하는 등의 방법이 생각 나는데요 이런 경우에 클라이언트에서는 어떻게 처리를 해야하는지 아니면 실무적으로는 어떻게 처리하는 지 궁금합니다. 혹시라도 추가로 검색해서 공부할 수 있는 키워드가 있다면 알려주실 수 있을까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
기기에서는 네트워크 에러가 납니다.
로컬에서는 분명히 문제 없이 DB에 접속이 되는데 빌드를 해서 apk파일을 만들어서 안드로이드 기기에 설치를 하면 network error가 나네요 app.json 파일에 "android": { "usesCleartextTraffic": true,이렇게 설정을 했는데도 네트워크 오류가 나는데 이것 말고 더 수정해야하는 내용이 있을까요?환경 설정은https://inf.run/6wYbc여기와 동일합니다.
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
Android 에뮬레이터 환경설정 및 실행 (for Mac) 에러 문의
강사님, npx expo start를 입력후, a를 선택하면, 아래와 같이 에러 메시지가 나옵니다. 아래 이미지와 같이 pixel 9 pro가 정상적으로 설치되어 있는데, 뭐가 잘못된건지 모르겠어서 문의드립니다.ㅠ› Opening on Android...CommandError: No Android connected device found, and no emulators could be started automatically.Connect a device or create an emulator (https://docs.expo.dev/workflow/android-studio-emulator).Then follow the instructions here to enable USB debugging:https://developer.android.com/studio/run/device.html#developer-device-options. If you are using Genymotion go to Settings -> ADB, select "Use custom Android SDK tools", and point it at your Android SDK directory.
-
미해결[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
애뮬레이터 실행 방법
개발 환경windownode 18기타wifi 인터넷 환경애뮬레이터를 띄워서 확인하고 싶은데요.npm start안드로이드 스튜디오에서 안드로이드 애뮬레이터 실행npm run andriod> matzip@0.0.1 android > react-native run-android info A dev server is already running for this project on port 8081. info Installing the app... > Task :app:installDebug Installing APK 'app-debug.apk' on 'Medium_Phone(AVD) - 16' for :app:debug Installed on 1 device. [Incubating] Problems report is available at: file:///C:/Users/hangy/Desktop/matzip/android/build/reports/problems/problems-report.html Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD SUCCESSFUL in 30s 58 actionable tasks: 9 executed, 49 up-to-date info Connecting to the development server... info Starting the app on "emulator-5554"... Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.matzip/.MainActivity }애뮬레이터 반응 없이 아래 하면 표시함. 도움 부탁드립니다. 환경 설정이 되어야 진도를 나가는데. 애뮬레이터가 아무런 반응이 없네요.좋은 강의 감사합니다.
-
미해결React Native with Expo: 제로초에게 제대로 배우기
빌드 문의드립니다.
npm ls react ─┬ @expo/vector-icons@15.0.2│ └── react@19.1.0 deduped├─┬ @react-native-community/datetimepicker@8.4.4│ └── react@19.1.0 deduped├─┬ @react-navigation/bottom-tabs@7.4.9│ └── react@19.1.0 deduped├─┬ @react-navigation/elements@2.6.5│ ├── react@19.1.0 deduped│ ├─┬ use-latest-callback@0.2.6│ │ └── react@19.1.0 deduped│ └─┬ use-sync-external-store@1.6.0│ └── react@19.1.0 deduped├─┬ @react-navigation/native@7.1.18│ ├─┬ @react-navigation/core@7.12.4│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├─┬ expo-font@14.0.9│ └── react@19.1.0 deduped├─┬ expo-image@3.0.9│ └── react@19.1.0 deduped├─┬ expo-linking@8.0.8│ └── react@19.1.0 deduped├─┬ expo-router@6.0.12│ ├─┬ @expo/metro-runtime@6.1.2│ │ └── react@19.1.0 deduped│ ├─┬ @radix-ui/react-slot@1.2.0│ │ ├─┬ @radix-ui/react-compose-refs@1.1.2│ │ │ └── react@19.1.0 deduped│ │ └── react@19.1.0 deduped│ ├─┬ @radix-ui/react-tabs@1.1.13│ │ ├─┬ @radix-ui/react-context@1.1.2│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-direction@1.1.1│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-id@1.1.1│ │ │ ├─┬ @radix-ui/react-use-layout-effect@1.1.1│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-presence@1.1.5│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-primitive@2.1.3│ │ │ ├─┬ @radix-ui/react-slot@1.2.3│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-roving-focus@1.1.11│ │ │ ├─┬ @radix-ui/react-collection@1.1.7│ │ │ │ ├─┬ @radix-ui/react-slot@1.2.3│ │ │ │ │ └── react@19.1.0 deduped│ │ │ │ └── react@19.1.0 deduped│ │ │ ├─┬ @radix-ui/react-use-callback-ref@1.1.1│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-use-controllable-state@1.2.2│ │ │ ├─┬ @radix-ui/react-use-effect-event@0.0.2│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ └── react@19.1.0 deduped│ ├─┬ @react-navigation/native-stack@7.3.28│ │ └── react@19.1.0 deduped│ ├─┬ react-native-is-edge-to-edge@1.2.1│ │ └── react@19.1.0 deduped│ ├── react@19.1.0 deduped│ └─┬ vaul@1.1.2│ ├─┬ @radix-ui/react-dialog@1.1.15│ │ ├─┬ @radix-ui/react-dismissable-layer@1.1.11│ │ │ ├─┬ @radix-ui/react-use-escape-keydown@1.1.1│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-focus-guards@1.1.3│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-focus-scope@1.1.7│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-portal@1.1.9│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-presence@1.1.5│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-primitive@2.1.3│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-slot@1.2.3│ │ │ └── react@19.1.0 deduped│ │ ├─┬ react-remove-scroll@2.7.1│ │ │ ├─┬ react-remove-scroll-bar@2.3.8│ │ │ │ └── react@19.1.0 deduped│ │ │ ├─┬ react-style-singleton@2.2.3│ │ │ │ └── react@19.1.0 deduped│ │ │ ├── react@19.1.0 deduped│ │ │ ├─┬ use-callback-ref@1.3.3│ │ │ │ └── react@19.1.0 deduped│ │ │ └─┬ use-sidecar@1.1.3│ │ │ └── react@19.1.0 deduped│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├─┬ expo-status-bar@3.0.8│ └── react@19.1.0 deduped├─┬ expo@54.0.13│ ├─┬ @expo/devtools@0.1.7│ │ └── react@19.1.0 deduped│ ├─┬ expo-asset@12.0.9│ │ └── react@19.1.0 deduped│ ├─┬ expo-keep-awake@15.0.7│ │ └── react@19.1.0 deduped│ ├─┬ expo-modules-core@3.0.21│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├─┬ react-dom@19.1.0│ └── react@19.1.0 deduped├─┬ react-native-gesture-handler@2.28.0│ └── react@19.1.0 deduped├─┬ react-native-reanimated@4.1.3│ └── react@19.1.0 deduped├─┬ react-native-safe-area-context@5.6.1│ └── react@19.1.0 deduped├─┬ react-native-screens@4.16.0│ ├─┬ react-freeze@1.0.4│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├─┬ react-native-web@0.21.1│ └── react@19.1.0 deduped├─┬ react-native-webview@13.15.0│ └── react@19.1.0 deduped├─┬ react-native-worklets@0.5.1│ └── react@19.1.0 deduped├─┬ react-native@0.81.4│ ├─┬ @react-native/virtualized-lists@0.81.4│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├── react@19.1.0└─┬ tosspayments-react-native@1.0.7 ├─┬ react-native-webview@11.26.1 │ └── react@19.1.0 deduped └── react@19.1.0 dedupednpm ls react-native├─┬ @expo/vector-icons@15.0.2│ └── react-native@0.81.4 deduped├─┬ @react-native-community/datetimepicker@8.4.4│ └── react-native@0.81.4 deduped├─┬ @react-navigation/bottom-tabs@7.4.9│ └── react-native@0.81.4 deduped├─┬ @react-navigation/elements@2.6.5│ └── react-native@0.81.4 deduped├─┬ @react-navigation/native@7.1.18│ └── react-native@0.81.4 deduped├─┬ @types/react-native@0.72.8│ └─┬ @react-native/virtualized-lists@0.72.8│ └── react-native@0.81.4 deduped├─┬ expo-constants@18.0.9│ └── react-native@0.81.4 deduped├─┬ expo-file-system@19.0.17│ └── react-native@0.81.4 deduped├─┬ expo-font@14.0.9│ └── react-native@0.81.4 deduped├─┬ expo-image@3.0.9│ └── react-native@0.81.4 deduped├─┬ expo-linking@8.0.8│ └── react-native@0.81.4 deduped├─┬ expo-router@6.0.12│ ├─┬ @expo/metro-runtime@6.1.2│ │ └── react-native@0.81.4 deduped│ ├─┬ @react-navigation/native-stack@7.3.28│ │ └── react-native@0.81.4 deduped│ ├─┬ react-native-is-edge-to-edge@1.2.1│ │ └── react-native@0.81.4 deduped│ └── react-native@0.81.4 deduped├─┬ expo-status-bar@3.0.8│ └── react-native@0.81.4 deduped├─┬ expo-symbols@1.0.7│ └── react-native@0.81.4 deduped├─┬ expo-system-ui@6.0.7│ └── react-native@0.81.4 deduped├─┬ expo-web-browser@15.0.8│ └── react-native@0.81.4 deduped├─┬ expo@54.0.13│ ├─┬ @expo/cli@54.0.11│ │ └── react-native@0.81.4 deduped│ ├─┬ @expo/devtools@0.1.7│ │ └── react-native@0.81.4 deduped│ ├─┬ expo-asset@12.0.9│ │ └── react-native@0.81.4 deduped│ ├─┬ expo-modules-core@3.0.21│ │ └── react-native@0.81.4 deduped│ └── react-native@0.81.4 deduped├─┬ react-native-daum-postcode@1.0.11│ └── react-native@0.81.4 deduped├─┬ react-native-gesture-handler@2.28.0│ └── react-native@0.81.4 deduped├─┬ react-native-reanimated@4.1.3│ └── react-native@0.81.4 deduped├─┬ react-native-safe-area-context@5.6.1│ └── react-native@0.81.4 deduped├─┬ react-native-screens@4.16.0│ └── react-native@0.81.4 deduped├─┬ react-native-webview@13.15.0│ └── react-native@0.81.4 deduped├─┬ react-native-worklets@0.5.1│ └── react-native@0.81.4 deduped├─┬ react-native@0.81.4│ └─┬ @react-native/virtualized-lists@0.81.4│ └── react-native@0.81.4 deduped└─┬ tosspayments-react-native@1.0.7 ├─┬ react-native-send-intent@1.3.0 │ └── react-native@0.81.4 deduped ├─┬ react-native-webview@11.26.1 │ └── react-native@0.81.4 deduped └── react-native@0.81.4 dedupednpm ls expo├─┬ @react-native-community/datetimepicker@8.4.4│ └── expo@54.0.13 deduped├─┬ expo-constants@18.0.9│ └── expo@54.0.13 deduped├─┬ expo-dev-client@6.0.15│ ├─┬ expo-dev-launcher@6.0.15│ │ └── expo@54.0.13 deduped│ ├─┬ expo-dev-menu-interface@2.0.0│ │ └── expo@54.0.13 deduped│ ├─┬ expo-dev-menu@7.0.14│ │ └── expo@54.0.13 deduped│ ├─┬ expo-manifests@1.0.8│ │ └── expo@54.0.13 deduped│ ├─┬ expo-updates-interface@2.0.0│ │ └── expo@54.0.13 deduped│ └── expo@54.0.13 deduped├─┬ expo-file-system@19.0.17│ └── expo@54.0.13 deduped├─┬ expo-font@14.0.9│ └── expo@54.0.13 deduped├─┬ expo-haptics@15.0.7│ └── expo@54.0.13 deduped├─┬ expo-image-manipulator@14.0.7│ ├─┬ expo-image-loader@6.0.0│ │ └── expo@54.0.13 deduped│ └── expo@54.0.13 deduped├─┬ expo-image-picker@17.0.8│ └── expo@54.0.13 deduped├─┬ expo-image@3.0.9│ └── expo@54.0.13 deduped├─┬ expo-router@6.0.12│ ├─┬ @expo/metro-runtime@6.1.2│ │ └── expo@54.0.13 deduped│ └── expo@54.0.13 deduped├─┬ expo-secure-store@15.0.7│ └── expo@54.0.13 deduped├─┬ expo-splash-screen@31.0.10│ ├─┬ @expo/prebuild-config@54.0.5│ │ └── expo@54.0.13 deduped│ └── expo@54.0.13 deduped├─┬ expo-symbols@1.0.7│ └── expo@54.0.13 deduped├─┬ expo-system-ui@6.0.7│ └── expo@54.0.13 deduped├─┬ expo-web-browser@15.0.8│ └── expo@54.0.13 deduped└─┬ expo@54.0.13 ├─┬ @expo/cli@54.0.11 │ └── expo@54.0.13 deduped ├─┬ @expo/metro-config@54.0.6 │ └── expo@54.0.13 deduped ├─┬ babel-preset-expo@54.0.4 │ └── expo@54.0.13 deduped ├─┬ expo-asset@12.0.9 │ └── expo@54.0.13 deduped └─┬ expo-keep-awake@15.0.7 └── expo@54.0.13 deduped버전을 알려주시면 질문자분과 동일한 환경에서 답변 드릴 수 있습니다. npx expo run:android 로 apk파일을 만들었는데 안드로이드 기기에서 파일을 실행하면 expo go가 설치가 되서 실행이 됩니다.apk 파일을 받아서 설치하면 바로 앱이 실행되게 할 수 있는 파일을 만들어서 다른 장소에 있는 기기에서 테스트를 하려면 어떻게 해야할까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
앱이 꺼져있을 때 푸시 알림 질문
제로초님 안녕하세요 추가적으로 질문이 있습니다.앱이 완전히 종료된 상태에서 푸시 알림을 보내려면, 백엔드단에서 직접 push 알림을 전송하는 방법밖에는 없을까요??예를 들어 각 유저마다 존재하는 작업량 분석 데이터가 변경됐을때 푸시 알림을 보낸다고 하면, 앱이 완전히 꺼져있는 상태에서는 프론트단에서는 해당 이벤트를 감지할 방법이 떠오르지 않는데, 제 생각이 맞는건지 궁금합니다..!!
-
미해결React Native with Expo: 제로초에게 제대로 배우기
ios push key
제로초님 안녕하세요 IOS 푸시 알림을 위해 확인해보니 eas 대시보드의 Credentials탭에 아직 push key가 존재하지 않아서eas credentials -p ios -> production -> Push Notifications: Manage your Apple Push Notifications Key -> Set up your project to use Push Notifications -> Generate a new Apple Push Notifications service key? Yes 를 통해 생성하고 Credentials에서 생성된 거 까지 확인했습니다. eas build 한달 15번 빌드 횟수를 차감시키지 않기 위해서 XCode에서 직접 development build하려고하는데, 로컬에서 빌드 시에 push key가 적용되게 하려면 어떻게 해야될까요..??
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
[5-13] useLikePost 쿼리 구현 중 Tanstack Query 관련 질문
optimistic-updates#updating-a-single-todo 문서를 보면 useMutation - onError의 모든 parameter err, newPost (variables), onMutationResult, context와 onSettle의 모든 parameter를 사용해서 구현하는데, client를 queryClient를 가져와서 쓰는 강의 중 예제와, 문서 내의 내용으로 구현한 아래의 주석처리된 구현은 어떤 차이가 있을까요? onError: (err, newPost, context) => { queryClient.setQueryData( [queryKeys.POST, queryKeys.GET_POST, context?.newPost?.id], context?.previousPost, ); }, // onError: (err, newPost, onMutationResult, context) => { // context.client.setQueryData( // [ // queryKeys.POST, // queryKeys.GET_POST, // onMutationResult?.previousPost?.id, // ], // onMutationResult?.previousPost, // ); // }, onSettled: (data, error, variables, context) => { queryClient.invalidateQueries({ queryKey: [queryKeys.POST, queryKeys.GET_POST, variables], }); queryClient.invalidateQueries({ queryKey: [queryKeys.POST, queryKeys.GET_POSTS], }); }, // onSettled: (data, error, variables, onMutationResult, context) => { // context.client.invalidateQueries({ // queryKey: [queryKeys.POST, queryKeys.GET_POST, variables], // }); // context.client.invalidateQueries({ // queryKey: [queryKeys.POST, queryKeys.GET_POSTS], // }); // },a
-
미해결React Native with Expo: 제로초에게 제대로 배우기
Expo-blur unimplement 오류
npx expo install expo-blur 실행 후 <BlurView> 컴포넌트를 사용하려고 하는데 런타임에서는 에러가 안지만 화면에서 위같이 unimplement 에러가 납니다. tsconfig를 수정해야 해결된다고 찾긴 했는데 { "extends": "expo/tsconfig.base", "compilerOptions": { "strict": true, "paths": { "@/*": [ "./*" ] } }, "include": [ "**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts" ] } 아래는 제 루트 tsconfig.json 파일입니다.어떻게 수정하면 될까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
안드로이드 애니메이션 관련 질문
// app.config.ts const config: ExpoConfig = { .... android: { adaptiveIcon: { backgroundColor: '#000000', foregroundImage: './src/assets/images/aline-black.png', }, ... }, splash: { image: './src/assets/images/aline-black.png', imageWidth: 200, resizeMode: 'contain', backgroundColor: '#000000', }, plugins: [ [ 'expo-splash-screen', { image: './src/assets/images/aline-black.png', imageWidth: 200, resizeMode: 'contain', backgroundColor: '#000000', }, ], ... ] }프로덕션 빌드된 앱에서 테스트 해보니까 애니메이션 이미지를 원형으로 지정하지 않았는데도,안드로이드에서는 첫번째 사진처럼 원형으로 보이다가 제가 지정한 이미지인 두번째 사진으로 넘어가고 나서 스플래쉬가 사라지는데, 원형으로 나오는 이 기본 동작을 막을 방법이 없을까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
안드로이드 공개 테스트 앱 관련 질문
제로초님 안녕하세요! 질문이 많네요 위 사진과 같이 공개 테스트 앱을 출시 완료했고, 기기 카탈로그에서도 제가 테스트하는 안드로이드 기기가 지원됨을 확인했습니다. 그런데 Android에서 참여, 웹에서 참여 링크 두개다 접속하면,구글 플레이 스토어 앱이 열리면서 위 사진과 같이 "항목을 찾을 수 없습니다." 라는 메시지만 나오고 앱을 다운로드 할 수 없는 상황입니다 ㅠ해결방법을 아신다면 알려주시면 감사하겠습니다!