inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

애니메이션 부분 설명

미해결

React Native with Expo: 제로초에게 제대로 배우기

애니메이션 부분 복잡해서 수강노트에 단계별로 설명해주신다고 했는데 안보이네요..!! 혹시 어디로 들어가야 볼 수 있을까요?!

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
이영훈 댓글 2 좋아요 0 조회수 102

expo로 구현할 수 없는 기능들에는 어떤게 있을까요??

미해결

React Native with Expo: 제로초에게 제대로 배우기

안녕하세요 강사님! 현재 회사에서 사이드 프로젝트로 리액트 네이티브 프로젝트를 혼자서 진행해야 되는 상황이라 강의를 듣고 있습니다. 아직 기획만 나온 상황이고 디자인은 전혀 나오지 않은 상태입니다. 만약에 구현하다가 expo에서는 구현할 수 없는 기능이 생길수도 있는 부분에 대해서 미리 인지하고 싶은데, 혹시 expo로 구현할 수 없는 기능들에는 어떤 것들이 있는지 미리 알 수 있는 방법이 있을까요..?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
댓글 2 좋아요 0 조회수 125

배포후 알람이 정상작동안합니다.

미해결

React Native with Expo: 제로초에게 제대로 배우기

안드로이드 환경에서 apk를 만들어서 다른사람의 폰에 깔아보았습니다 apk의 pushtoken을 서버에 잘 담아서 보냈으나, expogo가 깔려있는앱에는 알람이 정상적으로 오지만, 깔려있지 않은앱에서는 알람이 안옵니다 어떻게 해결할수있을까요? 백엔드코드 전달드립니다. // 푸시 알림 전송 함수 정의 function sendPushNotification($expoPushToken, $title, $body, $data = []) { $message = [ 'to' => $expoPushToken, 'sound' => 'default', 'title' => $title, 'body' => $body, 'data' => $data, ]; $ch = curl_init('https://exp.host/--/api/v2/push/send'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Accept: application/json', 'Accept-Encoding: gzip, deflate', 'Content-Type: application/json', ]); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($message)); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode != 200) { throw new Exception('HTTP 오류! 상태 코드: ' . $httpCode); } $result = json_decode($response, true); if ($result['data']['status'] === 'error') { throw new Exception('푸시 알림 전송 오류: ' . json_encode($result['data']['details'])); } return $result['data']['id']; } 에러내용 : {"error":"InvalidCredentials","fault":"developer"}

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
최우뚝 댓글 4 좋아요 0 조회수 244

안녕하세요 제로초님 CSS관련 질문 드립니다

미해결

React Native with Expo: 제로초에게 제대로 배우기

안녕하세요 제로초님 CSS 관련해서 질문 드립니다. expo에서는 styleSheet와 react-native-safe-area-context 이용해서 css 작업하는걸로 강의에서 설명해 주셨는데 NativeWind(TailwindCss)를 모바일에서 사용하는건 어떻게 생각하시는지 궁금합니다 또, gluestack ui 라이브러리도 있는데 이것도 혹시 아시면 같이 이야기 해주시면 감사하겠습니다! StyleSheet 사용해서 하는게 나중에 최적화가 더 잘 될지 그런것도 고민이 되긴 합니다

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
  • nativewind
  • gluestack
JaeWon Kim 댓글 2 좋아요 2 조회수 110

상품 페이지에서 문의 글 작성시 에러에 대하여

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

문의글 조회에는 문제가 없지만, 회원 로그인 후 상품 페이지의 문의글을 작성시 다음과 같은 에러가 발생합니다.

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
이승엽 댓글 2 좋아요 0 조회수 66

여러 객체를 상태 관리하는 방법에 대한 질문

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의에서 여러 객체에 대한 상태를 관리할 때, CursorpatnationBase라는 상태를 기반으로 관리할 수 있다는 것을 이해했습니다. 그런데, 만약 list의 크기가 짧아서 페이징을 필요로 하지 않는 케이스는, Map<String, Object> 타입을 통해 상태 관리를 하는 것도 괜찮은 방법일까요?

  • flutter
  • 하이브리드-앱
helloworld 댓글 2 좋아요 0 조회수 104

[04-05] https에서의 iframe (군대 사지방)

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

현재 군대 사지방에서 공부를 하고 있는 군인입니다. 여기서 깃허브 코드스페이스로 개발 공부를 하고 있습니다. iframe을 사용했을 때, live server로 포트를 열어 html을 열면 https 주소로 이동되고 iframe은 작동되지 않습니다. vscode 다운로드가 불가능해 로컬 환경에서 돌릴 수가 없는 상황인데 해결방법이 있을까요?

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
ohwm 댓글 3 좋아요 0 조회수 175

구글로그인은 따로 찍으실 계획없으신가요?

미해결

React Native with Expo: 제로초에게 제대로 배우기

expo go에서 만들고있는데 구글 승인 오류문구가 계속 나오네요 400에러인데 해결하기 어렵습니다 ㅠ.ㅠ

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
지환 댓글 2 좋아요 0 조회수 338

EAS 로컬빌드시 환경변수가 가져와지지 않습니다.

미해결

React Native with Expo: 제로초에게 제대로 배우기

eas build --platform android --profile preview --local --local 플래그로 로컬에서 빌드해서 테스트 해보고 있습니다. EXPO_PUBLIC_FRONT_URL EXPO_PUBLIC 접두사를 붙여서 환경변수 넣어두었고 Alert.alert("uri", process.env.EXPO_PUBLIC_FRONT_URL); 위처럼 Alert 로 체크해보니 비어있었습니다 로컬로 빌드할시에 더 셋팅해줘야 하는 부분이 있을까요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
grs0412 댓글 1 좋아요 0 조회수 188

웹뷰내에서 카메라 접근이 가능할까요?

해결됨

React Native with Expo: 제로초에게 제대로 배우기

aws face liveness라는 서비스를 써야하는데 리액트, 코틀린, 스위프트만 지원하는듯 합니다. 네이티브 단은 건들 엄두가 안나서 웹뷰로 띄워서 카메라를 연결하려고 하는데 이론적으로 가능할까요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
grs0412 댓글 2 좋아요 0 조회수 117

서브밋할때 어떻게해야하나요

미해결

React Native with Expo: 제로초에게 제대로 배우기

eas submit --platform ios Select a build from EAS ❯ Provide a URL to the app archive Provide a path to a local app binary file Provide a build ID to identify a build on EAS 이렇게 뜹니다 어떻게해야하나요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
최우뚝 댓글 1 좋아요 0 조회수 79

Expo 패키지 혹은 React native 패키지를 사용하는 기준

미해결

React Native with Expo: 제로초에게 제대로 배우기

안녕하세요 Expo 패키지 혹은 React native 패키지를 사용하는 기준이 무엇인가요? 예를 들어 Image도 react native 패키지로도 가져올 수 있고 expo로도 가져올 수 있는데 강의에서는 expo를 사용하셨더라구요 혹시 그 이유를 알 수 있을가요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
YU NA Joe 댓글 1 좋아요 0 조회수 116

탭 전환 안됨

미해결

React Native with Expo: 제로초에게 제대로 배우기

강의 잘 따라가다가 로그인까지 성공했는데 20강부터 갑자기 add,activity,user탭을 눌러도 전환이 안돼요.. home이랑 search만 전환이 됩니다. 에러도 안떠서 어디부터 잘못된건지 감이 안 오는데 어떤 파일을 확인해야 할까요? app/(tabs)_layout.tsx 입니다 import { Ionicons } from "@expo/vector-icons"; import { type BottomTabBarButtonProps } from "@react-navigation/bottom-tabs"; import { Tabs, useRouter } from "expo-router"; import { useContext, useRef, useState } from "react"; import { Animated, Modal, Pressable, Text, TouchableOpacity, View } from "react-native"; import { AuthContext } from "../_layout"; export default function TabLayout(){ const router=useRouter(); const [isLoginModalOpen,setIsLoginModalOpen]=useState(false); const {user}=useContext(AuthContext); const isLoggedIn = !!user; const openLoginModal=()=>{ setIsLoginModalOpen(true); }; const closeLoginModal=()=>{ setIsLoginModalOpen(false); }; const toLoginPage= ()=>{ setIsLoginModalOpen(false); router.push("/login"); } const AnimatedTabBarButton=({ children, onPress, style, ...restProps }: BottomTabBarButtonProps)=>{ const scaleValue=useRef(new Animated.Value(1)).current; const handlePressOut=()=>{ Animated.sequence([ Animated.spring(scaleValue,{ toValue:1.2, useNativeDriver:true, speed:200, }), Animated.spring(scaleValue,{ toValue:1, useNativeDriver:true, speed:200, }), ]).start(); } return ( <Pressable onPress={onPress} onPressOut={handlePressOut} style={[{ flex: 1, justifyContent: "center", alignItems: "center" }, style]} android_ripple={{ borderless: false, radius: 0 }} > <Animated.View style={{ transform: [{ scale: scaleValue }] }}> {children} </Animated.View> </Pressable> ); } return ( <> <Tabs backBehavior="history" screenOptions={{ headerShown:false, tabBarButton: (props)=><AnimatedTabBarButton {...props}/>, }} > <Tabs.Screen name="(home)" options={{ tabBarLabel:()=>null, tabBarIcon:({focused})=>( <Ionicons name="home" size={24} color={focused ? "black":"gray"}/> ), }} /> <Tabs.Screen name="search" options={{ tabBarLabel:()=>null, tabBarIcon:({focused})=>( <Ionicons name="search" size={24} color={focused ? "black":"gray"}/> ), }}/> <Tabs.Screen name="add" listeners={{ tabPress:(e)=>{ e.preventDefault(); if(!isLoggedIn){ openLoginModal(); } } }} options={{ tabBarLabel:()=>null, tabBarIcon:({focused})=>( <Ionicons name="add" size={24} color={focused ? "black":"gray"}/> ), }} /> <Tabs.Screen name="activity" listeners={{ tabPress:(e)=>{ e.preventDefault(); if(!isLoggedIn){ openLoginModal(); } }, }} options={{ tabBarLabel:()=>null, tabBarIcon:({focused})=>( <Ionicons name="heart-outline" size={24} color={focused ? "black":"gray"}/> ), }}/> <Tabs.Screen name="[username]" listeners={{ tabPress:(e)=>{ e.preventDefault(); if(!isLoggedIn){ openLoginModal(); } }, }} options={{ tabBarLabel:()=>null, tabBarIcon:({focused})=>( <Ionicons name="person-outline" size={24} color={focused ? "black":"gray"}/> ), }}/> <Tabs.Screen name="(post)/[username]/post/[postID]" options={{ href:null, }} /> </Tabs> <Modal visible={isLoginModalOpen} transparent={true} animationType="slide" > <View style={{ flex:1, justifyContent:"flex-end", backgroundColor:"rgba(0,0,0,0.5)" }}> <View style={{backgroundColor:"white",padding:20}}> <Pressable onPress={toLoginPage}> <Text>Login Modal</Text> </Pressable> <TouchableOpacity onPress={closeLoginModal}> <Ionicons name="close" size={24} color='#555'/> </TouchableOpacity> </View> </View> </Modal> </> ); }

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
khs1003k 댓글 2 좋아요 0 조회수 113

ios환경에서 어떻게 해야되는 지 모르겠어요

해결됨

React Native with Expo: 제로초에게 제대로 배우기

ios환경에서 어떻게 해야되는 지 알려주시면 감사하겠습니다.

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
rlazmfdl 댓글 2 좋아요 0 조회수 155

Expo Router 사용 시 query-string.stringify is not a function 오류가 발생하는 이유와 대응 방법 문의드립니다

미해결

React Native with Expo: 제로초에게 제대로 배우기

안녕하세요 제로초님 강의 잘 보고 있습니다. 카카오 로그인을 구현하는 중에 문제가 생겨 어찌해서 해결했는데 해결된 이유가 궁금해서 질문드립니다! 1. 에러로그 TypeError: queryString.stringify is not a function 이라는 에러가 나서 찾아보니 query-string 버전 충돌이 있는 것 같아 query-string을 @7.1.3 버전으로 설치하니 해결이 되었습니다. pnpm-locl.yml을 보니 query-string을 아래와 같이 두 버전을 같이 쓰고 있었습니다. query-string@7.1.3: dependencies: decode-uri-component: 0.2.2 filter-obj: 1.1.0 split-on-first: 1.1.0 strict-uri-encode: 2.0.0 query-string@9.2.0: dependencies: decode-uri-component: 0.4.1 filter-obj: 5.1.0 split-on-first: 3.0.0 2. 사용하고 있는 패키지들 1) @react-native-kakao/core @react-native-kakao/core@2.4.0(expo@53.0.10(@babel/core@7.27.4)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.0.14)(react@19.0.0)))(react-native-webview@13.13.5(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: crypto-js: 4.2.0 query-string: 9.2.0 react: 19.0.0 2) @react-navigation '@react-navigation/core@7.10.0(react@19.0.0)': dependencies: '@react-navigation/routers': 7.4.0 escape-string-regexp: 4.0.0 nanoid: 3.3.11 query-string: 7.1.3 위의 에러로그에서와 같이 tab layout에 접근하려 할 때 react-navigation의 getPathFromState.js에서 query-string의 import에서 문제가 발생하는 것 같았는데 정확히 어떤 문제인지 잘 모르겠네요.. lockfile과 node_modules를 삭제해도 동일하게 query-string은 두가지 버전으로 설치되었고 만약 package.json에 query-string을 7버전으로 명시적으로 설치하지 않으면 탭 레이아웃의 모든 페이지들에서 저 오류가 납니다. 일단 query-string 패키지 설치를 해서 오류를 해결하긴 했지만 정확한 이유를 모르겠어서 질문드립니다 ! 아래는 GPT에게 질문시 답변한 내용입니다. GPT 답변 내용 query-string@9.x 는 ESM-only라서 CommonJS 방식의 import ( import * as queryString ) 시 undefined 가 반환됨 React Navigation 내부의 getPathFromState.ts 에서 queryString.stringify(...) 호출 시 에러 발생 의존성 충돌로 인해 런타임 크래시가 발생하는 것으로 보임 ❓ 질문드리고 싶은 점 이러한 충돌을 예방하기 위한 공식적인 방법은 무엇인가요? (예: pnpm.overrides 로 강제 버전 고정) 혹시 다른 라이브러리에서도 이와 같은 ESM-CJS 충돌을 방지하기 위한 일반적인 best practice가 있을까요? // package.json "dependencies": { "@expo/vector-icons": "^14.1.0", "@react-native-async-storage/async-storage": "2.1.2", "@react-native-kakao/core": "^2.4.0", "@react-native-kakao/user": "^2.4.0", "@react-navigation/bottom-tabs": "^7.3.10", "@react-navigation/elements": "^2.3.8", "@react-navigation/native": "^7.1.6", "@rneui/themed": "4.0.0-rc.8", "@supabase/supabase-js": "^2.49.9", "expo": "~53.0.9", "expo-blur": "~14.1.4", "expo-build-properties": "~0.14.6", "expo-constants": "~17.1.6", "expo-dev-client": "~5.1.8", "expo-font": "~13.3.1", "expo-haptics": "~14.1.4", "expo-image": "~2.1.7", "expo-linking": "~7.1.5", "expo-router": "~5.0.6", "expo-splash-screen": "~0.30.8", "expo-status-bar": "~2.2.3", "expo-symbols": "~0.4.4", "expo-system-ui": "~5.0.7", "expo-web-browser": "~14.1.6", "query-string": "^7.1.3", "react": "19.0.0", "react-dom": "19.0.0", "react-native": "0.79.2", "react-native-gesture-handler": "~2.24.0", "react-native-reanimated": "~3.17.4", "react-native-safe-area-context": "5.4.0", "react-native-screens": "~4.11.1", "react-native-url-polyfill": "^2.0.0", "react-native-web": "~0.20.0", "react-native-webview": "13.13.5", "zustand": "^5.0.5" },

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
로그브릿지 댓글 1 좋아요 3 조회수 212

탭바에서 href:null 동작 안됨

미해결

React Native with Expo: 제로초에게 제대로 배우기

버전 npm ls react 19.0.0 npm ls react-native 0.79.2 npm ls expo 53.0.9 안녕하세요 다크모드 UI를 깃허브에서 복사했는데 전까지 잘 되던 app/(tabs)/_layout.tsx 에서 post 탭을 안보이게 하는 코드가 제대로 작동하지 않습니다. 기기에서도 (post)/[us... 경로의 탭이 보이고 있습니다. 그 뒤로 제 예전 코드로 다시 돌려봐도 탭이 사라지지 않고 계속 보이는데, 어디서부터 꼬인건지 감이 안잡힙니다ㅠ 문제가 발생한 걸로 추측되는 코드입니다. <Tabs.Screen name="(post)/[username]/post/[postID]" options={{ href: null, }} />

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
pearl 댓글 2 좋아요 0 조회수 82

`Expo Go` 앱이 보이지 않아요

미해결

React Native with Expo: 제로초에게 제대로 배우기

처음에 제로초님 따라한다고 pnpm build --platform android --profile development 로 한 번 실행을 했습니다. 이 때 go 를 설치하라는 말이 안나와서 '뭔가 이상하다' 했는데요. 이후에는 pnpm run android 로 켜면 development 로 켜집니다. 신기한 건 s 를 누르면 expo go 모드로는 잘 넘어가요. 그런데 Expo Go 앱이 보이지 않아 빌드를 선택해볼 수 가 없습니다. .

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
gandolkim 댓글 2 좋아요 0 조회수 269

강의코드

미해결

React Native with Expo: 제로초에게 제대로 배우기

FlatList로 게시글 작성 모달 강의의 시작과 같은 코드를 어디서 받을 수 있나요? 스크롤해서 보이는 링크에는 완성된 전체 코드만 있어서요. 일일이 지우고 따라치려해도 나머지 부분이 완성되어 있어서 애뮬레이터에서 진행상황을 볼 수가 없어요...

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
khs1003k 댓글 2 좋아요 0 조회수 165

장바구니 결제하기 응답이 500이 옵니다.

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

장바구니 화면까지는 다 정상인데 결제하기 하면 500에러가 발생합니다... 이틀동안 찾았는데 원인을 모르겠습니다...ㅠㅠㅠㅠ https://github.com/DongMinE/Flutter/tree/main/actual 레포지토리 링크인데 도와주실 수 있으실까요...? 요즘 질문이 많아 죄송합니다...마지막 강의까지 잘 듣겠습니다. 일단 강의는 계속 듣겠습니다!!

  • flutter
  • 하이브리드-앱
anwjr41 댓글 2 좋아요 0 조회수 131

커서 강의 질문

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

선생님 프론트엔드 커서AI활용 코스의 경우에는 커서AI로 일일이 바이브 코딩하는건가요?? AI로 코딩할일이 뭐가 있을지 궁금합니다.

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
코드스타크 댓글 2 좋아요 0 조회수 123

인기 태그

인프런 TOP Writers

주간 인기글