Top

아이폰 위치 기반 애플리케이션 개발

  • 원서명iPhone Location Aware Apps by Example: Beginner's Guide (ISBN 9781849692243)
  • 지은이지샨 챠우드해리
  • 옮긴이정승원
  • ISBN : 9788960774605
  • 35,000원
  • 2013년 08월 23일 펴냄
  • 페이퍼백 | 448쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 모바일 프로그래밍

책 소개

모바일 애플리케이션과 위치 기반 서비스를 별개로 분리해 생각하기 어려운 세상이 됐다. 사용자가 있는 도시의 날씨를 보고, 가까운 영화관을 찾고, 다녀간 식당을 기록하는 모든 활동은 위치 기반 서비스와 관련이 있다. 이 책은 글로만 설명하는 데 그치지 않고 실질적인 예제를 통해 이해를 돕는다. 이 책에서 설명하는 5개의 예제 애플리케이션을 함께 만들어보면서 위치 기반 서비스 개발에 익숙해질 수 있다.


[ 이 책에서 다루는 내용 ]

■ 위치 기반 서비스의 개념과 실제 구현 방법
■ 포스퀘어 API를 사용해 포스퀘어 앱 작성
■ 코어 로케이션(Core Location)과 기타 위치 인식 기술
■ 맵킷(MapKit)과 OpenStreetMaps를 사용한 서드파티 지도 API
■ 글씨를 읽어주는 날씨 앱 작성
■ 증강현실과 이벤트킷(EventKit)으로 이벤트 앱 작성
■ AOL 패치 뉴스(Patch News) API로 위치 기반 뉴스 앱 작성
■ 소셜 거버넌스 앱 작성


[ 이 책의 대상 독자 ]

위치 인식과 증강현실을 정복하고 싶은 초보자나 전문 iOS 프로그래머에게 알맞은 책이다. 5가지 위치 기반 앱을 처음부터 만들어봄으로써 자연스레 실제 개발에 익숙해지게 의도했다.


[ 이 책의 구성 ]

1장, ‘위치 기반 세상’은 위치 기반 서비스가 무엇인지, 어떻게 동작하는지, 위치 서비스에서 GPS의 역할이 무엇인지 설명한다. 또한 애플이 iOS에서 위치 기반 서비스를 사용하는 방법도 배운다. 업계에서 사용하는 용어에 대해서도 알아본다.

2장, ‘엑스코드의 세상’은 엑스코드를 설명하고 폰갭(PhoneGap), 앱셀러레이터 타이타늄(Appcelerator Titanium), 센차터치(Sencha Touch)를 통해 HTML 5에 대해 알아본다. 또한 포스퀘어(Foursquare), 이벤트풀(Eventful), 라스트에프엠(Last.fm) 같은 위치 기반 API를 몇 가지 살펴본다.

3장, iOS 앱에 위치 사용: 코어 로케이션은 아이폰에서 사용자의 위치 정보를 읽는 기술을 몇 가지 설명한다. 이벤트가 발생했을 때 위치 정보 읽기, 앱에서 위치 갱신 자동으로 받기 등도 여기 포함된다. 또한 코어 로케이션 프레임워크를 사용해 지역 모니터링을 하는 방법을 배운다. 포스퀘어, 이벤트풀, 라스트에프엠을 사용하는 예제 앱을 제공한다.

4장, iOS 앱에 지도 사용: 맵킷에서는 맵킷(MapKit) 프레임워크를 앱에 사용하는 방법을 배운다. 지도 기하학에 대해서도 배우며, 지도상 애노테이션과 오버레이를 사용해보기도 한다.

5장, ‘날씨 앱: WeatherPackt’에서는 WeatherBug API를 사용해 날씨 앱을 만들어 본다. 앱에 설정 페이지를 넣어 화면을 커스터마이징하는 방법도 배운다. 보너스로 Nuance Speech SDK를 사용해 날씨를 읽어주게도 했다.

6장, ‘이벤트 앱: PacktEvents’에서는 Eventful.com API를 사용해 주변의 이벤트, 콘서트, 공연 정보를 표시하는 이벤트 앱을 만들어본다. 또한 iOS의 트위터 API를 사용하는 방법과 레이아 플레이어(Layar Player SDK)를 통한 증강현실도 맛보기 해본다.

7장, ‘고급 주제’는 백그라운드 위치를 포함한 백그라운드 서비스와 함께 방향 사용하기를 알려준다. iOS SDK의 모션 매니저(Motion Manager)와 푸시/로컬 알림에 대해서도 알아본다.

8장, ‘지역 검색: PacktLocal’은 포스퀘어 API를 사용해 지역 검색 앱을 만들고 지오 펜싱(geo-fencing) 지원을 넣는다.

9장, ‘지역 인식 뉴스: PacktNews’에서는 AOL의 패치 뉴스(Patch News) API를 사용해 지역에 초점을 맞춘 뉴스 앱을 만들어본다. iOS의 스토리보딩(Storyboarding) 기능을 애플리케이션에 사용하고, SQLite를 사용한 오프라인 콘텐츠를 지원한다.

10장, ‘소셜 거버넌스: TweetGovern’에서는 트위터를 백엔드로 사용한다. tweetgovern 앱이라 불리는 소셜 거버넌스 앱의 로직에 트위터와 해시 태그를 사용한다. 트위터의 리트윗(re-tweet) 컨셉에 대해서도 배운다.

저자/역자 소개

[ 저자 서문 ]

『아이폰 위치 기반 애플리케이션 개발』은 실제 애플리케이션을 개발하는 방법을 알려주는 최초의 책일 것이다. 400여 페이지가 넘는 분량 내내 글로만 설명하는 것보다는 실질적인 예제를 통한 이해를 돕는 것은 팩트출판사에 있어서는 과감한 결정이었다. 이 책은 인터넷과 모바일 환경에서 개발/소비되는 위치 기반 콘텐츠의 양이 급격히 증가 중인 현 추세에 알맞게 위치 서비스에 초점을 맞췄다. 뉴스, 스포츠, 가십 등 어떤 것이라도 사용자는 자신의 현재 위치와 확연히 동떨어진 곳의 소식을 듣고 싶어하지 않는다. 뉴스의 경우 반드시 사용자 지역 내의 소식이어야만 스마트폰에서 찾아볼 만한 정보가 된다. 포스퀘어(foursquare) 같은 애플리케이션이 좋은 예다.

이 책은 iOS를 사용한 위치 기반 기술과 일반적인 위치와 매핑 문제의 해결책을 제시한다. 간단한 위치 사용법부터 사용자의 마지막 위치 저장, 간단한 구글 맵의 사용부터 OpenStreetMaps를 사용하는 방법을 알려준다. 이 과정에서 관련 앱 다섯 개를 만들어본다(소스코드와 비지니스 로직 포함).

독자가 앱을 바로 만들 수 있도록 무료 아이콘과 이미지를 인터넷에서 받아 앱 디자인하기, iOS의 트위터 기능을 앱에 통합시키기, Nuance Speedch SDK 사용하기 등을 다뤘다. 이 책은 애플 iOS 개발에 처음으로 발을 들여 놓은 독자들을 위한 실질적인 가이드다.
즐거운 시간을 갖길 바란다.


[ 저자 소개 ]

지샨 챠우드해리 (Zeeshan Chawdhary)
지난 6년간 열정적인 개발자로 일했으며, 그 중 5년은 위치 인식 분야에서 활동했다. 현재 샌프란시스코에 기반을 둔 위치 콘텐츠 프로바이더인 W씨티(Wcities) 사에서 최고 기술 이사로 일하고 있다. PostGIS, 폰갭(PhoneGap), iOS에 대한 연구를 진행하고 있고, http://justgeeks.in에 블로깅을 하고 있다.


[ 옮긴이의 말 ]

모바일 애플리케이션에서 위치 기반 서비스가 빠진다면 어떤 일이 생길까요? 모르는 장소에서 길을 잃었을 때 지도 애플리케이션을 켜고 현재 위치를 확인하기 위해 주변 지형과 지도를 대조하며 고민해야 합니다. 마치 종이 지도를 보며 길을 찾던 옛날처럼 말입니다. 포스퀘어(foursquare)나 페이스북(facebook) 애플리케이션에 자기가 다녀간 장소를 기록하기 위해 상호와 주소를 일일이 입력해야 할지도 모릅니다. 자전거를 타며 이동한 거리를 기록하고, 현재 자신이 있는 도시의 날씨 정보를 보고, 자기와 가까운 영화관을 찾는 등 위치 기반 서비스가 빠진 모바일 애플리케이션을 상상하기란 쉽지 않습니다.

『아이폰 위치 기반 애플리케이션 개발』은 아이폰을 사용한 위치 기반 서비스를 예제를 통해 쉽게 설명합니다. 실질적인 예제를 따라하며 사용자의 마지막 위치를 저장하거나, 구글 맵 사용하기, 날씨 앱 만들기, 이벤트 앱 만들기 등을 연습합니다. 사용자 위치에 기반을 둔 서비스를 제공하는 아이폰 애플리케이션을 만들고 싶은 개발자들에게 좋은 가이드가 될 것이라 생각합니다.


[ 옮긴이 소개 ]

정승원
남들이 즐기는 무언가를 만들고 싶다는 로망을 따라 게임 업계에 입문했으며, 현재는 투케이 스포츠(2K Sports)에서 소프트웨어 엔지니어로 일하고 있다. 글쓰길 좋아해 얼떨결에 번역자가 되었으나 언젠가는 역자가 아닌 저자가 되려고 호시탐탐 기회를 노리고 있다. 취미로는 사진을 찍는다.

목차

목차
  • 1 위치 기반 세상
    • 위치 기반 서비스 이해
      • 실습 예제 | 구글로 위치 기반 서비스 사용
    • 위치 기반 업계에서 자주 사용하는 용어
    • LBS 애플리케이션과 일반적인 사용 방법
      • 군용
      • 정부
      • 상용
    • 애플의 아이폰, 아이패드, 아이팟 디바이스로 LBS를 사용하는 방법
      • iOS 위치 API
      • 실습 예제 | 아이폰의 위치 추적 기능 끄기
    • LBS: GPS의 동작 원리
      • 사용자 부분
      • 우주 부분
      • 제어 부분
    • 위치 서비스의 푸시와 풀 방식
      • 푸시 서비스
      • 풀 서비스
    • GPS가 없는 경우: 와이파이 기반 위치 인식
    • GPS가 없는 경우: 셀 ID 포지셔닝과 무선 기지국 삼각 측량
      • 실습 예제 | 스카이후크 와이어리스 로키 프레임워크를 사용한 위치 인식
    • GPS가 없는 경우: 구글 맵스 API
    • 실내 내비게이션과 실외 내비게이션의 이해
    • 정리
  • 2 엑스코드의 세상
    • 엑스코드 소개
    • 엑스코드 4: 필요 사항과 기능
      • 필요 사항
      • 기능
    • iOS 5와 엑스코드 4.2: 새롭고 눈에 띄는 기능
      • iOS 5의 새로운 기능
      • 엑스코드 4.2의 새로운 기능
    • 엑스코드 3에서 이전할 때 알아야 하는 점
      • 실습 예제 | 설치
      • 실습 예제 | 헬로우 로케이션
    • 밤새 코딩하는 프로그래머를 위한 도구: HTML5
      • 폰갭
      • 실습 예제 | 폰갭으로 헬로우 로케이션 앱 개발
      • 실습 예제 | 타이타늄 앱셀러레이터로 헬로우 로케이션 앱 개발
      • 실습 예제 | 센차터치로 헬로우 로케이션 앱 개발
    • 위치 기반 SDK/API
      • 포스퀘어
      • 고왈라
      • 이벤트풀과 라스트에프엠 API: 음악 API
    • 심플지오와 팩추얼
      • 기타 주목할 만한 API: YQL, 로케이션 랩스
    • 정리
  • 3 iOS 앱에 위치 사용: 코어 로케이션
    • 코어 로케이션 프레임워크의 개요
      • 실습 예제 | 위치 디버깅
    • 코어 로케이션 서비스
      • 표준 위치
      • 주요 변화
      • 지역 모니터링
      • 지오코딩과 역지오코딩: CLGeocoder
      • 헤딩을 사용한 방향
    • 코어 로케이션 관리자: CLLocationManager
      • 실습 예제 | 사용 가능한 위치 서비스 체크
      • 사용자 인증
      • 실습 예제 | 코어 로케이션과 사용자 인증 사용
    • CLLocation 객체
      • 실습 예제 | 애플리케이션에서 위치 갱신
      • 실습 예제 | 경계 모니터링과 위치 매니저
    • 헬로우 로케이션으로 주변 이벤트 감지
      • 시작하기 전에 알아야 할 중요 사항
      • 실습 예제 | 헬로우 로케이션에 주변 이벤트 기능 추가
      • 실습 예제 | 라스트에프엠 API
    • 지역 검색을 위한 헬로우 로케이션 확장
      • 시작하기 전에 알아야 할 점
      • 실습 예제 | 포스퀘어로 지역 검색 앱 개발
    • 정리
  • 4 iOS 앱에 지도 사용: 맵킷
    • 맵킷 프레임워크 개요
    • 지도 기하학의 이해
      • 실습 예제 | 맵킷 사용
      • 실습 예제 | 지도 제스처(패닝, 주밍) 사용
    • 지도에 애노테이션 추가: 개요
      • 실습 예제 | 지도에 애노테이션 추가
      • 실습 예제 | 드래그 가능한 애노테이션
      • 실습 예제 | 커스텀 지도 애노테이션
    • 지도 오버레이: 개요
      • 실습 예제 | 지도 애노테이션 커스터마이징
    • 사용자 추적 모드
    • 보너스: 오프라인 지도
      • 실습 예제 | 클라우드메이드 API로 OpenStreetMaps 사용
    • 정리
  • 5 날씨 앱: WeatherPackt
    • SQLite로 사용자의 위치 데이터 추출과 저장
      • 실습 예제 | SQLite로 사용자의 위치 추출과 저장
    • 위치 데이터를 도시 이름으로 변환: 지오네임즈 API 사용
      • 지오네임즈
      • 실습 예제 | 위치 데이터를 도시 이름으로 변환
    • 웨더버그 API 사용
      • 시작하기 전에 알아둬야 할 사항
      • 실습 예제 | 웨더버그 API 사용
    • 날씨 앱 WeatherPackt 구현
      • 새로운 엑스코드 프로젝트 시작
    • 홈 스크린 정의
      • 실습 예제 | 홈 스크린 정의
      • 기본 위치 설정
      • 화면 표시를 위한 날씨 API 서식화
      • 설정 페이지
    • 보너스: 폰갭으로 WeatherPackt 구현
    • 보너스: 텍스트 음성 변환(TTS)
    • 정리
  • 6 이벤트 앱: PacktEvents
    • PacktEvents: 개요와 구조
      • PacktEvents의 구조
    • SQLite로 이벤트 저장, 추출
      • 실습 예제 | SQLite로 이벤트 저장과 추출
    • 지도에 이벤트 표시
      • 실습 예제 | 지도에 이벤트 표시
    • 카테고리별로 이벤트 필터링
      • 실습 예제 | 카테고리별로 이벤트 필터링
    • 이벤트킷 프레임워크로 아이폰 캘린더에 이벤트 추가
      • 실습 예제 | 아이폰 캘린더에 이벤트 추가
    • 트위터 프레임워크 사용
      • 실습 예제 | 아이폰 앱에 트위터 기능 추가
    • 보너스: 증강현실을 위한 레이아 플레이어 API 사용
      • 실습 예제 | 아이폰 앱에 증강현실 추가
    • PacktEvents 앱 작성
    • 정리
  • 7 고급 주제
  • 위치와 방향 사용
    • 헤딩을 사용하는 방향
      • 앱에 방향 사용
      • 자기계를 사용하는 헤딩의 이해
    • 실습 예제 | 앱에서 방향을 위해 헤딩 사용
    • 코스를 사용하는 방향
    • 실습 예제 | 앱에서 방향을 위해 코스 사용
  • 코어 모션: 모션 매니저
    • 코어 모션의 사용
    • 실습 예제 | MotionManager:accelerometer 사용
      • 코어 모션 결론
  • 백그라운드 앱 실행
    • 백그라운드에서 실행할 만한 앱
    • 백그라운드 위치
      • iOS 애플리케이션 라이프 사이클의 이해
    • 푸시 알림: 개요
    • 로컬 알림
    • 실습 예제 | 로컬 알림 사용
  • 정리
  • 8 지역 검색: PacktLocal
    • 포스퀘어 장소 API 사용
      • 장소 카테고리
      • 실습 예제 | 포스퀘어 장소 API: 카테고리
    • 추천, 인기 장소
      • 실습 예제 | 추천 장소, 인기 장소
    • 장소 검색
      • 실습 예제 | 포스퀘어 검색 API
    • 지역 검색 앱의 UI 작성: PacktLocal
    • 장소 정보를 디바이스에 저장
    • 앱 작성: PacktLocal
      • 실습 예제 | 앱 작성: PacktLocal
    • 정리
  • 9 지역 인식 뉴스: PacktNews
    • 패치 뉴스 API의 이해: 지역에 초점을 맞춘 뉴스
      • 인증
      • 분류
        • Vertical
        • Format
        • Author
      • 위치로 스토리 찾기
      • 이름으로 위치 찾기
      • 실습 예제 | 패치 뉴스 API 사용
      • 지오 펜싱 지원 추가
      • 실습 예제 | 지오 펜싱 지원 추가
    • PacktNews 앱 작성
      • StoryBoard
      • 실습 예제 | PacktNews 작성
    • 정리
  • 10 소셜 거버넌스: TweetGovern
    • 소셜 거버넌스의 개요
    • TweetGovern을 자세히 알아보기
      • Stackmob
      • 사용할 방식: Twitter
      • 아이콘과 이미지
      • SDK와 프레임워크
      • 실습 예제 | TweetGovern UI 작성
      • 실습 예제 | 사용자 위치 인식과 근처 이슈 표시
      • 실습 예제 | 이슈 투표 기능 추가
    • 정리
  • 도서 오류 신고

    도서 오류 신고

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

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

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

    정오표

    정오표

    [2014-07-11]
    P 69 11번 항목 중
    호출되는 locationDetext 액션도 → 호출되는 locationDetect 액션도