첫 아이폰이 2007년 6월에 출시된 후 폭발적인 변화와 성장을 겪어온 모바일 앱 시장. 오늘 현재에는 다양한 방법으로 모바일 앱을 개발할 수 있다. 문제는 – 어느 방법을 선택할 것인가
모바일 앱을 개발할 때 어떤 솔루션이 가장 적합할까를 결정하려면 먼저 그 앱이 어떤 종류의 기능이 필요한지, 어느 정도 시간과 경제적 투자가 가능한지, 대상 사용자는 어떤 계층 일지 미리 따져 보는 것이 필요하다. 우선 전반적 선택 종류들을 요약해보면:
이제 각각의 특징과 장단점을 알아보자.
Android 또는 iOS 같은 어떤 구체적인 플랫폼만을 위해 만들어진 응용 프로그램을 네이티브 앱(Native App)이라고 한다. Android 모바일 앱 개발의 경우는 Kotlin 또는 Java로 네이티브 앱을 만들 수 있고 iOS의 경우 Swift 또는 Objective C로 만들 수 있다. 덕분에 앱의 실행 속도가 빠르고 유용한 API의 지원도 받을 수 있다. 반면 다른 운영체제에서도 실행되기 위해서는 시간도 노력도 돈도 많이 드는 단점이 있다.
예) 계산기, 노트 등 폰에 기본적으로 내장되어있는 앱들, 대부분의 게임
한가지!!
최근 주목할 것은, Java나 Swift/Objective C 통한 네이티브 앱 개발 외에, 크로스 플랫폼 프레임 워크(Cross-platform frameworks)의 인기가 증가하고 있다. Google이 만든 Flutter와 Facebook이 만든 React Native가 현재 크로스 플랫폼 앱 개발 시장의 선두 주자인데, 더 자세한 내용은 따로 한 글 올릴 예정.
하이브리드 앱은 네이티브 앱과 웹 앱의 기능을 결합한 것이라고 보면 된다. JavaScript, HTML 및 CSS와 같이 잘 알려진 언어와 프레임 워크를 사용하여 다양한 플랫폼에서 사용할 수 있는 하이브리드 앱을 빠르게 만들 수 있다. 비용도 시간도 덜 들고 유지 보수도 쉽고 기본 API 기능도 사용 가능하나 오프라인(offline)으로는 작동하지 않고 똑같은 코드를 베이스로 하기 때문에 안드로이드나 아이폰 등 각 디바이스의 특정 기능을 사용하는 데 문제가 발생할 수도 있다.
예) 인스타그램, Gmail, 금융기관 앱 등
PWA는 하이브리드 앱과 비슷하지만 약간 다르다. 기본적으로 사용자들에게 네이티브 앱의 느낌을 주면서도 웹 브라우저에서 바탕화면에 바로가기를 추가하여 특별한 다운로드와 인스톨 과정 없이 기본 앱처럼 사용할 수 있다는 것이 특징이다. 오프라인에서도 사용할 수도 있고 알림 메시지도 받을 수 있고 iOS보다 안드로이드가 훨씬 용이하긴 하지만 디바이스들의 하드웨어적인 기능(카메라나 GPS 같은)을 사용할 수도 있다.
PWA는 각 플랫폼에 최적화된 사용자 경험을 기반으로 하며, PWA만을 위한 언어나 프레임워크 또는 PWA만을 위한 전문 개발자도 필요가 없다. 리액트(React)나 앵귤러(Angular)만 있으면 만들 수 있다.
자 이제 어떤 종류의 앱이 더 적합한지 결정이 되었다면 다음 단계로 어떤 과정으로 각각의 앱이 만들어지는지 알아볼 시간...
다음에 또.
좋은 글 감사합니다. 네이티브는 줄어드게 될가요?