개발은 뭐로해?
모바일 앱을 개발할 때, 개발하고자 하는 앱이 어떤 종류의 기능이 필요한지, 어느 정도 시간과 경제적 투자가 가능한지 따져 보고 결정하는 것이 중요하다.
위의 이미지를 통해 알아볼 앱의 종류들과 대략적인 흐름을 알 수 있다.
Native App
Android 또는 iOS 같은 어떤 구체적인 플랫폼만을 위해 만들어진 응용 프로그램을 네이티브 앱(Native App)이라고 한다. Android 모바일 앱 개발의 경우는 Kotlin 또는 Java로 네이티브 앱을 만들 수 있고 iOS의 경우 Swift 또는 Objective C로 만들 수 있다. 덕분에 앱의 실행 속도가 빠르고 유용한 API의 지원도 받을 수 있다.
최근에는 크로스 플랫폼 프레임워크의 인기가 증가하고 있다.
Google의 Flutter, Facebook의 React Native가 대표적이다.
장점
- 빠르고 안정적
- 다양한 네이티브 기능을 쉽게 활용 ex) 카메라, 마이크, GPS,,
단점
- 둘 이상의 코드베이스(Android, iOS 별도 제작)
- 많이 비용과 빌드 시 많은 시간 소요
언제?
- 3D 게임, 애니메이션
- 장치의 특별한 기능을 사용 시
- 앱 기능이 많고 상당히 복잡한데, 정확성이 요구되는 경우
Hybrid App
하이브리드 앱은 네이티브 앱과 웹 앱의 기능을 결합한 것이다. HTML, CSS, JavaScript와 프레임워크를 사용하여 다양한 플랫폼에서 사용할 수 있는 하이브리드 앱을 만들 수 있다.
빠른 개발이 가능하고, 유지보수가 쉽고 기본 API 사용도 가능하지만 오프라인으로는 작동하지 않고, 같은 코드라도 안드로이드나 iOS등 디바이스의 특정 기능 사용시에는 문제가 발생할 수도 있다.
장점
- 하나의 코드 베이스(시간, 비용 절약)
- 쉬운 확장 및 유지보수, 네이티브 기능 액세스
단점
- 퍼포먼스 문제
- 크로스 플랫폼 개발의 어려움 (각 네이티브 플랫폼에서 적절하게 실행되도록 구현이 어려움)
언제?
- 다양한 플랫폼(모바일이나 웹)을 통한 사용자층이 넓을 때
- 간단한 프로젝트(애니메이션 및 복잡한 기능X)
- 여러 디바이스에서 실행되는 앱을 짧은 시간안에 구현 시
- 아이디어의 간단한 테스트 시
PWA(Progressive Web App)
하이브리드 앱과 비슷한데, 사용자들에게 네이티브 앱의 느낌을 준다. 웹 브라우저에서 특별한 다운로드나 설치과정 없이 바탕화면에 바로가기를 추가해서 기본 앱처럼 사용하는 것이 특징이다. 오프라인에서도 사용이 가능하다. 디바이스의 네이티브기능(카메라, GPS 등)을 사용할 수 있다.(iOS보다 안드로이드가 용이)
장점
- 서비스 워커(Service Worker)를 사용하여 오프라인이나 느린 네트워크에서도 작동, 업데이트로 인한 최신 상태 유지
- HTTPS를 통한 안전성 확보
- 다양한 플랫폼에서 실행 가능
- 네이티브 앱보다 시간, 비용 절약
- 반응형 개발
- 설치과정X
- 쉬운 사용(네이티브 앱과 비슷)
- 검색 엔진
단점
- PWA를 지원하지 않는 브라우저가 있음(오래된 버전)
- iOS의 약한 성능 및 애플 디바이스에 대한 적은 지원
- 앱 스토어 사용X
- 큰 배터리 전력 소모
언제?
- 기본 앱의 기능이 있는 다중 플랫폼 앱 필요 시
- 많은 사용자의 동시 접속 서비스
- 강력한 전자상거래 서비스
간단정리!
- 앱 스토어에서 다운 : Native App 또는 Hybrid App
- 브라우저에서 사용 : 웹 앱 또는 PWA
- 서비스가 빠르고 반응성이 필요한 경우 : Native App
- 앱의 성능이나 실행될 장치의 하드웨어 방면 기능이 매우 필요한 경우 : Native App
- 웹 개발에 익숙하고 빠른 기간 내에 앱을 구축하고 싶은 경우: Hybrid App
- 시간과 인력의 부족 : Hybrid App
- 사용자의 방문이 많고 웹과 모바일 둘 다 되는 앱을 구상 중인 경우 : PWA