운영체제를 구성하는 언어와 같은 언어로 만들어지는 애플리케이션
IOS: Objective-C or Swift
Android: Java or Kotlin
하이브리드 앱은 모바일 웹 사이트를 감싼 네이티브 앱으로
네이티브에 필요한 것은 앱단에서 담당
View(화면구성)은 HTML담당
- UI만드는데는 디자인에는 스타일시트를 이용
- 기능은 자바스크립트를 통해서 구현
- 외적인 부분 앱관련은 네이티브에서 돌아가기는 하지만
뷰에대한 부분들은 웹기술을 통해서 개발을 하는데 핵심을 두고 있다- 기본적으로 앱의 형태로 나오고 네이티브로서 컨테이너가 되어 있는 상태
- 네이티브에서 받을 수 있는 push notification 이라던가
여러 네이티브에서 필요한 기능들은 앱단에서 담당- 두 가지가 애플리케이션에 같이 탑재되어 있어서 하이브리드라고 한다.
- 웹뷰를 이용해 보여지는 영역에 HTML을 보여줌
- HTML+CSS+JS 를 이용한 화면 구현
- 네이티브로 만들어진 앱 컨테이너로 네이티브 기능 연동
- 간혹 웹으로 구현했던 것을 하이브리드로 옮기는 경우도 있는데 완전히 같은건 아니다.
- 웹에서는 perfomance가 괜찮았던 것이 하이브리드로 오면 그 performance가 나오지 않는 경우도 있다 -> 최적화 필요
- 러닝커브도 생기게 된다
:특정 기술을 습득할 때에 처음에는 학습 효과가 더디다가 어느 정도 이해를 하고 나면 빠르게 습득하고 후에는 다시 더뎌지는 곡선
- 장점 : 웹 기술에 익숙하다면 빠른 개발 가능
- 단점 : 뷰 퍼포먼스 최적화가 힘들다
Apache Cordova나 Iocin, Appcelerator Titanuim 등을 사용할 수 있다.
웹뷰를 이용한다.
공식 사이트의 답변
리액트 네이티브를 사용해 "모바일 웹 앱", "HTML5 앱" 혹은 "하이브리드 앱"을 만드는 것이 아닙니다.
object-C 또는 Java를 사용하여 만든 앱과 구별 할 수 없는 실제 모바일 앱을 만들 수 있습니다.
Javascript + XML
- 독자적인 것이 아니라 표준규격 2개 합쳐놈!
ECMA Script 6 표준의 자바스크립트 사용
-자바스크립트의 경험들 가져올 수 있음!
JSX 내에 스타일 시트를 포함
- 자바스크립트의 스타일과는 약간 다름!
웹의 CSS와 많은 개념을 공유하지만 별도의 독자적인 포맷 CSS파일로 작성 불가
태그에 대한 설정
xml = attribute
react, jsx = props
XML과 JSX 태그의 비교!
- xml, html은 태그에 값을 할당하는게 문자열 밖에 없어서 string으로 감싸서 표현이 되는데,
- jsx는 숫자, 배열, 오브젝트와 같은 값을 넣을 수 있어서 { } 중괄호를 사용한다. 또한 JSX에서 { } 중괄호가 나오게 된다면 js의 문법을 사용한다는 의미이다.
JSX - > REACT (VIRTUAL DOM) - > HTML (VIEW)
JSX - > REACT (VIRTUAL DOM) - > Android, IOS VIEW
JSX를 네이티브 뷰 형태로 렌더링 함!
- 데이터 처리는 자바스크립트가 수행하고 뷰와 자바스크립트 엔진을 연결하는 브릿지가 존재!
- 핵심은 브릿지
- 화면에는 네이티브 뷰가 보이지만 백그라운드에서는 자바스크립트 엔진이 핸들링하고 그게 뷰에 반영된다.
- 또 뷰에 입력된게 자바스크립트 엔진에 저장되고 브릿지를 통해 열심히 전달!