네이티브앱 & 웹앱 & 하이브리드웹
네이티브 앱
모바일 OS 기반의 언어로 만들어진 앱
모바일 플랫폼 API를 이용해 개발한다. 모바일 기기에 직접 다운로드하여 로컬에 저장되는 실행파일로 사용한다.
EX) IOS - SWIFT , Android - kotlin 등등
일반적으로 우리가 스마트폰에서 스토어에서 다운로드 받아 사용하는 어플리케이션
장점 - 속도가 빠르고 안정성이 높다, 고성능의 그래픽 사용 가능
단점 - 플랫폼 별로 다른 언어로를 사용함으로 호환이 어려움
웹 앱
HTML기반으로 만들어진 모바일 웹의 장점과 네이티브의 장점을 결합. 웹 기술로 구현하는 앱을 통칭한다. 기본적으로 HTML, CSS, JS를 사용해 만들어진 애플리케이션이다. 따라서 브라우저 주소창이 존재한다. 하지만 네이티브앱처럼 동작하도록 주소창을 가릴수 있고, 모바일 기기에 아이콘을 위치시킬수 있어서 겉보기에 네이티브 앱처럼 보이게 할 수 있다
장점
- 기본적으로 웹 기술이기 때문에 다양한 언어를 포용할 수 있다. (HTML, CSS, JS, PHP, ASP)
- 업데이트 반영이 빠르다
- 브라우저로 접속 가능
단점
- 모바일기기의 기능을 활용 할 수 없다
- 스마트폰에서 제공하는 API이용 어려움
하이브리드앱
네이티브 + 웹앱의 기술을 함께 사용하는 앱. 콘텐츠 영역은 HTML 기반의 웹 앱으로 개발을 하되 패키징 처리만 각 아이폰, 안드로이드 플랫폼 안에서 함으로써 앱 배포를 가능하게 한다.
(우리가 쓰고 있는 네이버앱도 네이티브앱처럼 보이지만 하이브리드 앱이다.)
대표적으로 React Native, Flutter, PhoneGap, Cordova, Ionic 등이 존재한다.
장점
- 웹 기술만으로 개발해서 앱스토어에 배포 할 수 있다.
- 모바일 API를 사용할 수 있어서 하드웨어를 제어할 수 있다.
단점
- 브라우저 성능에 따라 앱의 성능이 좌우된다.
- 네이티브 앱 만큼 기능을 제공하진 않는다.
- 결국 앱스토에서 배포를 해야되기 때문에 업데이트 반영이 느리다.
- 3D 기능 지원이 취약하다.
프로그레시브 웹 앱(PWA: Progressive Web App)
PWA는 하이브리드 앱과 비슷하지만 약간 다르다. 기본적으로 사용자들에게 네이티브 앱의 느낌을 주면서도 웹 브라우저에서 바탕화면에 바로가기를 추가하여 특별한 다운로드와 인스톨 과정 없이 기본 앱처럼 사용할 수 있다는 것이 특징이다. 오프라인에서도 사용할 수도 있고 알림 메시지도 받을 수 있고 iOS보다 안드로이드가 훨씬 용이하긴 하지만 디바이스들의 하드웨어적인 기능(카메라나 GPS 같은)을 사용할 수도 있다.
PWA는 각 플랫폼에 최적화된 사용자 경험을 기반으로 하며, PWA만을 위한 언어나 프레임워크 또는 PWA만을 위한 전문 개발자도 필요가 없다. 리액트(React)나 앵귤러(Angular)만 있으면 만들 수 있다.