
네이티브 앱 (Native App)
Android 모바일 앱 개발의 경우는 Kotlin 또는 Java 로 네이티브 앱을 만들 수 있고 iOS의 경우 Swift 또는 Objective C로 만들 수 있다. 덕분에 앱의 실행 속도가 빠르고 유용한 API의 지원도 받을 수 있다. 반면 다른 운영체제에서도 실행되기 위해서는 시간도 노력도 돈도 많이 드는 단점이 있다.
장점
- Android, iOS 기반의 API로 개발하여 속도가 빠르고 안정적이다.
- 고성능 그래픽 처리가 가능하다 (2D, 3D, 증강현실 등)
단점
- 해당 플랫폼 별로 다른 언어를 사용함으로 각각의 언어를 알고 있어야하며 러닝커브도 높다. e.g) Android - Java, Kotlin / iOS - Swift, Objective-C
- 특정 플랫폼 별로 앱스토어의 심사를 통과해야 되기때문에 업데이트가 늦게 반영된다.
웹 앱(Web App)
모바일 웹의 장점과 네이티브의 장점을 결합. 웹 기술로 구현하는 앱을 통칭한다. 기본적으로 HTML, CSS, JS를 사용해 만들어진 애플리케이션이다. 따라서 브라우저 주소창이 존재한다. 하지만 네이티브앱처럼 동작하도록 주소창을 가릴수 있고, 모바일 기기에 아이콘을 위치시킬수 있어서 겉보기에 네이티브 앱처럼 보이게 할 수 있다.
장점
- 기본적으로 웹 기술이기 때문에 다양한 언어를 포용할 수 있다. (HTML, CSS, JS, PHP, ASP 등)
- 네이티브 앱과 달리 설치할 필요가 없어서 브라우저로 접근 가능하다.
- 업데이트가 빠르다. (앱스토어 배포할 필요가 없기 때문)
단점
- 모바일 기기의 하드웨어에 접근할 순 없기 때문에 센서, 카메라 등의 기능을 활용 할 수 없다.
- 즉, 브라우저에서 사용할 수 있도록 제공하는 API는 사용가능하나, 스마트폰 자체 운영체제에서 제공하는 API는 사용할 수 없다.
하이브리드 앱(Hybrid App)
네이티브 + 웹앱의 기술을 함께 사용하는 앱. 콘텐츠 영역은 HTML 기반의 웹 앱으로 개발을 하되 패키징 처리만 각 아이폰, 안드로이드 플랫폼 안에서 함으로써 앱 배포를 가능하게 한다.
(네이버앱도 네이티브앱처럼 보이지만 하이브리드 앱이다.)
대표적으로 React Native, Flutter, PhoneGap, Cordova, Ionic 등이 존재한다.
PhoneGap : HTML,CSS,JS를 이용해 멀티플랫폼 크로스 모바일 앱을 최초로 시도.
Cordova : Adobe System에서 인수한 PhoneGap을 Apache에 기부해서 이름이 바뀜. 그래서 기존 폰갭 명령어로 실행 및 개발 가능
Ionic : Cordova 기반으로 GUI 및 CLI 기능을 추가한 프레임워크 (AngularJS기반임)
장점
- 웹 기술만으로 개발해서 앱스토어에 배포 할 수 있다.
- 모바일 API를 사용할 수 있어서 하드웨어를 제어할 수 있다.
단점
- 브라우저 성능에 따라 앱의 성능이 좌우된다.
- 네이티브 앱 만큼 기능을 제공하진 않는다.
- 결국 앱스토에서 배포를 해야되기 때문에 업데이트 반영이 느리다.
- 3D 기능 지원이 취약하다.
정리
앱의 성능이나 실행될 장치의 하드웨어 방면 기능이 매우 필요한 경우 : 네이티브 앱(Native App) 선택
쇼핑몰 같이 사용자의 방문이 많을 수 있고 웹과 모바일 둘 다 되는 앱을 구상 중인 경우 : 프로그레시브 웹 앱(PWA)을 선택
웹 개발에 익숙하고 빠른 기간 내에 앱을 구축하고 싶은 경우 : 하이브리드 앱(Hybrid App) 선택
'Programming > Android' 카테고리의 다른 글
[Android] Relative Layout (0) | 2022.06.16 |
---|---|
[Android] Linear Layout (0) | 2022.06.15 |
[Android] Gradle Scripts (0) | 2022.06.15 |
[Android] AndroidManifest (0) | 2022.06.15 |
[Android] 안드로이드 앱 크기단위 (0) | 2022.06.15 |