모바일 앱을 만드는 3가지 방법들이 있는데
1. Native App
Swift 또는 objective-c 언어, Xcode로 iOS 앱을 만드는 것,
Java 또는 코틀린 언어, Android studio로 Android 앱을 만드는 것으로
Native App을 코딩하는데 사용되는 자체 언어로 만든 애플리케이션을 네이티브 앱이라고 합니다.
2. Web App
HTML, CSS, JS를 사용해 만들어진 애플리케이션으로
PC용 홈페이지를 모바일에 맞추어 만든 웹 앱을 의미합니다.
그냥 웹 사이트를 보는 것이기 때문에 따로 설치할 필요가 없지만
앱에서 실행할 수 있는 카메라 등을 사용할 수 없고 오로지 브라우저 API만을 사용할 수 있습니다.
3. Hybrid App
Native + Web App의 기술을 함께 사용하는 앱이며
React Native, Flutter, PhoneGap, Cordova, Ionic는 하이브리드 앱에 해당합니다.
Native Web에 웹뷰를 띄워 Web App을 실행시키는 것으로
쉽게 말해 웹사이트 전체를 앱 안에 넣는 것이라고 생각하시면 됩니다.
다시 말해 콘텐츠 영역은 HTML 기반의 Web App으로 개발을 하고
패키징 처리는 iOS 또는 Android 안에서 하여
앱 배포를 가능하게 하기 때문에 Native API, Browser API를 모두 사용할 수 있습니다.
4. 추가적으로, 만들 앱에 맞는 방법을 선택할 때
Hybrid App의 경우 JS로 만든 컴포넌트를 Swift나 Java 코드로 이해하기 위해서는
이들을 서로 이어주는 브릿지가 필요합니다.
만약 인스타그램같이 사진을 가져오고, 좋아요 누르고, 내용을 작성하고, 삭제하고,
프로필을 업데이트하고, 이런 컨텐츠만 다루는 것들은
React native와 같은 프레임워크를 이용하여 Hybrid 방식으로 만드는 것이 쉽고 좋지만,
3D 비디오 게임, 3D 증강 현실 앱을 만들기를 원한다면 React native가 최선은 아닐 것입니다.
그 이유는 브릿지가 느려지지 않도록 코드를 최적화하는데 많은 시간을 써야하기 때문입니다.
https://m.blog.naver.com/acornedu/221012420292