제가 자주 사용하던 스마트폰 앱이 2013년 이후로 서비스가 종료됨에 따라 비슷한 서비스를 제공해 주는 어플을 검색했지만
기존에 쓰던 어플보다 불편했습니다. 그래서 나만의 어플을 개발하기 위해 자료 조사를 들어갔습니다.
우선 저에게 필요한 건 아이폰 유저이기에 Mac과 XCode에 대한 지식이었습니다.
그러나 금전적인 한계에 부딪혀 포기할려던 찰나에 모바일 웹앱(Web App)이라는 것을 알게 됩니다.
우선 모바일 웹앱으로 개발을 해서 혼자 써야겠습니다.
모바일 애플리케이션의 종류
네이티브 앱(Native App)
제가 일반적으로 생각했던 스마트폰에 설치되고 운용되는 전용 애플리케이션입니다.
각 플랫폼에 맞는 프로그래밍 언어와 SDK로 개발해야 하며 기기의 고유 정보, 하드웨어에 접근할 수 있어서
최적화된 고성능 애플리케이션을 개발할 수 있고, 앱 스토어 or 플레이 스토어 등 마켓에 등록해서 판매할 수 있습니다.
아이폰 개발자(특히 개인)에게는 네이티브 앱을 개발한다는 것은 금전적으로 부담이 됩니다.
모바일 웹(Mobile Web)
일반적인 웹 기술로 개발되고 모바일 브라우저에 의해 실행되는 웹 애플리케이션을 통칭하는 말입니다.
쉽게 말해 일반적인 웹 사이트의 느낌을 모바일로 그대로 옮긴 형태입니다.
모바일 웹앱(Mobile Web App)
일반적인 웹 사이트보다 모바일에 더 최적화되고 네이티브 애플리케이션화된 형태를 한정하는 표현입니다.
모바일 웹앱은 웹 기술만 사용해서 풀 스크린 모드, 애니메이션 효과, 터치 상호작용, 비동기 통신, 로컬 저장소, 오프라인 지원, 향상된 스타일 등을 구현하여 모바일 환경에서 네이티브 애플리케이션과 유사한 실행 환경, 사용자 경험을 제공하는 형태의 애플리케이션입니다.
마치 웹사이트에 접속을 하면 앱을 실행한 것처럼 보여주는 것입니다.
웹앱을 개발하면 Mac이 필요하지도 XCode의 언어를 새로 공부하지 않아도 됩니다. 하지만 네이티브 앱보다 구동이 빠르지 않고 하드웨어 정보, 고유정보에 접근할 수 없습니다.
종류는 jQTouch, jQuery Mobile, Sencha Touch 이 세가지가 대표적입니다.
하이브리드 앱(Hybrid App)
네이티브 앱과 모바일 웹앱의 장점을 살린 것이 하이브리드 앱입니다. 모바일 웹앱을 네이티브 앱으로 바꾸는 것입니다.
일반적인 웹 기술로도 모바일 기기의 고유 정보와 상호작용 할 수 있게 하고 앱 스토어에 올리고 판매도 할 수 있는 형태의 애플리케이션입니다. 앱스토어에 올리려면 Mac은 필수로 있어야 합니다. 이것이 가능하려면 모바일 기기의 고유 기능을 웹 기술로 호출할 수 있는 추상화된 API가 필요하며 웹앱을 네이티브 앱으로 감싸주는 장치가 필요합니다. 폰갭(PhoneGap), 티타늄(Titanium)과 같은 제품이 이와 같은 역할을 하는 대표적인 제품입니다.
네이티브 앱과 모바일 웹앱의 차이
|
네이티브 앱 |
모바일 웹앱 |
하드웨어 접근성 |
높음 |
낮음 |
구현 자유도 |
높음 |
보통 |
실행 속도 |
빠름 |
보통 |
등록/판매 |
가능 |
불가능 |
사용자 진입 |
높음 (앱 스토어 배포) |
낮음 (브라우저를 이용한 URL접근) |
개발 환경 |
Object-C, Java 등 각 플랫폼에 맞는 언어와 SDK 사용 |
HTML, JavaScript, CSS 등 |
개발 비용 |
높음 |
낮음 |
멀티 플랫폼 지원 |
낮음 |
높음 |
업데이트 용이성 |
낮음 |
높음 |
본문 출처 : 시작하세요! 모바일 웹 개발 (박종명 지음)