흔히 우리가 말하는 '어플리케이션'으로 모바일 기기에 최적화된 언어로 개발된 앱이다. Android 또는 ios같은 구체적인 하나의 플랫폼만을 위해 만들어진 앱이다. Android에 경우 Java와 kotlin으로 만들수 있고 ios의 경우 Swift 또는 Objective C로 만들 수 있다.
- 사용자에게 가장 빠르고 안정적이며 반응이 빠른 환경을 제공(웹앱, 하이브리드 앱에 비해 성능 좋음)
- 다양한 네이티브 기능을 쉽게 활용할 수 있다.(카메라, 마이크, GPS 등등)
- 네이티브 앱은 Android와 ios의 호환이 되지 않기 때문에 별도로 제작해야 한다.
- 더 많은 비용이 들고 빌드하는데 시간이 더 오래 걸린다.
이런한 네이티브 앱의 단점을 극복하기 위해 크로스 플랫폼 프레임 워크의 인기가 증가하고 있다. Google이 만든 Flutter(다트) 와 Facebook이 만든 React Native(자바스크립트) 가 현재 많이 사용되고 있다. 크로스 플랫폼 프레임 워크로 개발된 소프트웨어는 안드로이드 앱과 ios 앱으로 변환되어 출력한다.
- 같은 소스 코드로 안드로이드 버전과 iOS 버전에서 모두 작동할 수 있는 앱을 만들 수 있다
- 네이티브 앱에 비해 성능을 100% 끌어올릴 수 없다.
네이티브앱 + 웹앱 이다. 일반적으로 네이티브웹에 웹view를 띄워 웹앱을 실행 시키는 것이 보편적이고 양쪽의 API 모두 사용가능하다. JavaScript , HTML 및 CSS와 와 프레임 워크를 사용하여 다양한 플랫폼에서 사용할 수 있는 하이브리드 앱을 빠르게 만들수 있다.
네이티브 또는 크로스 플랫폼 방식으로 앱을 만들지만 화면 안에 요소를 직접 만들지 않는다. 브라우저 역할을 하는 웹 뷰라는 요소를 만들어 대신 웹 화면을 띄운다.
웹 뷰는 지정된 주소로 접속해서 웹 앱 형태로 만들어진 웹사이트를 화면에 보여준다.
사용자는 이 웹 뷰를 통해 웹사이트로 만들어진 기능을 앱 기능처럼 사용한다.
그리고 웹사이트에서 제공할 수 없는 하드웨어 기능인 카메라나 푸시 알림 같은 기능은 네이티브 단에서 자체적으로 수행한다.
1.웹개발 기술을 사용할 앱 개발 가능 2.네이티브 API와 브라우저 API를 이용한 다양한 개발이 가능(웹사이트로 구현이 불가능한 필수 기능들만 네이티브 앱, 나머지 기능은 모두 웹 뷰 안에 들어갈 웹으로) 3.하나의 앱을 빌드하고 조정하여 플랫폼에서 모두 작동 가능해 시간과 돈이 절약됨(경우에 따라 다르긴 함)
- 네이티브 기능을 사용하려면 네이티브 개발 지식이 필요함
- 웹뷰에서 앱을 실행하기 때문에 브라우저의 성능에 앱성능이 달려있다.
- UI 프레임워크를 사용하지 않으면 개발자가 UI를 제작해야 한다.
모바일웹 과 네이티브앱을 결합한 형태로 모바일 형태의 특징을 가지면서 네이티브앱의 장점을 가지고 있다. 모바일 웹 보다는 조금더 모바일에 최적화 된 앱이다. 일반적인 웹기술로 개발되고 모바일 브라우저에서 실행되지만 풀 브라우저 방식이 아닌 단일 페이지 방식으로 화면을 전환해 빠르다. PC용 홈페이지를 모바일 스크린의 크기에 맞춰 줄여 놓은 것
- 웹 사이트를 보는 것이라 따로 설치할 필요가 없다.
- 모든 기기와 브라우저에서 접근이 가능하다.
- 별도 설치 및 승인과정이 필요치 않아 유지보수가 용이하다.
- 폴랫폼 API(카메라 등)을 사용할 수 없고 오로지, 브라우저 API만 사용할 수 있다.
- 브라우저를 열고 검색해 들어가야 한다.(네이티브, 하이브리드에 비해 살짝 귀찮)
우리가 만들 것과 거리가 멀지만 공부가 되니 끄적여봤다. 우리는 네이티브 나 크로스 플랫폼을 이용해서 앱을 만드는 경우일 텐데 크로스플랫폼을 만들려면 결국 맥이 필요하다. Xcode를 깔아야하기 때문에..