하이브리드 앱 개발을 위한 폰갭(phonegap) 소개

|



모바일 앱 개발을 하다 보면, 아이폰 개발자와 안드로이드 개발자가 각각 필요한 경우가 많습니다. 

물론 두 가지를 혼자서 하는 경우도 있겠지만 대부분의 경우에는 전문적으로 나누어져 있지요. 

그러다 보니 개발이나 운영에 있어서 비용이 두 배로 들어가는 경향이 있습니다. 


그래서 모바일 앱 초창기부터 하나의 소스로 모든 앱을 개발할 수 있다는 플랫폼들이 나왔었던 것 같습니다. 

그중에서 폰갭(phonegap)이라고하는 오픈 소스로 이루어진 하이브리드 앱 개발 도구에 대해서 간략하게 소개하려고 합니다. 



모바일 웹앱과 하이브리드 앱

현재 모바일 웹 페이지들을 보면 마치 앱처럼 동작하도록 구성하기도 합니다.

아이폰용 Web App 만들기에서 소개해 드린대로 파이낸셜 타임즈 처럼 HTML5로 앱처럼 구성하는 경우가 있습니다. 

아무리 홈 화면에 추가해서 앱처럼 사용할 수는 있지만 이러한 모바일 웹앱은 웹 페이지에 불과하며

HTML5에서 지원하는 것 이상의 스마트폰 자원에 접근할 수 없다는 단점이 있습니다. 


그러나 하이브리드 앱은 HTML5나 CSS와 같은 웹 기술을 똑같이 사용하기는 하지만 

완전한 앱으로 만들어져서 앱스토어나 구글플레이에 등록할 수 있도록 구성된 것입니다. 

즉 XCode로 아이폰 앱을 만들어서 앱스토어에 등록하는 것처럼, 

XCode에 하이브리드 앱을 위한 SDK를 설정하고 웹 기술로 개발한 다음 앱스토어를 통해 배포하는 것이죠. 


즉 동일한 웹 기술을 사용하지만, 모바일 웹앱은 별도로 URL을 홍보하고 "홈화면에 추가" 하도록 유도해야 하지만 

하이브리드 앱은 바로 앱스토어나 구글플레이에 등록할 수 있다는 차이가 있습니다. 

반면에 모바일 웹앱과 달리 하이브리드 앱은 수정한 내용이 반영되려면 등록된 앱을 업데이트해야 하므로 일정 시간이 소요되겠지요. 

또한 현재 하이브리드 앱 기술이 널리 활성화 되지 않은 가장 큰 이유중의 하나는 바로 실행 속도 때문이기도 합니다. 

중간에 어떤 엔진을 통해서 실행해야 하므로 사용자들이 더 느리게 느껴지는 부분이 있습니다. 


이러한 단점에도 불구하고 one-source multi-use를 지원하고, 네이티브 앱처럼 스마트폰의 자원에 쉽게 접근할 수 있다는 장점이 있으므로 

앞으로 점차 폰갭과 같은 하이브리드 앱이 발전할 가능성은 높다고 봅니다. 


폰갭 설치

폰갭을 설치하기 전에 아이폰이나 안드로이드 개발 환경이 갖춰져 있어야 합니다. 

폰갭의 SDK는 총 7개의 플랫폼을 지원하면 각각에 적합한 SDK를 제공하고 있습니다. 



최근에 지원하는 윈도우즈 폰 7, 아이폰, 안드로이드, Black Berry, 바다, 심비안, webOS까지 총 7개 플랫폼을 지원한다고 하네요. 

플랫폼별 폰갭 설치와 관련해서는 아래 링크를 참고하시면 됩니다. 


폰갭 사이트를 보면 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.























아직 폰갭을 제대로 테스트해보지는 않았지만 기대가 조금 되기는 하네요. ^^

예전에 MarmaladeMotherapp등을 봤었는데요. 현재는 폰갭이 대세를 이루고 있는 것 같습니다. 

앞으로 시간 날때 조금씩 테스트 해보려구 하네요. 






Trackback 0 And Comment 2
  1. 소중한너 2012.08.15 23:40 address edit & del reply

    잘보았습니다 제 블로그에 미니님의 블로그 링크를 추가하였습니다.

    • 미니~ 2012.08.16 17:30 신고 address edit & del

      감사합니다. 블로그 주소도 알려주세요.. ^^