모바일 앱 개발 옵션
모바일 앱 개발이 필요하다면, 선택지는 보통 아래와 같다.
- 네이티브
- 특정 OS 전용으로 개발하는 앱이다. iOS 앱을 Swift로, 안드로이드 앱을 Kotlin으로 개발하는 것
- 기기의 리소스(카메라, 알림, 네이티브 api 등)와 데이터(주소록, 파일 등)를 제약없이 사용할 수 있고, 성능이 가장 좋다
- OS마다 별도로 개발해야해서 비용이 가장 크다
- 크로스 플랫폼
- OS와 무관하게 하나의 언어로 개발할 수 있는 기술
- React Native라면 JS로, Flutter라면 Dart로 개발하고, 빌드 타임에 각 OS에 맞게 언어를 변환한다. 기기의 리소스를 활용하면서도 개발 비용이 비교적 적게든다
- 여러 OS가 공통으로 제공하는 기능까지만 활용 가능하다
- 웹 앱, 모바일 앱
- 모바일 브라우저에서 동작하는 웹
- 웹만 개발하므로 비용이 가장적다.
- 기능과 성능 제약이 크다. 브라우저가 제공하는 기능만 활용 가능하여 기기의 리소스를 쓰기 어렵고, 성능이 떨어진다.
- 하이브리드 앱
- 네이티브(또는 크로스 플랫폼)으로 앱을 만들되 내부 컴포넌트(웹뷰)로 웹을 보여주는 방식
- 기기의 리소스를 가져다 쓰면서도, 웹 앱 개발의 이점을 가져갈 수 있다.
- PWA
- 웹을 모바일 앱처럼 쓸 수 있게 만드는 기술
- 푸시 알림, 아이콘 추가, 오프라인 동작(캐싱)을 이용할 수 있는 웹 앱을 만든다.
- 스타벅스, 트위터 등이 만들었으나 국내에서는 인지도가 떨어지는 편(디스콰이엇 iOS 앱 정도?)