티스토리 뷰
모바일 앱 개발을 하다 보면, 아이폰 개발자와 안드로이드 개발자가 각각 필요한 경우가 많습니다.
물론 두 가지를 혼자서 하는 경우도 있겠지만 대부분의 경우에는 전문적으로 나누어져 있지요.
그러다 보니 개발이나 운영에 있어서 비용이 두 배로 들어가는 경향이 있습니다.
그래서 모바일 앱 초창기부터 하나의 소스로 모든 앱을 개발할 수 있다는 플랫폼들이 나왔었던 것 같습니다.
그중에서 폰갭(phonegap)이라고하는 오픈 소스로 이루어진 하이브리드 앱 개발 도구에 대해서 간략하게 소개하려고 합니다.
모바일 웹앱과 하이브리드 앱
현재 모바일 웹 페이지들을 보면 마치 앱처럼 동작하도록 구성하기도 합니다.
아이폰용 Web App 만들기에서 소개해 드린대로 파이낸셜 타임즈 처럼 HTML5로 앱처럼 구성하는 경우가 있습니다.
아무리 홈 화면에 추가해서 앱처럼 사용할 수는 있지만 이러한 모바일 웹앱은 웹 페이지에 불과하며
HTML5에서 지원하는 것 이상의 스마트폰 자원에 접근할 수 없다는 단점이 있습니다.
그러나 하이브리드 앱은 HTML5나 CSS와 같은 웹 기술을 똑같이 사용하기는 하지만
완전한 앱으로 만들어져서 앱스토어나 구글플레이에 등록할 수 있도록 구성된 것입니다.
즉 XCode로 아이폰 앱을 만들어서 앱스토어에 등록하는 것처럼,
XCode에 하이브리드 앱을 위한 SDK를 설정하고 웹 기술로 개발한 다음 앱스토어를 통해 배포하는 것이죠.
즉 동일한 웹 기술을 사용하지만, 모바일 웹앱은 별도로 URL을 홍보하고 "홈화면에 추가" 하도록 유도해야 하지만
하이브리드 앱은 바로 앱스토어나 구글플레이에 등록할 수 있다는 차이가 있습니다.
반면에 모바일 웹앱과 달리 하이브리드 앱은 수정한 내용이 반영되려면 등록된 앱을 업데이트해야 하므로 일정 시간이 소요되겠지요.
또한 현재 하이브리드 앱 기술이 널리 활성화 되지 않은 가장 큰 이유중의 하나는 바로 실행 속도 때문이기도 합니다.
중간에 어떤 엔진을 통해서 실행해야 하므로 사용자들이 더 느리게 느껴지는 부분이 있습니다.
이러한 단점에도 불구하고 one-source multi-use를 지원하고, 네이티브 앱처럼 스마트폰의 자원에 쉽게 접근할 수 있다는 장점이 있으므로
앞으로 점차 폰갭과 같은 하이브리드 앱이 발전할 가능성은 높다고 봅니다.
폰갭 설치
폰갭을 설치하기 전에 아이폰이나 안드로이드 개발 환경이 갖춰져 있어야 합니다.
폰갭의 SDK는 총 7개의 플랫폼을 지원하면 각각에 적합한 SDK를 제공하고 있습니다.
최근에 지원하는 윈도우즈 폰 7, 아이폰, 안드로이드, Black Berry, 바다, 심비안, webOS까지 총 7개 플랫폼을 지원한다고 하네요.
플랫폼별 폰갭 설치와 관련해서는 아래 링크를 참고하시면 됩니다.
- Getting Started with Android
- Getting Started with Blackberry
- Getting Started with iOS
- Getting Started with Symbian
- Getting Started with WebOS
- Getting Started with Windows Phone
- Getting Started with Bada
폰갭 사이트를 보면 Cordova라는 이름을 많이 사용합니다. 버전 1.5인가 부터 phonegap 대신에 cordova를 사용한다고 하네요.
폰갭 API들
폰갭에서 지원하는 주요 API는 다음과 같습니다.
각각의 API들은 문서로 제공되는 API Reference를 통해서 확인할 수 있습니다.
Accelerometer
가속센서 - Tap into the device's motion sensor.
Camera
카메라 - Capture a photo using the device's camera.Capture
캡처 - Capture media files using device's media capture applications.Compass
방향 정보 - Obtain the direction that the device is pointing.Connection
커넥션 - Quickly check the network state, and cellular network information.Contacts
연락처 - Work with the devices contact database.Device
단말기 정보 - Gather device specific information.Events
이벤트 - Hook into native events through JavaScript.File
파일 - Hook into native file system through JavaScript.Geolocation
위치 정보 - Make your application location aware.Media
미디어 - Record and play back audio files.Notification
알림 - Visual, audible, and tactile device notifications.Storage
저장소 - Hook into the devices native storage options.
아직 폰갭을 제대로 테스트해보지는 않았지만 기대가 조금 되기는 하네요. ^^
예전에 Marmalade나 Motherapp등을 봤었는데요. 현재는 폰갭이 대세를 이루고 있는 것 같습니다.
앞으로 시간 날때 조금씩 테스트 해보려구 하네요.
'프로그래밍 > Web' 카테고리의 다른 글
JSP 페이지 이동 방법 (0) | 2012.08.14 |
---|---|
[웹표준 #5] <strong>, <em>과 <b>, <i>를 구분해서 사용하자! (1) | 2012.08.05 |
웹에서 사용할 수 있는 무료 그래프 툴에 대하여 (0) | 2012.06.25 |
[웹표준 #4]테이블 태그의 활용법 (0) | 2012.06.11 |
[웹표준 #3] 문서 제목의 마크업은 Heading을 쓰자. (0) | 2012.05.14 |