SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
React Native 프로젝트 시작부터 공유
컴포넌트 만들기까지
박태성
@geoseong by Slack
목차
● $ react-native init
○ 프로젝트 생성
○ Flexbox Styling
○ Flow check
● 공유 컴포넌트 만들기
● Running Android/iOS Simulator
● Android APK 만들기
● Let’s create React-Native-Seoul ourselves
$ react-native init
react-native
프로젝트 생성
CLI 입력
$ react-native init [프로젝트명]
ex) $ react-native init AnnyeongRN
참고문서
Getting Started -> Building Projects with Native Code
<App.js>
import React, { Component } from 'react';
import { Text, View } from 'react-native';
export default class App extends Component {
render() {
return (<View style={{flex: 1}}>
<Text style={{textAlign: 'center',}}>
AnnyongRN!
</Text>
</View>)
}
}
대략적인 실행 원리
● index.js에서 시작
● AppRegistry.registerComponent의 두번째
인자 부분의 클래스를 참조
● index.js에서 참조하는 해당 클래스에서
본격적인 코딩이 이루어짐
react-native
프로젝트 생성
<index.js>
import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('AnnyeongRN', () => App);
Styling : flexbox
flexbox
일반 웹의 css에서는 display: flex 로 사용
flex
● DOM 컨테이너들의 너비를 채워줌 . 숫자로 표현.
● 1 이면 flex 속성 할당된 컨테이너 각 비율에 맞게 할당
● 2 이면 컨테이너 각 비율 x2
justifyContent
● 세로정렬. 양쪽균등정렬과 좌우정렬 가능
alignItems
● 가로정렬. 양쪽균등정렬과 좌우정렬 가능
공식문서
http://facebook.github.io/react-native/docs/0.55/flexbox
flex개념을 잡아주는 게임 사이트
flexboxfroggy.com
참고문서
https://medium.com/react-native-training/getting-started-with-react-nativ
e-and-flow-d40f55746809
https://flow.org/en/docs/types/
● 프로젝트 테스트에 앞서 코드의 오타나 타입 체크를
잡아줌
● eslint의 .eslintrc와 비슷한 기능을 한다고 함
● 그렇지만 실제 flow 를 돌려보려면 패키지 별도
설치작업이 필요.
패키지 설치 & 세팅
1. Package.json에 scripts에 "flow": "flow" 를 추가한다
2. flow-bin을 설치한다. 버전은 맞춰야하는것인지
모르겠지만 .flowconfig 내용 최하단에 있는 version에 맞춰
설치해 본다
$ npm i flow-bin@0.67.0 --save-dev <-- 근데 이거 안된다.
$ npm i flow-bin@0.67.1 --save-dev <-- 이걸로 된다..
3. $ npm run flow
Flow check
공유 컴포넌트 만들기
● 버튼을 공유 컴포넌트로 만들어서
재사용할 예정
● cm단위를 기준으로 다른 단위로 변환시켜
주는 모바일앱 제작
● 단위 참고했던 사이트 :
http://gofind.co.kr/Yahoo/unit_con.htm
● 실습코드 의 대략적인 형태는 우측과 같음
● 완성된 코드 :
https://github.com/react-native-seoul/Meetup/blob/master/2.RN_f
rom_start_to_make_shared_component/sample_AnnyeongRN/App.js
import React, { Component } from 'react';
import { 컴포넌트 목록 } from 'react-native' ;
type shareProps = { 변수: 타입,};
class [공유컴포넌트명 ] extends Component <shareProps > {
render () {
return (
<컴포넌트 style={styles.속성}>{this.props.변수}</컴포넌트>
);
}
}
type State = { 변수: 타입,};
export default class App extends Component <null, State> {
constructor (props: any) {
super(props);
this.state = { key: value };
}
커스텀펑션 = (param: string) => {
...
}
render () { return ( <컴포넌트 style={ styles.속성}></컴포넌트> ) }
}
const styles = StyleSheet .create({
wrapper: { flex: 1, },
});
공유 컴포넌트
만들기
- 단위 환산기 모바일앱 만들기
Running Android/iOS Simulator
시뮬레이터준비 - 참고문서
https://facebook.github.io/react-native/docs/getting-started
공통
1. $ brew install node
2. $ brew install watchman
3. $ npm install -g react-native-cli
Android Android Studio 다운로드
iOS Xcode 다운로드
시뮬레이터돌려보기
iOS $ react-native run-ios
RN 시뮬레이터
돌려보기
** No bundle URL present 메시지가 뜬다면...
다른 터미널에서 $ react-native start 를 먼저 실행 후
시도해 본다.
시뮬레이터돌려보기
Android
1. Android Studio에서 Emulator를 미리 실행을 해놔야
한다.
기기연결 확인방법 : $ adb devices
2. $ react-native run-android
처음으로Android 시뮬레이터돌리기
1. Android Studio 실행
2. 새 Empty 프로젝트 만들기
3. 상단메뉴 Tools -> Android -> AVD Manager -> Virtual
Device 생성 -> [원하는 기기] -> x86 images ->
Marshmellow System Image 다운로드
4. 다운로드 후 추가된 기기의 재생버튼 클릭
5. $ react-native run-android
RN 시뮬레이터
돌려보기
Android APK 만들기
<android/app/build.gradle>
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
Android APK 만들기
https://facebook.github.io/react-native/docs/signed-apk-android.html
Generating a signing key
[프로젝트폴더]/android/app 경로에서..
$ keytool -genkey -v -keystore my-release-key.keystore -alias
my-key-alias -keyalg RSA -keysize 2048 -validity 10000
android/gradle.properties
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
android/app/build.gradle
우측 코드 참고
Generating the release APK
$ cd android && ./gradlew assembleRelease
Testing the release build of your app
$ react-native run-android --variant=release
Let’s create React-Native-Seoul ourselves
React Native Seoul 홈페이지
커뮤니티
https://reactnativeseoul.org/
기술로그
https://react-native.co.kr/
발표자 모집!!!!!!
● 함께 스터디하고 경험을 공유할 분을 모집합니다
● JS 사용자라면 RN 초보자라도 의지만 있다면 할 수 있다!
● React-Native-Seoul 경험자 버프를 받을 수 있는 기회
Question

Contenu connexe

Tendances

AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSAngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSKenneth Ceyer
 
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End우현 김
 
Angular 2 rc5 조사
Angular 2 rc5 조사Angular 2 rc5 조사
Angular 2 rc5 조사Rjs Ryu
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기jiseob kim
 
Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발Jin wook
 
[제3회 스포카콘] SQL 쿼리 최적화 맛보기
[제3회 스포카콘] SQL 쿼리 최적화 맛보기[제3회 스포카콘] SQL 쿼리 최적화 맛보기
[제3회 스포카콘] SQL 쿼리 최적화 맛보기Jonghun Park
 
Angular2 톺아보기
Angular2 톺아보기 Angular2 톺아보기
Angular2 톺아보기 철민 배
 
URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 YoungSu Son
 
(탑크리에듀_스프링/Spring/마이바티스/Mybatis/구로IT실무학원추천)#3.스프링프레임워크 & 마이바티스 (Spring Framew...
(탑크리에듀_스프링/Spring/마이바티스/Mybatis/구로IT실무학원추천)#3.스프링프레임워크 & 마이바티스 (Spring Framew...(탑크리에듀_스프링/Spring/마이바티스/Mybatis/구로IT실무학원추천)#3.스프링프레임워크 & 마이바티스 (Spring Framew...
(탑크리에듀_스프링/Spring/마이바티스/Mybatis/구로IT실무학원추천)#3.스프링프레임워크 & 마이바티스 (Spring Framew...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기Kenneth Ceyer
 
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java ProjectJi-Woong Choi
 
Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입승용 윤
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.장현 한
 
sap Abap File Save (Cl Gos Manager)
sap Abap File Save (Cl Gos Manager)sap Abap File Save (Cl Gos Manager)
sap Abap File Save (Cl Gos Manager)jung_se_hun
 

Tendances (18)

AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSAngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJS
 
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
 
5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)
 
Angular 2 rc5 조사
Angular 2 rc5 조사Angular 2 rc5 조사
Angular 2 rc5 조사
 
I os 1
I os 1I os 1
I os 1
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기
 
Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발
 
[제3회 스포카콘] SQL 쿼리 최적화 맛보기
[제3회 스포카콘] SQL 쿼리 최적화 맛보기[제3회 스포카콘] SQL 쿼리 최적화 맛보기
[제3회 스포카콘] SQL 쿼리 최적화 맛보기
 
My di container
My di containerMy di container
My di container
 
Angular2 톺아보기
Angular2 톺아보기 Angular2 톺아보기
Angular2 톺아보기
 
URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표
 
(탑크리에듀_스프링/Spring/마이바티스/Mybatis/구로IT실무학원추천)#3.스프링프레임워크 & 마이바티스 (Spring Framew...
(탑크리에듀_스프링/Spring/마이바티스/Mybatis/구로IT실무학원추천)#3.스프링프레임워크 & 마이바티스 (Spring Framew...(탑크리에듀_스프링/Spring/마이바티스/Mybatis/구로IT실무학원추천)#3.스프링프레임워크 & 마이바티스 (Spring Framew...
(탑크리에듀_스프링/Spring/마이바티스/Mybatis/구로IT실무학원추천)#3.스프링프레임워크 & 마이바티스 (Spring Framew...
 
3.Spring IoC&DI(spring ioc실습, XML기반)
3.Spring IoC&DI(spring ioc실습, XML기반)3.Spring IoC&DI(spring ioc실습, XML기반)
3.Spring IoC&DI(spring ioc실습, XML기반)
 
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
 
Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
 
sap Abap File Save (Cl Gos Manager)
sap Abap File Save (Cl Gos Manager)sap Abap File Save (Cl Gos Manager)
sap Abap File Save (Cl Gos Manager)
 

Similaire à [React-Native-Seoul] React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내

React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작Taegon Kim
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는Taegon Kim
 
컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기우영 주
 
Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기Jiam Seo
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
Node.js and react
Node.js and reactNode.js and react
Node.js and reactHyungKuIm
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디Youngbin Han
 
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)LanarkSeung
 
React Hooks 마법. 그리고 깔끔한 사용기
React Hooks 마법. 그리고 깔끔한 사용기React Hooks 마법. 그리고 깔끔한 사용기
React Hooks 마법. 그리고 깔끔한 사용기NAVER SHOPPING
 
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱NAVER D2
 
Vue.js 기초 실습.pptx
Vue.js 기초 실습.pptxVue.js 기초 실습.pptx
Vue.js 기초 실습.pptxwonyong hwang
 
Android 기초강좌 애플리캐이션 구조
Android 기초강좌 애플리캐이션 구조Android 기초강좌 애플리캐이션 구조
Android 기초강좌 애플리캐이션 구조Sangon Lee
 
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게Sungju Jin
 

Similaire à [React-Native-Seoul] React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내 (20)

React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
 
컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기
 
Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
Node.js and react
Node.js and reactNode.js and react
Node.js and react
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
 
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
 
React native study
React native studyReact native study
React native study
 
React Hooks 마법. 그리고 깔끔한 사용기
React Hooks 마법. 그리고 깔끔한 사용기React Hooks 마법. 그리고 깔끔한 사용기
React Hooks 마법. 그리고 깔끔한 사용기
 
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
스프링프레임워크 & 마이바티스 무.료 강의자료 제공 (Spring IoC & DI)_ 구로자바학원/구로오라클학원/구로IT학원
 
Nodejs express
Nodejs expressNodejs express
Nodejs express
 
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱
 
Vue.js 기초 실습.pptx
Vue.js 기초 실습.pptxVue.js 기초 실습.pptx
Vue.js 기초 실습.pptx
 
8.Spring DI_3
8.Spring DI_38.Spring DI_3
8.Spring DI_3
 
react-ko.pdf
react-ko.pdfreact-ko.pdf
react-ko.pdf
 
Android 기초강좌 애플리캐이션 구조
Android 기초강좌 애플리캐이션 구조Android 기초강좌 애플리캐이션 구조
Android 기초강좌 애플리캐이션 구조
 
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 

[React-Native-Seoul] React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내

  • 1. React Native 프로젝트 시작부터 공유 컴포넌트 만들기까지 박태성 @geoseong by Slack
  • 2. 목차 ● $ react-native init ○ 프로젝트 생성 ○ Flexbox Styling ○ Flow check ● 공유 컴포넌트 만들기 ● Running Android/iOS Simulator ● Android APK 만들기 ● Let’s create React-Native-Seoul ourselves
  • 4. react-native 프로젝트 생성 CLI 입력 $ react-native init [프로젝트명] ex) $ react-native init AnnyeongRN 참고문서 Getting Started -> Building Projects with Native Code
  • 5. <App.js> import React, { Component } from 'react'; import { Text, View } from 'react-native'; export default class App extends Component { render() { return (<View style={{flex: 1}}> <Text style={{textAlign: 'center',}}> AnnyongRN! </Text> </View>) } } 대략적인 실행 원리 ● index.js에서 시작 ● AppRegistry.registerComponent의 두번째 인자 부분의 클래스를 참조 ● index.js에서 참조하는 해당 클래스에서 본격적인 코딩이 이루어짐 react-native 프로젝트 생성 <index.js> import { AppRegistry } from 'react-native'; import App from './App'; AppRegistry.registerComponent('AnnyeongRN', () => App);
  • 6. Styling : flexbox flexbox 일반 웹의 css에서는 display: flex 로 사용 flex ● DOM 컨테이너들의 너비를 채워줌 . 숫자로 표현. ● 1 이면 flex 속성 할당된 컨테이너 각 비율에 맞게 할당 ● 2 이면 컨테이너 각 비율 x2 justifyContent ● 세로정렬. 양쪽균등정렬과 좌우정렬 가능 alignItems ● 가로정렬. 양쪽균등정렬과 좌우정렬 가능 공식문서 http://facebook.github.io/react-native/docs/0.55/flexbox flex개념을 잡아주는 게임 사이트 flexboxfroggy.com
  • 7. 참고문서 https://medium.com/react-native-training/getting-started-with-react-nativ e-and-flow-d40f55746809 https://flow.org/en/docs/types/ ● 프로젝트 테스트에 앞서 코드의 오타나 타입 체크를 잡아줌 ● eslint의 .eslintrc와 비슷한 기능을 한다고 함 ● 그렇지만 실제 flow 를 돌려보려면 패키지 별도 설치작업이 필요. 패키지 설치 & 세팅 1. Package.json에 scripts에 "flow": "flow" 를 추가한다 2. flow-bin을 설치한다. 버전은 맞춰야하는것인지 모르겠지만 .flowconfig 내용 최하단에 있는 version에 맞춰 설치해 본다 $ npm i flow-bin@0.67.0 --save-dev <-- 근데 이거 안된다. $ npm i flow-bin@0.67.1 --save-dev <-- 이걸로 된다.. 3. $ npm run flow Flow check
  • 9. ● 버튼을 공유 컴포넌트로 만들어서 재사용할 예정 ● cm단위를 기준으로 다른 단위로 변환시켜 주는 모바일앱 제작 ● 단위 참고했던 사이트 : http://gofind.co.kr/Yahoo/unit_con.htm ● 실습코드 의 대략적인 형태는 우측과 같음 ● 완성된 코드 : https://github.com/react-native-seoul/Meetup/blob/master/2.RN_f rom_start_to_make_shared_component/sample_AnnyeongRN/App.js import React, { Component } from 'react'; import { 컴포넌트 목록 } from 'react-native' ; type shareProps = { 변수: 타입,}; class [공유컴포넌트명 ] extends Component <shareProps > { render () { return ( <컴포넌트 style={styles.속성}>{this.props.변수}</컴포넌트> ); } } type State = { 변수: 타입,}; export default class App extends Component <null, State> { constructor (props: any) { super(props); this.state = { key: value }; } 커스텀펑션 = (param: string) => { ... } render () { return ( <컴포넌트 style={ styles.속성}></컴포넌트> ) } } const styles = StyleSheet .create({ wrapper: { flex: 1, }, }); 공유 컴포넌트 만들기 - 단위 환산기 모바일앱 만들기
  • 11. 시뮬레이터준비 - 참고문서 https://facebook.github.io/react-native/docs/getting-started 공통 1. $ brew install node 2. $ brew install watchman 3. $ npm install -g react-native-cli Android Android Studio 다운로드 iOS Xcode 다운로드 시뮬레이터돌려보기 iOS $ react-native run-ios RN 시뮬레이터 돌려보기 ** No bundle URL present 메시지가 뜬다면... 다른 터미널에서 $ react-native start 를 먼저 실행 후 시도해 본다.
  • 12. 시뮬레이터돌려보기 Android 1. Android Studio에서 Emulator를 미리 실행을 해놔야 한다. 기기연결 확인방법 : $ adb devices 2. $ react-native run-android 처음으로Android 시뮬레이터돌리기 1. Android Studio 실행 2. 새 Empty 프로젝트 만들기 3. 상단메뉴 Tools -> Android -> AVD Manager -> Virtual Device 생성 -> [원하는 기기] -> x86 images -> Marshmellow System Image 다운로드 4. 다운로드 후 추가된 기기의 재생버튼 클릭 5. $ react-native run-android RN 시뮬레이터 돌려보기
  • 14. <android/app/build.gradle> ... android { ... defaultConfig { ... } signingConfigs { release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } } buildTypes { release { ... signingConfig signingConfigs.release } } } ... Android APK 만들기 https://facebook.github.io/react-native/docs/signed-apk-android.html Generating a signing key [프로젝트폴더]/android/app 경로에서.. $ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 android/gradle.properties MYAPP_RELEASE_STORE_FILE=my-release-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias MYAPP_RELEASE_STORE_PASSWORD=***** MYAPP_RELEASE_KEY_PASSWORD=***** android/app/build.gradle 우측 코드 참고 Generating the release APK $ cd android && ./gradlew assembleRelease Testing the release build of your app $ react-native run-android --variant=release
  • 16. React Native Seoul 홈페이지 커뮤니티 https://reactnativeseoul.org/ 기술로그 https://react-native.co.kr/
  • 17. 발표자 모집!!!!!! ● 함께 스터디하고 경험을 공유할 분을 모집합니다 ● JS 사용자라면 RN 초보자라도 의지만 있다면 할 수 있다! ● React-Native-Seoul 경험자 버프를 받을 수 있는 기회