Top

타이타늄 모바일 앱 프로그래밍 [자바스크립트를 이용한 빠른 네이티브 애플리케이션 개발]

  • 원서명Appcelerator Titanium Smartphone App Development Cookbook (ISBN 9781849513968)
  • 지은이보이들리 폴렌타인
  • 옮긴이손병대
  • ISBN : 9788960773479
  • 30,000원
  • 2012년 09월 28일 펴냄
  • 페이퍼백 | 380쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 모바일 프로그래밍

책 소개

최근 가장 인기 있는 언어로 각광받는 자바스크립트를 이용해 크로스플랫폼(아이폰과 안드로이드) 애플리케이션을 만들 수 있는 타이타늄(Titanium) 모바일에 관한 입문서다.
타이타늄을 활용하면, 오브젝티브C나 자바를 몰라도 아이폰과 안드로이드 앱 개발이 가능하다. 이 책에 수록된 10여 가지의 앱과 다양한 예제들을 통해 기초적인 UI 컨트롤을 배우게 된다.
뿐만 아니라 카메라와 마이크, GPS 같은 디바이스 기능과 소셜 미디어를 활용한 매시업 서비스, 그리고 오브젝티브C를 이용해 네이티브 모듈을 만드는 방법까지, 깨알 같은 예제로 모바일 앱 개발에 자신감을 심어줄 것이다.

[ 소개 ]

타이타늄 스튜디오(Titanium Studio)는 안드로이드와 아이폰 애플리케이션을 모두 개발할 수 있는 무료 플랫폼으로, 이 책에서는 타이타늄을 이용해 네이티브 앱을 만들 때 발생할 수 있는 일반적인 문제와 해결책을 모두 담고 있다. 타이타늄 API는 사용하기 쉬운 데다가 효과도 배로 얻을 수 있다. 뿐만 아니라 짧은 시간 안에 모바일 애플리케이션을 개발하는 데도 자신감이 생길 것이다.

『타이타늄 모바일 앱 프로그래밍』은 자바스크립트를 활용해 좀 더 쉽고 실용적인 방법으로 아이폰과 안드로이드 앱을 만들 수 있게 도와준다. 이 책은 기본적인 UI를 만드는 과정에서부터 이벤트 핸들링과 외부 서비스 연동은 물론 작성한 애플리케이션을 아이튠즈 앱스토어와 안드로이드 마켓에 등록하는 과정도 모두 다룬다.



[ 이 책에서 다루는 내용 ]

■ 네이티브 컴포넌트를 사용해 강력한 인터페이스 설계
■ 데이터를 로컬에 저장하는 방법과 SQLite를 활용한 저장 방법
■ 구글 맵과 연동해 경로를 표시하고, 나침반과 애노테이션 등을 활용하는 방법
■ 애니메이션과 트랜지션을 활용해 멋진 레이아웃 효과 만들기
■ 트위터와 페이스북 같은 소셜 미디어와 연동하는 방법
■ 포스퀘어 서비스와 연동하고, 푸시 알림을 위해 어번(Urban) 에어십 서비스 활용
■ 내장 카메라와 오디오 레코더를 모두 활용


[ 이 책의 대상 독자 ]

이 책은 네이티브 아이폰과 안드로이드 애플리케이션을 함께 만들고 싶어 하는 개발자들을 위한 책이다. 타이타늄 개발은 오브젝티브C나 자바를 몰라도 되지만, 자바스크립트와 웹 개발 지식은 조금 필요하다.


[ 이 책의 구성 ]

1장, '네이티브 UI 컴포넌트로 앱 제작'에서는 타이타늄 모바일에 대한 전반적인 내용을 알아본다. 기본적인 레이아웃과 컨트롤 생성하기, 탭 그룹 인터페이스와 웹 뷰들을 만들고, 이런 컨트롤을 멀티 윈도우에 추가하는 방법을 알아본다.

2장, '지역 데이터와 원격 데이터 소스로 작업'에서는 간단한 앱을 하나 만들어 원격지에 있는 데이터를 HTTP 요청으로 가져오는 방법을 다룬다. 그리고 XML과 JSON 형식의 데이터를 해석하고, 값을 추출하는 방법도 알아본다. 마지막으로 SQLite 데이터베이스와 기본적인 SQL 쿼리를 사용해 지역 데이터베이스에 데이터를 저장하고 검색하는 방법을 알아본다.

3장, '구글 맵과 GPS를 이용한 앱 작성'에서는 맵뷰를 이용해 애플리케이션을 만들고, 어노테이션과 지오코딩, 이벤트를 이용해 사용자가 지나간 위치를 추적하는 방법을 알아본다. 그리고 디바이스에 내장된 나침반을 이용해 어느 방향으로 가고 있는지 기본적인 추적 경로도 만들어본다.

4장, '오디오, 비디오, 카메라 사용'에서는 카메라와 사진 앨범, 오디오 레코더 같은 장치에 내장된 미디어를 다루는 방법을 알아본다.

5장, '소셜 미디어와 이메일을 앱과 연동'에서는 페이스북과 트위터, 그리고 디바이스에 내장된 이메일 프로그램과 연동하는 방법을 다룬다. 더불어 페이스북 애플리케이션을 만드는 방법과 OAuth에 대해서도 간략히 알아본다.

6장, '이벤트와 프로퍼티 처리'에서는 타이타늄에서 프로퍼티가 동작하는 방식과 전역 변수로 활용하는 방법을 알아본다. 그리고 이벤트 리스너와 핸들러가 동작하는 방법과 커스텀 이벤트를 발생시키는 방법도 알아본다.

7장, '애니메이션 생성, 좌표 변환, 드래그앤드롭'에서는 애니메이션을 만드는 방법과, 2D와 3D 매트릭스를 이용해 객체를 변환하는 방법을 다룬다. 그리고 컨트롤을 드래깅하고 드롭하는 방법과 toImage 함수로 화면을 캡처하는 방법도 알아본다.

8장, '네이티브 폰 애플리케이션과 API 상호작용'에서는 연락처와 달력 같은 네이티브 디바이스 API와 상호작용하는 방법을 알아본다. 그리고 로컬 알림과 백그라운드 서비스에 대해서도 알아본다.

9장, '외부 서비스와 연동'에서는 OAuth와 HTTP 인증에 대해 자세히 알아보고, 야후 YQL과 포스퀘어 같은 외부 서비스 API를 사용하는 방법도 알아본다. 그리고 푸시 알림을 위한 설정과 연동 방법도 알아본다.

10장, '커스텀 모듈로 애플리케이션 작성'에서는 엑스코드에서 오브젝티브C로 네이티브 모듈을 만들어 타이타늄에서 제공하는 네이티브 기능을 확장해본다. 실제 단축 URL 서비스 중 하나인 Bit.ly 서비스를 이용해 샘플 모듈을 처음부터 끝까지 만들어본다.

11장, '플랫폼 간의 차이점, 디바이스 정보와 특징'에서는 타이타늄에서 디바이스 정보를 얻는 방법을 살펴본다. 예를 들어 전화를 걸거나 메모리 사용량과 배터리 잔량 등을 확인하는 방법을 알아본다. 그리고 iOS와 안드로이드 플랫폼에서 화면 모드에 따라 코드가 어떻게 달라지는지도 알아본다.

12장, '배포 준비와 앱스토어에 등록'에서는 자신이 만든 애플리케이션을 앱스토어에 등록하는 절차와 배포하는 방법을 알아본다. 그리고 개발 인증서와 프로비저닝 프로파일을 앱에 제대로 설치하고 설정하는 방법도 알아본다.

저자/역자 소개

[ 저자 서문 ]

불과 얼마 전까지만 하더라도 모바일 애플리케이션을 만들어 배포하는 일은 어렵고, 비용도 많이 들어, 개발자들에게는 물론 상업적으로도 전망이 밝지 않았다. 아이폰과 앱스토어에 어도비 플래시가 소개되면서 지난 몇 년을 이끌었고, 이것은 애플의 오브젝티브C로 코드를 작성하던 사람들에게 또 다른 대안이었다. 이전까지 개발자들은 모바일 애플리케이션을 만들기 위해 반드시 맥용 프로비저닝 인증서를 이해해야만 했다. 사실 이것은 매우 귀찮은 작업 중 하나였다. 지난 10년간 우리 같은 많은 웹 개발자들은 구식 C 언어를 버리고 좀 더 프로그래밍에 집중할 수 있는 자바스크립트로 많이 이동했다. 자바스크립트는 많은 단점에도 불구하고, 온라인과 오프라인 웹에서 모두 쓸 수 있는 잠재력을 지녔다.

이후 얼마 지나지 않아 수많은 ‘대안’ 플랫폼들이 등장하기 시작했다. 이런 대안 플랫폼들은 개발자들이 오브젝티브C나 자바를 다시 배워야 하는 수고스러움 없이 모바일 애플리케이션을 만들 수 있게 해줬다. 그 중 하나가 바로 타이타늄 모바일(Titanium Mobile)이다. 타이타늄 모바일을 활용하면 오직 자바스크립트만으로 네이티브 앱을 만들 수 있을 뿐만 아니라, 크로스플랫폼 애플리케이션(아이폰과 안드로이드)도 만들 수 있다. 2011년 12월, 앱셀러레이터(Appcelerator)의 타이타늄 모바일은 개발자가 150만 명을 넘어섰고, 3만 개의 애플리케이션이 마켓플레이스에 배포됐다. 이런 비약적인 발전의 뒤에는 이베이(eBay)의 후원과 원더리스트(Wunderlist), 이베이 모바일(eBay Mobile), 겟글루(GetGlue) 같은 세계에서 큰 인기를 끈 앱들의 힘이 있었다. 또한 타이타늄 모바일은 블랙베리와 모바일 웹도 지원한다. 뿐만 아니라 OpenGL과 Box2D 같은 인기 있는 엔진을 이용해 크로스플렛폼 게임들을 만들 수도 있다. 게다가 자체적인 모바일 마켓을 통해 개발자들은 자신이 만든 모듈을 팔 수 있는 경로도 마련돼 있다.

이 책은 레이아웃에서부터 GPS를 이용한 지도까지 타이타늄으로 만들 수 있는 모든 방법을 다룬다. 뿐만 아니라 소셜 미디어와 연동하는 방법과 카메라와 마이크 같은 디바이스 입력 장치에 접근하는 방법도 다룬다. 각 예제는 독립적으로 구성돼 있기 때문에 원하는 예제를 참조하거나 골라서 읽어볼 수 있다. 혹은 예제 순서대로 따라 하기만 하면 작은 앱들을 처음부터 끝까지 만들 수도 있다. 그리고 커스텀 모듈을 이용해 애플리케이션을 확장하는 방법도 다룬다. 마지막으로 아이튠즈 앱스토어와 안드로이드 마켓에 애플리케이션을 배포하는 방법도 담겨있다.


[ 저자 소개 ]

보이들리 폴렌타인 (Boydlee Pollentine)
모바일 개발자로, 많은 앱과 인디 게임을 만들었다. 특히 모바일 개발에 열정을 쏟고 있으며, 앱샐러레이터 타이타늄 플랫폼에도 관심이 많다. 현재는 타이타늄 공식 애플리케이션 개발자이자 타이탄 에반젤리스트 그룹에서 멤버로 활동 중이다.
보이들리는 소프트웨어 엔지니어이자 프로그래머로서 10년간 일해 왔다. 주로 웹 기술과 마이크로소프트 닷넷 플랫폼과 관련된 일을 해오면서 크고 작은 다양한 그룹에서 경력을 쌓았다. 여기에는 호주와 미국 정부를 포함해 은행과 각종 언론사도 포함돼있다.
현재 프리랜서 타이타늄 개발자로, 런던에 거주하며, 모바일 개발을 주제로 작은 블로그 http://boydlee.com을 운영 중이다.


[ 옮긴이의 말 ]

2009년 겨울, 우리나라에 아이폰이 출시되고 많은 사람이 아이폰에 열광했다. 물론 나도 그 사람들 중 한 명이었다. 매일 앱스토어를 뒤져가며 신기한 앱들을 설치하기 바빴던 그때에는 자바스크립트로 아이폰 앱을 만들 거란 생각은 당연히 하지 못했다. 그런데 그로부터 불과 3년도 지나지 않았는데 이제는 자바스크립트로 앱을 개발할 수 있으며, 심지어 아이폰과 안드로이드 모두 한방에 개발이 가능한 상황이 됐다. 소위 하이브리드 앱이라고 말하는 크로스플랫폼 앱 개발 시대가 열린 것이다.

하이브리드 앱을 만드는 솔루션은 타이타늄 외에도 폰갭(PhoneGap)이라는 플랫폼이 있다. 물론 이 둘의 성격은 완전히 다르다. 폰갭은 웹뷰를 기반으로 하는 사실상 모바일 웹 페이지의 확장판에 가깝다. 하지만 타이타늄은 완전한 네이티브 앱을 만들어준다. 특히 오브젝티브C나 자바를 따로 배우지 않고도 자바스크립트만으로 개발이 가능하다는 점이 나와 같은 자바스크립트 개발자들에게 매우 반가운 일이 아닐 수 없다. 하지만 자바스크립트 개발을 좀 한다고 무턱대고 덤벼들었다간 고생을 좀 할 것 같다. 나도 그랬으니까……

태생적으로 타이타늄 앱 개발은 웹 페이지 개발과는 완전히 다르다. 도구만 자바스크립트를 사용할 뿐 완전한 앱 개발 영역으로 보는 것이 좋다. HTML과 CSS는 단 한 줄도 사용하지 않는다. 뿐만 아니라 자바스크립트는 더 이상 싱글 스레드로 동작하는 단순한 언어가 아니다. 하지만 크게 걱정할 필요는 없다. 바로 이 책이 여러분의 고생을 좀 덜어줄 것이다.

이 책의 원서가 처음 출간됐을 때 타이타늄 버전은 1.7이었다. 그리고 얼마 후 1.8을 거쳐 최근 2.0으로 메이저 버전 업을 했다. 그만큼 타이타늄은 빠른 성장을 거듭 중이고, 여전히 고속 성장을 하고 있다. 더불어 나도 번역하는 데 고생을 했다. 하지만 다행히도 이 책에서 다루는 주요 내용은 버전에 큰 영향을 받지 않았다. 그만큼 이 책은 핵심 주제만을 잘 추려서 담고 있다.

각 장은 초보자들도 따라하기 쉽게 튜토리얼 형식으로 구성돼 있고, 대부분의 예제들이 잘 동작한다. 물론 일부 외부 서비스에 의존하는 예제들은 책에서 캡처한 내용과 다를 수 있지만, 최대한 현재 상황과 한국어 버전에 맞게 번역하려고 노력했다.


[ 옮긴이 소개 ]

손병대
숭실대학교 미디어학부와 영어영문학부를 복수 전공했다. 현재 NHN 모바일 Ajax 팀에서 UI 개발과 더불어 Ajax 실무 강의를 겸하고 있다. 참여했던 대표적인 프로젝트로는 2008년 네이버 메인 개편, 2009년 네이버 지도 개편, 2010년 거리 뷰 프로젝트가 있으며, 2011년 초에는 일본으로 건너가 네이버 재팬 서비스를 지원하기도 했다. 지금은 HTML5 게임을 만들고 있으며, 자바스크립트로 할 수 있는 모든 것에 관심이 많다. 특히 타이타늄 앱 개발과 윈도우 8 앱 개발에도 관심이 많다. 공동 저작한 저서로 『자바스크립트 UI 개발과 Jindo 프레임워크』(2011년)가 있고, 번역서로는 『Node Web Development 한국어판』(2011)이 있다.

목차

목차
  • 1 네이티브 UI 컴포넌트로 앱 제작
    • 소개
    • 윈도우와 뷰 생성
    • 탭 그룹 추가
    • 라벨 생성과 포맷팅
    • 텍스트 입력 필드 생성
    • 키보드와 키보드 툴바 사용
    • 슬라이더와 스위치 생성
    • 윈도우 사이에서 데이터 주고받기
    • 버튼 생성과 클릭 이벤트 감지
    • 대화상자와 경고 대화상자로 사용자에게 정보 제공
    • 라파엘 JS로 차트 작성
  • 2 지역 데이터 소스와 원격 데이터 소스로 작업
    • 소개
    • HTTPClient로 원격지에 있는 XML 데이터 읽어오기
    • 테이블 뷰로 데이터 표시
    • 테이블 뷰를 원하는 대로 만들기
    • 검색 바를 이용해 테이블 뷰 필터링
    • JSON과 Yahoo! YQL로 원격 데이터를 더 빨리 가져오기
    • SQLite 데이터베이스 생성
    • SQLite 데이터베이스를 이용해 지역에 데이터 저장
    • SQLite 데이터베이스에서 데이터 검색
    • 테이블 뷰를 당겨 업데이트
  • 3 구글 맵과 GPS를 이용한 앱 작성
    • 소개
    • 맵뷰 추가
    • GeoLocation으로 현재 위치 획득
    • 주소 값을 위경도 값으로 변환
    • 맵뷰에 어노테이션 추가
    • 어노테이션 설정과 맵뷰 이벤트 감지
    • 맵뷰 위에 경로 생성
    • 디바이스의 나침반을 이용한 방향 모니터링
  • 4 오디오, 비디오, 카메라 사용
    • 소개
    • 옵션 대화상자로 디바이스 선택
    • 카메라를 이용한 사진 촬영
    • 포토 라이브러리에서 사진 선택
    • 스크롤이 가능한 뷰를 이용해 사진 표시
    • 디바이스 파일 시스템에 캡처한 사진 저장
    • 오디오 레코더를 이용한 오디오 녹음과 재생
    • 비디오 레코더를 이용한 비디오 녹화
    • 파일 시스템에 저장된 파일의 안전한 삭제
  • 5 소셜 미디어와 이메일을 앱과 연동
    • 소개
    • 이메일 작성과 전송
    • 이메일에 첨부 파일 추가
    • 페이스북에 애플리케이션 등록
    • 페이스북과 타이타늄 앱 연동
    • 페이스북 담벼락에 글쓰기
    • OAuth를 이용한 트위터와 연동
    • PHP와 HttpRequest를 이용한 이미지 업로드
    • Birdhouse와 OAuth를 이용해 트위터에 글쓰기
  • 6 이벤트와 프로퍼티 처리
    • 소개
    • 애플리케이션 프로퍼티 읽고 쓰기
    • 이벤트 발생과 캡처
    • 커스텀 이벤트를 사용해 앱에서 웹뷰로 데이터 전달
  • 7 애니메이션 생성, 좌표 변환, 드래그앤드롭
    • 소개
    • animate 메소드로 뷰에 애니메이션 효과 적용
    • 2D matrix와 3D matrix 변환으로 뷰에 애니메이션 효과 적용
    • 터치 이벤트를 이용해 이미지 뷰 드래깅
    • 슬라이더 컨트롤로 이미지 뷰 확대/축소
    • toImage() 메소드로 재미있는 얼굴 사진 저장
  • 8 네이티브 폰 애플리케이션과 API 상호작용
    • 소개
    • 안드로이드 옵션 메뉴 작성
    • 연락처에 있는 주소록에 접근
    • 클립보드를 이용한 데이터 저장과 검색
    • 아이폰 백그라운드 서비스 작성
    • 아이폰에 로컬 알림 전송
    • 인텐드로 안드로이드에 알림 전송
    • 디바이스 SD 카드에 안드로이드 앱 저장
  • 9 외부 서비스와 연동
    • 소개
    • API를 이용한 기본 인증 사용
    • 구글 플레이스 API를 이용해 데이터 가져오기
    • OAuth로 포스퀘어 서비스와 연동
    • 포스퀘어 서비스에 체크인 메시지 전송
    • 야후! YQL을 이용한 데이터 검색
    • UrbanAirship.com을 이용해 푸시 알림 받기
    • PHP와 HTTP POST를 이용한 푸시 알림 테스트
  • 10 커스텀 모듈로 애플리케이션 작성
    • 소개
    • 페이팔 모바일 라이브러리를 기존 모듈에 통합
    • iOS 모듈 개발환경 설정
    • 엑스코드로 아이폰 모듈 개발
    • 공개 API 메소드 작성
    • test harness로 모듈 테스트와 배포
    • 모듈을 패키징해 마켓에 판매
  • 11 플랫폼 간의 차이점, 디바이스 정보와 특징
    • 소개
    • 디바이스 정보 획득
    • 디바이스 해상도 정보 획득
    • 디바이스 방향 모드 이해
    • iOS와 안드로이드 플랫폼에 따라 분기 처리
    • 디바이스가 전화를 걸 수 있는지 확인
  • 12 배포 준비와 앱스토어에 등록
    • 소개
    • iOS 개발자 프로그램 가입
    • iOS 개발자 인증서와 프로비저닝 프로파일 설치
    • 타이타늄 스튜디오를 이용해 iOS 애플리케이션 작성
    • 안드로이드 개발자 프로그램 가입
    • 안드로이드 애플리케이션 배포키 생성

도서 오류 신고

도서 오류 신고

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

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

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