Top

폰갭 프로그래밍 [모바일 크로스플랫폼 프레임워크]

  • 원서명PhoneGap Essentials: Building Cross-Platform Mobile Apps (ISBN 9780321814296)
  • 지은이존 와고
  • 옮긴이송용근
  • ISBN : 9788960773806
  • 30,000원
  • 2012년 12월 31일 펴냄 (절판)
  • 페이퍼백 | 428쪽 | 188*235mm
  • 시리즈 : 모바일 프로그래밍

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

모바일 애플리케이션은 어려운 일이고, 여러 플랫폼까지 고려하면 훨씬 더 어렵다. 아이폰, 안드로이드, 블랙베리, 심비안 개발을 한 번에 할 순 없을까? 웹 기술(HTML, CSS, 자바스크립트)을 기반으로 크로스 플랫폼 애플리케이션을 만들어주는 폰갭(PhoneGap) 프레임워크가 그에 대한 답을 제시한다. 폰갭의 ‘정수’를 담은 이 책으로 기초부터 탄탄하게 이해해보자. 시장 환경이 하루가 다르게 급변하는 모바일 개발에 관심은 있으나 그 빠른 변화에 질려있는 초심자들에게 든든한 가이드가 되어줄 것이다.


[ 소개 ]

폰갭(PhoneGap)은 원 제작사는 니토비(Nitobi)이고, 현재는 어도비(Adobe)에서 개발, 무료로 배포하는 오픈소스 프레임워크로, 현재 아파치 재단의 아파치 코르도바(Apache Cordova)란 이름으로 널리 사용되고 있다. 폰갭을 사용하면 기존의 HTML5, 자바스크립트, CSS 기술로 애플리케이션을 만들고, 아주 약간의 수정만으로 모든 주요 플랫폼의 독립 애플리케이션으로 배포할 수 있다. 그러나 아직까지 폰갭 프로젝트는 미완성의 상태로 현재 진행 중이며, 실전에 적용할 수 있는 안내서 역시 매우 부족하다. 성공적인 폰갭 개발을 위한 핵심적이고, 완성도 높은, 최초의 튜토리얼인 바로 이 책 『폰갭 프로그래밍』이 그 간극을 채워줄 것이다.

모바일 개발 분야의 경력 개발자 존 와고는 폰갭을 깊이 있게 소개하며, 폰갭으로 어떤 일을 할 수 있고 어떻게 활용할 수 있는지 설명한다. 그리고 구글 안드로이드, 애플 iOS, RIM 블랙베리, 윈도우폰, 삼성 바다, 심비안 OS에서 폰갭 개발에 필요한 개발환경 설정 방법을 알려준다. GPS부터 파일 시스템, 연락처와 카메라, 장치에서 이벤트 활용법까지 실전 예제로 알아봄으로써 폰갭 API의 기능을 마스터할 수 있다. 또한 폰갭 애플리케이션 패키징 유틸리티인 폰갭 빌드의 완벽한 활용법까지 익힐 수 있다.

www.phonegapessentials.com에서 예제 프로젝트 코드, 추가 정보, 에러와 변경사항을 볼 수 있다.


[ 이 책에서 다루는 내용 ]

■ 폰갭 애플리케이션의 구성(폰갭 애플리케이션의 종류와 분류)
■ 장치 파일 시스템과 연락처 데이터베이스의 읽기와 쓰기
■ 크로스 플랫폼 개발 이슈의 중요점
■ 안드로이드, iOS, 블랙베리, 윈도우폰, 바다, 심비안의 폰갭 개발환경 설정
■ 테스트와 디버그를 비롯한 폰갭 프로그래밍의 전 과정
■ 장치 이벤트 대응법과 사용자 알림
■ 폰갭 기능을 확장시킬 써드파티 개발 도구와 플러그인
■ 미디어 파일의 녹취와 재생을 위한 미디어 API 활용
■ 폰갭으로 다양한 플랫폼의 애플리케이션 동시 빌드
■ 카메라, 나침반, 가속센서 등 하드웨어 기능을 적용한 크로스 플랫폼 애플리케이션 제작


[ 이 책의 구성 ]

I부. 폰갭: 폰갭에 대한 청사진을 담고 있다. 즉 폰갭이 어떻게 작동하는지를 중심으로 기능을 알아본다.
II부. 폰갭 개발자 도구: 각각의 대상 플랫폼 SDK와 그에 따른 폰갭 도구의 설치법과 활용법을 설명한다.
III부. 폰갭 API: 다양한 폰갭 API에 대한 상세한 설명과 실제로 활용해볼 수 있는 샘플 코드를 담았다.


[ 추천의 글 ]

요즈음엔 어딜 가더라도 모바일 기기를 쓰는 사람을 쉽게 찾아볼 수 있다. 사람들은 모바일 기기로 가족, 친구와 연락하고, 인근의 식당을 찾거나 최신 뉴스를 확인한다. 모바일 기기와 기기에 설치된 애플리케이션은 현대인의 삶의 한 부분이다. 이러한 모바일 기기를 유용하게 만드는 것은 애플리케이션이다. 일반 사용자는 자신이 좋아하는 애플리케이션을 구성하는 기반 기술이 무엇인지 궁금해 하지 않으며, 그 애플리케이션을 만드는 데 얼마나 오랜 시간과 노력이 필요했는지에 별 관심이 없다. 애플리케이션은 단지 자신의 소용을 위해 유용한 기능을 제공하는 대상이라 여길 뿐이다. 따라서 역으로 생각하면, 개발자의 입장에서는 필요한 기능만 제공할 수 있는 애플리케이션을 만들 수 있다면 어느 것이든 가장 효과적인 방법을 선택해도 좋다는 의미도 된다.

애플리케이션을 독립 애플리케이션으로 만들지, 웹 애플리케이션으로 만들지는 개발 초기 단계에 결정해야 할 중요한 기술 선택사항이다. 사용자의 기대에 부응하려면 독립 애플리케이션의 형태여야 하는 경우도 있지만, 대부분의 애플리케이션은 HTML5, 자바스크립트, CSS의 웹 기술을 활용해도 독립 애플리케이션과 비슷한 수준의 사용자 경험을 제공할 수 있다. 웹 애플리케이션은 많은 개발자에게 친숙한 웹 기술을 기반으로 하기 때문에 개발 과정을 쉽고 빠르게 진행할 수 있다는 큰 장점이 있다. 또 웹 기술은 표준화돼 있어서 안드로이드, iOS폰은 물론 태블릿 등 기기의 종류를 막론하고 다양한 모바일 플랫폼 위에서 거의 동일한 경험을 제공한다.

다만, 독립 애플리케이션에는 카메라, 가속센서 등 장치 기능의 확장성이 제공되는 반면, 웹 애플리케이션은 기기의 웹 브라우저에서 지원하는 기능이 제한된다는 차이는 있다. 이러한 애플리케이션 형태 간의 차이를 좁히려는 노력으로 하이브리드 애플리케이션(hybrid application)이라는 새로운 형태의 애플리케이션이 등장했다. 하이브리드 애플리케이션은 웹 애플리케이션과 마찬가지로 HTML 5, 자바스크립트, CSS를 사용해서 만들지만, 동시에 자바스크립트에서 호출할 수 있는 추가 모듈과 자체 기능을 함께 담고 있다. 이러한 하이브리드 애플리케이션은 웹 코드와 웹 브라우저를 하나의 패키지로 묶어서 독립 애플리케이션의 형태로 작동된다.

이 책은 하이브리드 애플리케이션 제작에 널리 사용되는 오픈소스 툴킷인 폰갭(PhoneGap)을 기반으로 모바일 애플리케이션을 개발하는 방법에 대해 설명한다. 폰갭 API의 확장성을 배우고, 다양한 장치 기능을 애플리케이션에서 활용하는 방법을 알아보자. 폰갭으로 만든 애플리케이션은 배포도 확실하고 간단하다는 점을 쉽게 파악할 수 있을 것이다. 웹 기반으로 애플리케이션을 만든 뒤 다양한 플랫폼 환경에서 작동할 수 있도록 패키징해서, 여러 앱 스토어와 마켓에 올려 배포할 수 있다. 행운이 따른다면, 여러분이 만든 애플리케이션은 누군가에게 최고의 앱이 될지도 모른다.

- 브라이스 커티스 박사
모바일 및 융합 기술
IBM 소프트웨어 그룹 IBM 마스터 인벤터



세상 모든 것들이 모바일의 세계로 가고 있다는 점에는 이론의 여지가 없다. 많은 것들이 모바일로 옮겨 구현된다는 것뿐만 아니라 모바일에는 우리의 일상, 업무, 소통을 통째로 바꿔나가는 막대한 힘이 있다. 모바일 애플리케이션은 사업자는 물론 일반 소비자에게도 중요한 솔루션이 되어가고 있다.

그 결과, 많은 회사가 기본 모바일 앱 개발 기술의 향방이 점점 모바일 웹 쪽으로 향해 가고 있다. 다양한 OS 플랫폼과 끊임없이 변화하는 기기들의 트렌드를 처음부터 제대로 정의하고, 디자인하고, 제작하지 못한다면, 크로스 플랫폼 애플리케이션을 유지 관리하는 일은 매우 어렵고 오랜 시간을 들여야 하는 고비용의 작업이 될 수 있다. 이에 대하여 모바일 애플리케이션 작성과 개발을 간단하게 만들어 주는 가능성 있는 수많은 상용 오픈소스 제품과 프레임워크들이 시장에 속속 등장하고 있다.

폰갭은 이 영역에 있어 가장 유명한 솔루션 중 하나로, 사용자가 본래 알고 있던 웹 개발 기술(물론, 모바일 개발을 위해 약간 수정된)을 활용해 다양한 플랫폼에서 작동하는 애플리케이션을 쉽고 빠르게 만들 수 있게 도와준다. 이러한 선두적인 솔루션의 발달과, 이 기술을 활용해서 애플리케이션을 만들려는 소비자(개발자)의 수요가 점점 늘어남에 따라 존 와고(John Wargo)는 개발에 도움이 되는 이 책을 쓰게 됐다.

존 와고는 십여 년 동안 다양한 컴퓨터 기술을 경험해오면서 유명한 모바일 기기 블랙베리를 만드는 회사, RIM에서 근무한 2006년부터 모바일 개발 플랫폼에 주력하기 시작했다. 내가 존을 처음 만났을 때, 그는 나를 비롯한 일군의 동료들 앞에서 블랙베리 개발의 입출력 기능을 열정적인 태도로 강연했다. 존의 모바일 개발에 대한 열정은 크고 또렷한 목소리에서부터 뚜렷이 전해졌다. 이 책을 읽는 독자들도 그의 열정과 깊은 이해를 분명히 간파할 수 있을 것이다.

우리는 2009년에 존 와고를 AT&T 모빌리티 그룹에 고용하는 행운을 겪을 수 있었다.

곧바로 존 와고는 내가 속한 팀의 모바일 개발 전문가가 되었고, 끊임없이 자신의 기술을 발전시키며 급격히 변화는 모바일 환경의 수많은 새로운 기술을 빠르게 익혀나갔다. 그는 특히, 우리의 고객들에게 모바일 개발환경의 선택사항을 설명하고, 모바일 웹, 독립 애플리케이션, 하이브리드 플랫폼(폰갭과 같은), MEAP나 MCAP 같은 모바일 애플리케이션 플랫폼 등 어떤 경우에 있어서도 고객이 애플리케이션 개발 전략을 정하는 데 명료한 도움을 주는, 없어선 안될 주요한 인재가 되었다.

모바일 개발 전문가들은 모바일 웹 개발 전문가들의 오랜 경험에서 나온 지혜를 얻을 수 있는 이 책을 통해, 폰갭으로 자신의 모바일 웹 애플리케이션을 독립 모바일 애플리케이션으로 만드는 데 필요한 기술들을 익힐 수 있을 것이다. 이 책은 독자가 폰갭을 활용하는 개발환경의 설정과 그 활용방법부터, 프레임워크에서 제공하는 API 활용법까지 필요한 모든 내용을 자세히 설명한다. 그야말로, 폰갭으로 개발을 시작하는 데 필요한 모든 것이 담겨 있는 책이다.

급격히, 그리고 끊임없이 변화하는 모바일 세상에서의 성취가 두려움이나 탈진의 원인이 돼서는 안 된다. 그보다는 폰갭처럼 발전하는 기술과 이 책과 같은 좋은 자료를 활용하는 것이 진정한 해결책을 얻어내는 훌륭한 방법일 것이다.

- 짐 험프너
AT&T 인더스트리 솔루션 사업부 부사장

저자/역자 소개

[ 저자 서문 ]

이 책은 폰갭에 대한 책이다. 폰갭은 HTML, CSS, 자바스크립트 같은 표준 웹 기술을 활용해서 다양한 모바일 기기 플랫폼에 독립 애플리케이션을 만들 수 있도록 도와주는 정말 멋진 기술이다. 나 자신도 폰갭을 수년간 보아 왔고, 실제로 그것을 활용하게 됐을 때, 다수의 플랫폼에서 실행시킬 수 있는 단일 애플리케이션을 간단하게 만들 수 있는 기술로 압도적인 경쟁력을 갖췄다는 것을 금세 알 수 있었다.

나 자신은 RIM과 안드로이드 애플리케이션을 만드는 과정에서 자바를 익혔다. OS 개발에 필요한 오브젝티브C를 건드려 보기도 했고, 심지어는 비주얼 베이직으로 윈도우 모바일 개발을 시도해 보기도 했다. 그러나 세상은 단 하나의 모바일 플랫폼에서 작동하는 애플리케이션의 좁은 관점에서 벗어나, 모든 모바일 기기 플랫폼에서 연속성 있게 실행시킬 수 있는 애플리케이션의 세계로 향해 나아가고 있다. 폰갭은 바로 이 문제의 해결을 도와준다.

이 책은 폰갭 프레임워크의 가능성을 한 단계 끌어올리고 싶어하는 웹 개발자들을 대상으로 하여 만들었다. 독자들은 웹 애플리케이션을 만드는 방법을 이미 알고 있고, 폰갭에서 제공하는 여러 기능의 가능성에 대해 더 알고 싶은 사람들이라고 전제한다. 이 책은 폰갭 API의 가능성과 폰갭에서 제공하는 도구들을 활용하는 방법을 중점적으로 조망한다.

이 책을 구성하는 중심 주제를 이해하려면 독자 자신이 하나 혹은 그 이상의 일반 스마트폰에 대한 경험이 있어야 한다. 스마트폰 SDK의 경험은 일부 도움이 될 수도 있겠지만, 독립 애플리케이션을 설치하고 활용하는 방법은 각각의 플랫폼 지원을 설명할 때 한 번 더 다룬다.


[ 저자 소개 ]

존 와고(Jhon M. Wargo)
존 와고는 오랜 시간 전문 소프트웨어 개발자로 일해왔다. 그 밖에 다년간 컨설턴트로 일하며 많은 엔터프라이즈용/상업용 소프트웨어를 만들어 상을 받기도 했다.
모바일 개발에 대한 저자의 관심은 리서치 인 모션(RIM)에서 미국의 모바일 제공자와 그 고객들을 위한 개발 지원팀에 고용되면서 시작되었다. 그는 RIM을 떠나며 블랙베리에 관한 첫 책 『BlackBerryⓇ Development Fundamentals』(Addison-Wesley, 2010, www.bbdevfundamentals.com)을 집필했다.
존 와고는 IBM 로터스 도미노(Lotus Domino) 개발자와 관리자를 위한 기술지 「The View」의 기술 고문이며, 모바일 개발에 관한 여러 기고를 남긴 바 있다.
최근에 이르러 그는 크로스 플랫폼 개발도구를 전문으로 하며, 엔터프라이즈용/상업용 애플리케이션의 기획, 제작을 돕는 AT&T의 어드벤스 모바일 애플리케이션 프랙티스 그룹의 그룹 매니저로 일하고 있다. 현재 SAP의 모바일 솔루션 매니지먼트 팀의 일원으로, 자신의 개발 경험을 SAP의 모바일 개발도구에 활용하는 데 주력하고 있다.


[ 옮긴이의 말 ]

"게으른 개발자가 프로그래밍을 잘 한다." 개발자들 사이에서 떠도는 객담이다. 언뜻 역설적으로 보이지만, 조금이라도 더 쉽고 편하고 간단하게 문제를 해결하고자 하는 욕망, 즉 조금이라도 더 게으르고자 하는 그 치열한(?) 욕망이 혁신을 일궈낸다는 뜻을 담고 있다. 부지런함과 근면성실함이 나쁘다는 것은 아니지만, 날이 갈수록 단순히 바쁘게 뛰어다니는 것보다 '스마트한' 문제 해결의 중요성이 더 부각되고 있다.

폰갭 플랫폼은 모바일 개발자들의 게으름이 일궈낸 결정체다. ”거의 같은 기능의 프로그램을 다른 플랫폼 대상이라고 따로따로 만들어야 하나?”라는 귀찮음이 모인 정수. 모바일 애플리케이션 개발을 구상이라도 해 본 사람들은 누구나 공감할 수 있을 것이다.

물론, 다들 알고 있다. 일반적인 경우에 항상 최적인 이상적인 해답은 글자 그대로 “이상한데?”임을. 이상해는 이상으로 현실에 존재하지 않는다. 범위를 넓히면 깊이는 줄어들고, 깊이를 늘리면 범위가 좁아진다. 상황에 따라, 대안에 따라 분명한 장단점이 있다. 물론, 폰갭은 은총알이 아니다. 그러나 분명 여러 독자에게 가장 스마트한 해결책 정도는 되어 줄 수 있을 것이다.

2012년 연말, 출간을 앞두고 막바지 작업을 하는 와중에, 책에서는 베타버전으로 소개되던 폰갭 빌드가 정식 버전으로 출시되었다. 번역 작업을 진행하던 7월의 폰갭 최신 버전은 2.0.0이었지만, 현 시점(12월)에서는 2.2.0이다. 폰갭은 변화하는 판도에 빠르게 적응해가고 있다. 어쩌면 이 책, 그리고 다른 책에서 소개하는 폰갭의 많은 내용들이 일년도 지나지 않아 완전히 달라져 있을지도 모른다. 하지만, 환경이 빠르게 변화할수록 중심을 굳건히 하는 것이 중요하다. 뿌리가 깊어야 바람에 무너지지 않는다. 그런 의미에서 폰갭의 엣센스를 집약한 이 책이 가장 '스마트한' 선택이 될 것이다.


[ 옮긴이 소개 ]

송용근
포항공과대학교 컴퓨터공학과를 다녔고, (주)사이람에서 SNA 연구와 소프트웨어 개발을, TEDxSeoul 에서 오거나이저로 일했다. 현재 일본 히로시마 대학 의학대학원 석사과정으로 있으며, 마가진(magazyn.co.kr)의 엔지니어를 겸직하고 있다. 복잡한 시스템을 관계로 풀어내는 것이 취미이자 특기. 사람 간의 소통과 관계 또한 주요 탐구대상이다. 번역서로 『Flash Mobile 한국어판』(에이콘출판사, 2011), 『Visualize This 비주얼라이즈 디스』(에이콘출판사, 2012) 등이 있고, 『빅데이터와 SNS 시대의 소셜 경험 전략』(에이콘출판사, 2012)을 공저했다.

목차

목차
  • I부 폰갭
  • 1장 폰갭
    • 간추린 폰갭의 역사
    • 폰갭이 필요한 이유
    • 폰갭의 작동 방식
    • 컨테이너 디자인
    • 폰갭 애플리케이션 만들기
    • 폰갭 애플리케이션 만들기
    • 폰갭의 한계
    • 폰갭 플러그인
    • 폰갭의 지원
    • 폰갭 리소스
    • 하이브리드 애플리케이션 프레임워크
  • 2장 폰갭의 개발, 테스트, 디버깅
    • Hello, World1
    • 폰갭 시작하기
    • 폰갭 API의 활용
    • 폰갭 애플리케이션의 사용자 인터페이스 고도화
    • 폰갭 애플리케이션의 테스트와 디버그
    • 크로스 플랫폼 개발 이슈 해결
  • II부 폰갭 개발자 도구
  • 3장 폰갭 안드로이드 개발환경 설치
    • 안드로이드 SDK 설치
    • 이클립스 개발환경 설정
    • 안드로이드 폰갭 프로젝트 만들기
    • 안드로이드 폰갭 애플리케이션 테스트
  • 4장 폰갭 바다 개발환경 설치
    • 정확한 폰갭 바다 파일 다운로드와 설치
    • 바다 폰갭 프로젝트 만들기
    • 바다 애플리케이션 프로파일 만들기
    • 바다 폰갭 애플리케이션 테스트
  • 5장 폰갭 블랙베리 개발환경 설치
    • 블랙베리 WebWorks SDK 설치
    • 블랙베리 폰갭 프로젝트 만들기
    • 블랙베리 폰갭 애플리케이션 빌드
    • 블랙베리용 폰갭 애플리케이션 테스트
  • 6장 폰갭 iOS 개발환경 설치
    • 애플 개발자로 등록
    • 엑스코드 설치
    • iOS 폰갭 프로젝트 만들기
    • iOS 폰갭 애플리케이션 테스트
  • 7장 폰갭 심비안 개발환경 설치
    • 노키아 웹 툴 설치
    • Make 유틸리티 설치
    • 심비안 폰갭 프로젝트 만들기
    • 애플리케이션 세팅 설정
    • 심비안에 HelloWorld3 적용
    • 심비안 폰갭 프로젝트 패키지
    • 심비안 폰갭 애플리케이션 테스트
  • 8장 폰갭 윈도우폰 개발환경 설치
    • 윈도우폰 개발도구 설치
    • 윈도우폰 폰갭 프로젝트 생성
    • 윈도우폰 폰갭 애플리케이션 테스트
  • 9장 폰갭 빌드
    • 용도
    • 시작하기
    • 설정
    • 폰갭 빌드용 애플리케이션 만들기
    • 폰갭 빌드 프로젝트 생성
    • 빌드 문제점의 해결
    • 애플리케이션 테스트
    • 디버그 모드
  • III부 폰갭 API
  • 10장 가속센서
    • 장치 방향의 요청
    • 장치 방향 워치
  • 11장 카메라
    • 그림 가져오기
    • 카메라 옵션 설정
      • quality
    • 카메라 문제 해결
  • 12장 캡쳐
    • 캡쳐 API의 활용
    • 캡쳐 옵션 설정
    • 캡쳐
  • 13장 나침반
    • 장치 방향 가져오기
    • 장치 방향 워치

  • 14장 커넥션
  • 15장 연락처
    • 연락처 만들기
    • 연락처 검색
    • 연락처 복사
    • 연락처 삭제
  • 16장 장치
  • 17장 이벤트
    • 이벤트 리스너 생성
    • deviceready 이벤트
    • Application Status 이벤트
    • Network Status 이벤트
    • Button 이벤트
  • 18장 파일
    • 사용 가능한 저장소 유형
    • 장치 파일시스템에 접근
    • 디렉토리 항목 읽어오기
    • FileEntry와 DirectoryEntry 프로퍼티
    • 파일 쓰기
    • 파일 읽기
    • 파일과 디렉토리의 삭제
    • 파일과 디렉토리의 복사
    • 파일과 디렉토리의 이동
    • 파일을 서버로 업로드
  • 19장 위치정보
    • 장치의 현재 위치 가져오기
    • 로케이션 워치
  • 20장 미디어
    • Media 객체
    • 오디오 파일 재생
    • 오디오 파일 녹음
    • 실제 미디어 활용
  • 21장 알림
    • 시각적 알림(경고와 확인)
    • 알림
    • 진동
    • 알림 적용
  • 22장 저장소
    • 로컬 저장소
    • SQL 데이터베이스
  • 부록 A 폰갭 파일 설치
    • 삼성 바다 개발 준비
    • iOS 개발 준비
    • 윈도우폰 개발 준비
  • 부록 B 오라클 JDK 설치
    • JDK 다운로드
    • JDK 설치
    • 윈도우 경로 설정
    • 설치 확인
  • 부록 C Ant 설치하기
    • OS X의 설치

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안