[React Native #1] 리액트 네이티브 시작하기

in #kr6 years ago (edited)

리액트 네이티브란?

리액트 네이티브(React Native)는 iOS와 안드로이드 앱 개발을 위한 라이브러리이다. 자바스크립트로 구현된 기존의 모바일앱들은 웹뷰를 이용한 하이브리드 방식이었다. 하지만 리액트 네이티브는 자바스크립트로 개발하지만, 화면 인터페이스는 네이티브 위젯으로 컴파일하여 빌드된다. 리액트 네이티브는 네이티브 UI를 사용하여 빠른 사용자 경험을 제공한다.



CRNA 설치

CRNA(create-react-native-app)는 기존의 React Native CLI 보다 리액트 네이티브 앱개발을 더 쉽고 빠르게 시작할 수 있게 해준다. 그리고 CRNA를 사용하면 Xcode 또는 Android Studio가 필요없다. Linux 또는 Windows에서도 iOS 앱을 개발할 수 있다.

아래 명령어로 CRNA를 설치한다.

$ npm install -g create-react-native-app

CRNA는 node v4,6,7,8에서만 작동한다. 참고로 나는 Node version management n를 사용하여 node v8.12.0를 추가 설치하였다.



프로젝트 생성하기

CRNA를 사용하여 weather_app 앱을 생성한다.

$ create-react-native-app weather_app


위 명령을 실행하고 템플릿 선택을 하면 필요한 모듈을 다운로드하기 시작한다. 그리고 조금 기다리면 아래와 같이 프로젝트가 생성된다.



실행하기

Xcode 또는 Android Studio를 설치하지 않고 테스트 하려면 디바이스에 Expo 앱을 설치해야한다. Expo앱 다운로드 페이지에서 Expo앱을 설치한다.

방금 생성한 weather_app 프로젝트를 실행한다.

$ cd weather_app
$ expo start


빌드 과정이 끝나면 콘솔창에 아래와 같이 QR코드가 출력된다.

디바이스에서 Expo앱을 실행하여 Scan QR Code 버튼를 선택한다. 그리고 콘솔창에 보이는 QR코드를 촬영한다.


그럼 아래와 같이 샘플앱이 실행되어 보여진다.


코드를 수정하면 Hot Reloding에 의해 수정한 내용이 바로 반영된다. 그리고 디바이스를 손에 쥐고 쉐키쉐키 흔들면, 아래와 같이 팝업 메뉴가 나타난다. 팝업 메뉴를 이용하면 앱 접체를 reload하거나, 원격 JS디버깅 또는 Hot Reloding 모드를 끌수도 있다.


마지막으로 브라우저에서 http://localhost:19003 를 접속하면, 디바이스 정보와 로그를 확인할 수 있다.

2xVmzkbNCvpwvhvVoK8gkHgcKPXJ1N568gZVfaWe2uFzySBuYc1CBf9GzmExec6bMEXMABBSV1GRXE6YtCKpSPHX5mUaYBam72aNaSdPoRVEWuNGF4ZqxGyVhJjsfi8xeN64y29VL5mY854HQnQ92wZGQgT9Mdk9JpCM4L2Vf7W2DXg8cL2FRDj2RtokyqmunVYNErB8.png

참고: https://jongmin92.github.io/2017/07/20/ReactNative/create-react-native-app/




오랜만에 리액트 네이티브 문서를 봤더니 엄청난 발전이 있어서 놀랐습니다. 그리고 개발하기가 정말 쉽고 편해졌습니다. Xcode 또는 Android Studio를 설치하지 않고도 개발할 수 있는게 정말 놀랍네요. 그리고 간단한 코드나 화면은 개발툴 없이 snack을 이용하면 쉽게 테스트 가능합니다.

사실 저는 개인적으로 구글의 플러터가 더 마음에 들지만, 개발속도(도구)/레퍼런스(오픈소스, 커뮤니티)/개발언어(JS) 등으로 인해 리액트 네이티브를 도저히 버릴 수가 없네요.


Sponsored ( Powered by dclick )
HBR 블록체인의 진실과 미래를 읽다.

안녕하세요. 부추입니다. 최근에 리디셀렉트를 구독하게 되었는데요. 거기에서 하버드비지니스리뷰 ...

Sort:  

maikuraki님이 anpigon님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
maikuraki님의 2018 KR커뮤티니 어워즈!! 수상을 위한 투표 시작합니다:)

...e/maikuraki/1539839010087.png
혜성처럼 나타나 KR커뮤니티에 파릇파릇 피어난 뉴비s

anpigonmaikuraki bbooaae ccodron imrahelk cov-jeong greenlatte ukk ...

지금 한번 따라해봐야겠네요! 좋은 정보 감사합니다! 프로그래머 화이팅!

감사합니다. 프로그래머 화이팅~~ㅎㅎ

짱짱맨 호출에 응답하여 보팅하였습니다. 꾸준한 활동을 응원합니다.

북이오(@bukio)는 창작자와 함께 하는 첫번째 프로그램을 만들었습니다. 이를 위해 첫번째 길드(Guild) 구성을 위한 공지글을 게시하였습니다. 영문 문학작품의 한글 번역에 관심이 있는 분들의 많은 참여를 바랍니다. 고맙습니다.

Hi @anpigon!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 2.617 which ranks you at #14933 across all Steem accounts.
Your rank has dropped 237 places in the last three days (old rank 14696).

In our last Algorithmic Curation Round, consisting of 286 contributions, your post is ranked at #193.

Evaluation of your UA score:
  • Only a few people are following you, try to convince more people with good work.
  • The readers like your work!
  • You have already shown user engagement, try to improve it further.

Feel free to join our @steem-ua Discord server

리액트 네이티브 ㅇ_ㅇ 존나 짱입니다. 저는 쓰신 글 나오는 거 해보고 있었는데 미친듯한 에러가 나서 그거 고치느라고 글도 못 썼어요. ㅎㅎㅎㅎ 그나저나 글이 깔끔하네요. 저도 이런 스타일 좀 배워야겠어요. ㅎㅎㅎㅎ

리액트 네이티브를 제대로 표헌하셨습니다. ㅎㅎ 미친듯한 에러가 나면 잠시 머리를 쉬세요.ㅋ
저는 제 글을 읽어주는 사람들을 위해서 글을 깔끔하게 작성하려고 노력하고 있습니다. 감사합니다.

안드로이드 스튜디오로 실험하기 참 불편했는데 개발이 쉬운가 보군요.

안드로이드스튜디오를 설치 하지않고, 바로 개발할수 있다는게 굉장한 이점입니다. 그런데 리액트 네이티브는 문서가 좀 불친절(?)하네요. 개발환경셋팅하는데 조금 애먹었습니다.ㅋ

안그래도 글 읽으면서 플러터랑 뭐가 다른건지 물어보려고 했었는데
마지막에 하시는 말씀 보니 그거나그거나 인거 보네요

뭐든 간에 일단 진짜 시작해 봐야 겠습니다 내일부터..ㅋㅋㅋ

뭐든 간에 시작이 중요합니다. 그런데 코딩을 시작하면 라떼 연습 시간이 줄어드는거 아닌가요? 아니면 잠을 안주무시려나?ㅎㅎ

잠을 줄이지 않을까 싶습니다....ㅋㅋㅋㅋ
근데 밤에 하려니 낮에 자네요;;;ㅋㅋㅋㅋ

또 새로운 개발 글이네요 ㅠㅠㅠ
이전 것도 아직 못 해봤는데 ㅠㅠㅠ 으흑

기술은 계속 업데이트되고 새로 나오니깐 지나간것은 안보셔도 됩니다.ㅋㅋ

지나간 것은 지나간 대로
그런 의미가 있죠
우리 다 함께 노래합시다
후회 없이 꿈을 꾸었다 말해요~♩ ♪ ♬

보클합니다~ ^.^