SlideShare a Scribd company logo
Building iOS App with
Eri Han
haneri1103@gmail.com
Warning Message
발표자료 내용은 어디까지나 개인적인
경험에 의한 의견일 수 있음을 사전
공지합니다.
리액트 네이티브
짤막한 이야기
리액트 모바일버전
Q. 리액트 네이티브은 뭔가요?
자바스크립트로 개발작업이 이루어진다
인터페이스는 네이티브 위젯으로 표시된다
친화적인 네이티브 UI제공해 준다
Q. 리액트 네이티브의 특징은?
컴포넌트를 간단하게 만들고 쉽게 조합해서 뷰를 손쉽게 만들 수 있는 기술
Q. 리액트 네이티브 적용사례
https://facebook.github.io/react-native/showcase.html
Facebook Group
ES5, ES6(2015) / ECMAScript
JSX(JavaScriptXML)
React.js
iOS (Objective-C)
리액트 네이티브에 관한 짤막한 이야기
개발환경 구축
살짝 훑어보기
1. Homebrew
2. Node.js
3. 일반적인 iOS/Android 앱개발 환경
4. React Native 클라이언트 도구(react-native-cli)
상세한 내용은
https://facebook.github.io/react-native/docs/getting-started.html
개발환경 구축 살짝 훓어보기
Atom Nuclide.io
간단한 앱
만들어 보기
간단한 앱 만들어 보기
1. Todo을 입력할 수 있다.
2. 추가 버튼을 탭하면 입력한 Todo을 추가된다.
3. 추가된 Todo내용은 리스트로 표시된다.
*Todo 내용을 Firebase에 저장하기
간단한 앱 만들어 보기
1. 프로젝트 생성하기
$ react-native init TodoApp
$ cd TodoApp
2. 필요한 패키지 설치하기
$ npm install firebase –save
$ npm install react-native-vector-icons underscore –save
아이콘에 대해서는
https://github.com/oblador/react-native-vector-icons
간단한 앱 만들어 보기
* 생성된 프로젝트 폴더안 살펴보기
간단한 앱 만들어 보기
3. 리액트 네이티브 팩키지 실행하기
$ npm start
4. 생성된 프로젝트의 앱을 기동하기 (iOS)
$ react-native run-ios
또는
ios폴더 안에 있는 TodoApp.xcodeproj를 Xcode로 열어서
Run해서 기동하기
간단한 앱 만들어 보기
* index.ios.js 살펴보기
import import React, {
AppRegistry,
Component,
StyleSheet,
...
} from 'react-native';
var React = require('react-native');
var {
AppRegistry,
Component,
StyleSheet,
...
} = React;
component class AwesomeProject extends Component {
render() {
return (
<View style={styles.container}>
...
</View>
);
}
}
var AwesomeProject = React.createClass({
render: function() {
return (
<View style={styles.container}>
...
</View>
);
}
});
styles const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
...
});
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
...
});
register component AppRegistry.registerComponent('AwesomeProject', ()
=> AwesomeProject);
AppRegistry.registerComponent('AwesomeProject', ()
=> AwesomeProject);
ES6 ES5
간단한 앱 만들어 보기
• Component
• React vs React Native
• div >>> View
• span >>> Text
• li, ui >>> ListView
• Img >>> Image
• Native Component
• UITabBar -> TabBarIOS
• UINavigationController -> NavigatorIOS
• UITableView -> ListView
• Native binding(Objective-C)
• RCT_EXPORT_MODULE
• RCT_EXPORT_METHOD
ES5
간단한 앱 만들어 보기
5. 컴포넌트로 레이아웃를 추가 및 조합하기
6. 스타일 지정해 주기
7. 데이터베이스 연결하기
8. 데이터관리 부분 추가
9. 이벤트 처리 추가

More Related Content

What's hot

React native study
React native studyReact native study
React native study
jonghyun Park
 
Ionic으로 모바일앱 만들기 #1
Ionic으로 모바일앱 만들기 #1Ionic으로 모바일앱 만들기 #1
Ionic으로 모바일앱 만들기 #1
성일 한
 
하이브리드 앱_개발_개요
하이브리드 앱_개발_개요하이브리드 앱_개발_개요
하이브리드 앱_개발_개요
BongSoo Jang
 
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용jinwook shin
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overview
SangSun Park
 
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
Choulhyouc Lee
 
Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5
성일 한
 
Fuse소개
Fuse소개Fuse소개
XE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXE Open seminar #2 - keynote
XE Open seminar #2 - keynote
XpressEngine
 
React native development
React native developmentReact native development
React native development
SangSun Park
 
Hybrid App
Hybrid AppHybrid App
Hybrid App
Jung Young Kim
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)
Changhwan Yi
 
Citrine소개서
Citrine소개서Citrine소개서
Citrine소개서
logeo
 
Droid Knight 2019
Droid Knight 2019Droid Knight 2019
Droid Knight 2019
선옥 장
 
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
위키북스
 
Overview
OverviewOverview
앱팀메이킹
앱팀메이킹앱팀메이킹
앱팀메이킹Jungsook Baek
 
앱팀메이킹
앱팀메이킹앱팀메이킹
앱팀메이킹Jungsook Baek
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Sa-ryong Kang
 

What's hot (20)

React native study
React native studyReact native study
React native study
 
Ionic으로 모바일앱 만들기 #1
Ionic으로 모바일앱 만들기 #1Ionic으로 모바일앱 만들기 #1
Ionic으로 모바일앱 만들기 #1
 
하이브리드 앱_개발_개요
하이브리드 앱_개발_개요하이브리드 앱_개발_개요
하이브리드 앱_개발_개요
 
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용K모바일발표 120113 남들보다뛰어난앱만들기_공유용
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overview
 
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
 
Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5
 
Fuse소개
Fuse소개Fuse소개
Fuse소개
 
XE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXE Open seminar #2 - keynote
XE Open seminar #2 - keynote
 
React native development
React native developmentReact native development
React native development
 
Hybrid App
Hybrid AppHybrid App
Hybrid App
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)
 
Citrine소개서
Citrine소개서Citrine소개서
Citrine소개서
 
Droid Knight 2019
Droid Knight 2019Droid Knight 2019
Droid Knight 2019
 
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
앱 인벤터 2: 비전공자를 위한 안드로이드 앱 만들기
 
Overview
OverviewOverview
Overview
 
앱팀메이킹
앱팀메이킹앱팀메이킹
앱팀메이킹
 
앱팀메이킹
앱팀메이킹앱팀메이킹
앱팀메이킹
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
 
Architect
ArchitectArchitect
Architect
 

Similar to Beginning react native

[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
NAVER D2
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5
Jonathan Jeon
 
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React NativeT12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
양재동 코드랩
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
소설네트워크 for iOS
소설네트워크 for iOS소설네트워크 for iOS
소설네트워크 for iOS
Jake Yoon
 
성공적인 UX디자인을 위한 프로토타입 방법론
성공적인 UX디자인을 위한 프로토타입 방법론 성공적인 UX디자인을 위한 프로토타입 방법론
성공적인 UX디자인을 위한 프로토타입 방법론
Unbong Kang
 
앱이냐?웹이냐?
앱이냐?웹이냐?앱이냐?웹이냐?
앱이냐?웹이냐?Chulgyu Shin
 
앱이냐?웹이냐?
앱이냐?웹이냐?앱이냐?웹이냐?
앱이냐?웹이냐?Chulgyu Shin
 
hexa core
hexa corehexa core
hexa core
Seungbae Ji
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"Changhwan Yi
 
Jung jaeyeoup
Jung jaeyeoupJung jaeyeoup
Jung jaeyeoup
ssuser2a0d74
 
Developing iOS with Rx, MVVM
Developing iOS with Rx, MVVMDeveloping iOS with Rx, MVVM
Developing iOS with Rx, MVVM
Wooseong Kim
 
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
양재동 코드랩
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
JinKwon Lee
 
누구나 만드는 모바일앱 하이씨엘
누구나 만드는 모바일앱 하이씨엘누구나 만드는 모바일앱 하이씨엘
누구나 만드는 모바일앱 하이씨엘VentureSquare
 
Abcd 2016 firebase
Abcd 2016 firebaseAbcd 2016 firebase
Abcd 2016 firebase
휴창 신
 
안드로이드 개발하기_1st
안드로이드 개발하기_1st안드로이드 개발하기_1st
안드로이드 개발하기_1st
EunGi Hong
 
메타버스 서비스에 Android 개발자가 할 일이 있나요?
메타버스 서비스에 Android 개발자가 할 일이 있나요?메타버스 서비스에 Android 개발자가 할 일이 있나요?
메타버스 서비스에 Android 개발자가 할 일이 있나요?
Myungwook Ahn
 
포트폴리오 김규하
포트폴리오 김규하포트폴리오 김규하
포트폴리오 김규하
GyooHa Kim
 
Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기
성일 한
 

Similar to Beginning react native (20)

[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5
 
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React NativeT12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
소설네트워크 for iOS
소설네트워크 for iOS소설네트워크 for iOS
소설네트워크 for iOS
 
성공적인 UX디자인을 위한 프로토타입 방법론
성공적인 UX디자인을 위한 프로토타입 방법론 성공적인 UX디자인을 위한 프로토타입 방법론
성공적인 UX디자인을 위한 프로토타입 방법론
 
앱이냐?웹이냐?
앱이냐?웹이냐?앱이냐?웹이냐?
앱이냐?웹이냐?
 
앱이냐?웹이냐?
앱이냐?웹이냐?앱이냐?웹이냐?
앱이냐?웹이냐?
 
hexa core
hexa corehexa core
hexa core
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"
 
Jung jaeyeoup
Jung jaeyeoupJung jaeyeoup
Jung jaeyeoup
 
Developing iOS with Rx, MVVM
Developing iOS with Rx, MVVMDeveloping iOS with Rx, MVVM
Developing iOS with Rx, MVVM
 
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
누구나 만드는 모바일앱 하이씨엘
누구나 만드는 모바일앱 하이씨엘누구나 만드는 모바일앱 하이씨엘
누구나 만드는 모바일앱 하이씨엘
 
Abcd 2016 firebase
Abcd 2016 firebaseAbcd 2016 firebase
Abcd 2016 firebase
 
안드로이드 개발하기_1st
안드로이드 개발하기_1st안드로이드 개발하기_1st
안드로이드 개발하기_1st
 
메타버스 서비스에 Android 개발자가 할 일이 있나요?
메타버스 서비스에 Android 개발자가 할 일이 있나요?메타버스 서비스에 Android 개발자가 할 일이 있나요?
메타버스 서비스에 Android 개발자가 할 일이 있나요?
 
포트폴리오 김규하
포트폴리오 김규하포트폴리오 김규하
포트폴리오 김규하
 
Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기
 

Beginning react native

  • 1. Building iOS App with Eri Han haneri1103@gmail.com
  • 2. Warning Message 발표자료 내용은 어디까지나 개인적인 경험에 의한 의견일 수 있음을 사전 공지합니다.
  • 4. 리액트 모바일버전 Q. 리액트 네이티브은 뭔가요? 자바스크립트로 개발작업이 이루어진다 인터페이스는 네이티브 위젯으로 표시된다 친화적인 네이티브 UI제공해 준다 Q. 리액트 네이티브의 특징은? 컴포넌트를 간단하게 만들고 쉽게 조합해서 뷰를 손쉽게 만들 수 있는 기술 Q. 리액트 네이티브 적용사례 https://facebook.github.io/react-native/showcase.html Facebook Group ES5, ES6(2015) / ECMAScript JSX(JavaScriptXML) React.js iOS (Objective-C) 리액트 네이티브에 관한 짤막한 이야기
  • 6. 1. Homebrew 2. Node.js 3. 일반적인 iOS/Android 앱개발 환경 4. React Native 클라이언트 도구(react-native-cli) 상세한 내용은 https://facebook.github.io/react-native/docs/getting-started.html 개발환경 구축 살짝 훓어보기 Atom Nuclide.io
  • 8. 간단한 앱 만들어 보기 1. Todo을 입력할 수 있다. 2. 추가 버튼을 탭하면 입력한 Todo을 추가된다. 3. 추가된 Todo내용은 리스트로 표시된다. *Todo 내용을 Firebase에 저장하기
  • 9. 간단한 앱 만들어 보기 1. 프로젝트 생성하기 $ react-native init TodoApp $ cd TodoApp 2. 필요한 패키지 설치하기 $ npm install firebase –save $ npm install react-native-vector-icons underscore –save 아이콘에 대해서는 https://github.com/oblador/react-native-vector-icons
  • 10. 간단한 앱 만들어 보기 * 생성된 프로젝트 폴더안 살펴보기
  • 11. 간단한 앱 만들어 보기 3. 리액트 네이티브 팩키지 실행하기 $ npm start 4. 생성된 프로젝트의 앱을 기동하기 (iOS) $ react-native run-ios 또는 ios폴더 안에 있는 TodoApp.xcodeproj를 Xcode로 열어서 Run해서 기동하기
  • 12. 간단한 앱 만들어 보기 * index.ios.js 살펴보기 import import React, { AppRegistry, Component, StyleSheet, ... } from 'react-native'; var React = require('react-native'); var { AppRegistry, Component, StyleSheet, ... } = React; component class AwesomeProject extends Component { render() { return ( <View style={styles.container}> ... </View> ); } } var AwesomeProject = React.createClass({ render: function() { return ( <View style={styles.container}> ... </View> ); } }); styles const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, ... }); var styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, ... }); register component AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject); AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject); ES6 ES5
  • 13. 간단한 앱 만들어 보기 • Component • React vs React Native • div >>> View • span >>> Text • li, ui >>> ListView • Img >>> Image • Native Component • UITabBar -> TabBarIOS • UINavigationController -> NavigatorIOS • UITableView -> ListView • Native binding(Objective-C) • RCT_EXPORT_MODULE • RCT_EXPORT_METHOD ES5
  • 14. 간단한 앱 만들어 보기 5. 컴포넌트로 레이아웃를 추가 및 조합하기 6. 스타일 지정해 주기 7. 데이터베이스 연결하기 8. 데이터관리 부분 추가 9. 이벤트 처리 추가