모바일 앱 개발 옵션

모바일 앱 개발이 필요하다면, 선택지는 보통 아래와 같다.

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

refs