expo publish
npm install -g expo-cli
expo init 프로젝트명
npm start
command + B'
, 안드로이드는 command + 'M'
임 (실제 디바이스에서 보려면 흔들면 나옴): HTML의 div와 같은 역할
: View 대신, SafeAreaView를 사용하면, notch 부분에 콘텐츠가 겹쳐보이는 문제 방지 가능 (자동으로 padding 등을 넣어줌) => iOS에서만 적용, android X
: NumberOfLines ={2} 속성은 보여지는 텍스트 라인의 줄 수를 정할 수 있음
:(Local) <Image source={require('./assets/favicon.png')}></Image>
식으로 이미지 삽입 가능/ require는 reference 값을 변환하여 반환(위 경우, assets 폴더내에 위치한 숫자(2)를 반환)
:(Remote) <Image source={{ width: 200, height: 300, uri: 'https://picsum.photos/200/300', }} />
식으로 작성
: Local의 경우 require 함수가 자동으로 metadata를 읽어와서 width와 height를 따로 설정할 필요가 없지만, uri로 가져오는 경우는 반드시 width와 height 값을 입력해야 함
: title 속성(string)을 반드시 넣어야 함
: Text component는 속성을 가지나, image component는 가지고 있지 않으므로, Tochables component를 활용하는 것임
: TouchableWithoutFeedback은 사용자에게 터치에 대한 피드백을 주지 않음
:TouchableOpacity는 사용자에게 터치될 때 opacity가 변화하는 걸 보여주는 태그
:TouchableHeighlight는 터치될 때 약간 어둡게 깜박이는 효과 보여줌
: alert 창을 customizing 가능
: Alert.prompt를 선택하면 prompt창 띄울 수 있음
: 예를 들어, onPress{() => }
식으로 터치 이벤트 붙일 수 있음
paddingTop: Platform.OS === 'android' ? 50 : 0,
식으로 하면, OS가 android일 경우에만 padding top 값을 부여할 수 있음paddingTop: Platform.OS === 'android' ? StatusBar.currrentHeight : 0,
식으로, StatusBar 모듈을 import하여, 기기별로 다른 statusbar의 높이를 자동 계산하여 padding 값을 부여할 수 있음import { useDimensions, useDeviceOrientation, } from '@react-native-community/hooks';
를 통해, 가져온 objects를 이용하여, 감지할 수 있음