
앱개발 종합반 내용 포함
expo eject 명령어로 Expo 환경을 완전히 걷어 낸 다음에 순수 리액트 네이티브로 개발 진행Expo가 적합👉 초기에 앱 기획할 때, 어떤 기능이 필요한지 나열한 다음, Expo에 해당 기능을 지원하는지 안 하는지 먼저 살펴보고, 네이티브단 코드를 건드려야 하는 기능이 있다면 순수 리액트 네이티브로 개발을 진행 (앱의 경중 측면도 고려해야 함)

npm으로 설치해서 개발 환경을 구축해야 함
- Expo 명령어 도구 설치
npm install -g expo-cli
- Expo 가입 및 로컬에 Expo 계정 세팅
cmdexpo login --username "Expo 사이트 가입당시 입력한 name"
- Expo 프로젝트 생성 및 명령어
expo init wegram
expo start

prettier규칙 ⇒.prettierrc파일을app.js위치에 만들기

{
"semi": true,
"singleQuote": true
}
vscode user setting

{
"editor.formatOnSave": true,
"javascript.format.enable": false,
"window.zoomLevel": 2,
"explorer.confirmDelete": false,
"workbench.iconTheme": "material-icon-theme",
"editor.unusualLineTerminators": "off",
"explorer.confirmDragAndDrop": false,
"prettier.jsxBracketSameLine": true
}
App.jsx로 확장자 변경

💡 jsx : <> 태그 문법과 자바스크립트 문법을 동시에 사용
💡 vscode 유용한 도구
아이콘으로 파일 쉽게 구분해주는 도구

괄호 열고 닫고 도와주는 도구

JSXApp.js는 JSX 문법으로 그려져 준비된 화면을 반환return은 작성한 JSX 문법으로 구성된 화면을 앱상에 보여주는 역할(1) 모든 태그는 가져와서 사용함
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
<View>
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
);
}
(2) 태그는 항상 그냥 닫는 태그와 자체적으로 닫는 태그를 구분해서 사용
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
//<View>는 결국 두번째 줄 밑에 </View>로 닫히면서 본인 영역을 갖습니다
<View>
<Text>Open up App.js to start working on your app!</Text>
//statusBar는 본인 스스로 닫는 태그이므로 다음과 같이 사용이 가능합니다.
<StatusBar style="auto" />
</View>
);
}
(3) 모든 엘리먼트는 감싸는 최상위 엘리먼트가 있어야 함
< >import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
//App.js가 렌더링 하고 엘리먼트는 결국
//Text와 StatusBar엘리먼트를 감싸고 잇는 View입니다.
export default function App() {
return (
<View>
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
);
}
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
//View 엘리먼트 밖에 StatusBar가 나와 있으므로 엘리먼트 전체를 감싸는 엘리먼트가
//없어서 오류가 납니다.
export default function App() {
return (
<View>
<Text>Open up App.js to start working on your app!</Text>
</View>
<StatusBar style="auto" />
);
}
</> 라는 의미없는 엘리먼트로 감싸서 렌더링 할 수도 있음
import { StatusBar } from 'expo-status-bar';
import React from 'react';*import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
<>
<View>
<Text>Open up App.js to start working on your app!</Text>
</View>
<StatusBar style="auto" />
</>
);
}
(4)
return에 의해 렌더링 될 땐, 항상 소괄호로 감싸져야 한다.
(5) JSX 문법 밖에서의 주석과 안에서의 주석은 다르다.
//JSX밖에서의 주석
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
//JSX밖에서의 주석
export default function App() {
//JSX밖에서의 주석
return (
//JSX 밖에서의 주석
<View style={styles.container}>
{/*
JSX 문법 안에서의 주석
*/}
<Text>Open up App.js to start working on your app!</Text>
<StatusBar style="auto" />
</View>
);
}
//JSX밖에서의 주석
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});