스크랩

구간

안드로이드 앱 인벤터 - 에이콘 모바일 프로그래밍 시리즈 51 퍼즐처럼 끼워 맞추는 구글 모바일 앱 개발

시리즈 : 에이콘 모바일 프로그래밍 시리즈 [62]

외르크 클로스 저 | 이승현 역 | 에이콘출판 | 2014년 11월

미리보기 북트리

정가
$70.00
판매가
$51.03 (27%↓) 최저가 보상
적립금
$1.02 (2%P)

품절된 상품입니다.

이 책을 꼭 원하시는 고객님께서는 아래 "상품문의"를 클릭 후 구매의사를
알려주세요. 책이 확보 될 경우 연락 드리겠습니다.

북카트 바로구매 위시리스트

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788960774377 / 640쪽 188 x 250 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

  • 23,400
  • 19,800
  • 31,500
  • 21,600

책 소개

출판사 리뷰

★ 이 책에서 다루는 내용 ★

■ 앱 인벤터 설치 및 환경 설정
■ 현대적이고 매력적인 UI 제작
■ 카메라 등 안드로이드 미디어 하드웨어 다루기
■ TinyDB와 TinyWebDB로 로컬 디스크나 클라우드에 데이터 저장
■ 전화, 문자, 이메일 자동화
■ 지리적 좌표, 가속도, 방향 추적
■ 앱에 음성 인식(TTS와 STT) 기능 삽입
■ ActivityStarter를 통해 다른 앱과 웹 서비스 제어
■ Web API로 데이터 교환하여 모바일 매시업 구축
■ 안드로이드 에뮬레이터를 통해 다양한 스마트폰에서 앱 테스트
■ 멀티미디어 센터, 온라인 어휘 학습기, 핸드페인팅, 스쿼시 게임, 나침반, 보물 찾기, 내비게이터, 주식 뉴스 알림 등의 풍부한 예제 제공

이 책은 안드로이드 앱 개발 방법을 탐구하고 실험하면서 개발 실력을 쌓아, 전문가 수준의 앱을 만들 수 있게 자신감을 불어넣어 줄 것이다.


★ 이 책의 구성 ★

1부: 첫 번째 앱 준비하기
개발에 필요한 소프트웨어를 설치하는 방법은 없다. 1장 '설치 및 준비 과정'에서 몇 번에 걸쳐 피곤한 작업들을 수행하도록 안내해줄 것이고, 컴퓨터의 시스템 환경 변수를 설정하거나 앱 인벤터 설치 프로그램을 다운로드하고 설치하고 온라인 개발 플랫폼을 사용하기 위한 의무 등록 과정을 따라가거나 독자의 스마트폰에 개발 관련 인자들을 설정하는 등 복잡한 작업도 해야 한다. 성공적으로 설치가 끝난 다음, 2장에서는 앱 인벤터 사용법과 응용 범위를 배우고 앱 인벤터의 두 가지 개발 도구인 Designer와 Editor에 대해 알아볼 것이다. 또한 어떻게 스마트폰을 개발 환경에 적용할지 소개하고 초기 앱을 개발할 때 문제가 발생하면 어떻게 해결해야 하는지 알아보겠다. 3장에 들어가면 앱 개발을 본격적으로 시작한다. 즉 독자가 직접 UI를 개발하고 래프백(LaughBag)이라는 첫 번째 앱을 만들어 본다. 앱에 기본으로 제공되는 커스텀 아이콘을 추가한 다음에는, 스마트폰에 앱을 설치할 때 APK 파일 형태로 내보내거나 스마트폰에 직접 설치할 수 있음을 배우게 된다. 이러한 정보는 이후에 나올 모든 프로젝트에 기본으로 적용된다.

2부: 몸풀기 단계로 시작하는 간단한 프로젝트
두 번째 앱을 개발하기 전에 4장에서 이벤트와 메소드, 속성 등 주요 개념을 소개한다. 5장에서는 현재 존재하는 컴포넌트와 블록, 앱 인벤터의 개념과 이후에 포함될 예정인 항목들에 대해 다룬다. 이러한 기본 사항들을 다룬 후에 6장에서 Designer를 통해 데모용 앱의 UI를 생성하여 버튼, 텍스트 박스, 체크박스 등 능동적으로 컴포넌트를 사용하는 방법에 익숙해지게 할 것이다. 7장에서는 멀티미디어와 관련된 주제로 그와 관련된 컴포넌트를 다루면서 사진 찍기 기능을 살펴보고, 음성 녹음 기능과 오디오와 비디오 파일을 재생하며, 진동 기능까지 다룬다. 8장에서는 미디어 센터의 형태, 즉 시각적으로 정교하고, 인체공학적으로 설계된 멀티스크린 미디어 앱이 되도록 조금 전 데모 프로젝트의 기능을 확장한다.

3부: 앱 개발자가 되기 위한 과정
그래픽적으로 다채로운 화면을 갖도록 UI와 멀티미디어 기능을 다뤄보고 앱 인벤터의 컴포넌트를 사용해서 얼마나 쉽게 앱을 개발할 수 있는지 어느 정도 감을 잡았으니 9장부터는 좀더 심화단계로 블록과 블록 구조를 살펴보면서 앱 개발 방법을 공부한다. 총체적으로 전 과정을 훑어보면서 데이터 타입, 데이터 구조, 컨트롤 구조에 대한 핵심 세부 사항들을 알아 봄으로써 독자는 앱 인벤터의 모든 기능을 구현할 수 있을 것이다. 빠르게 구현해보는 앱을 통해 어떻게 색상을 만들고 숫자를 처리하며 각 로직의 진행 단계별 상태를 검사하는지, 그리고 텍스트와 문자열 수정, 변수와 프로시저, 리스트의 사용법, 분기문과 순환문을 통해 프로그램 진행 흐름 제어하는 방법을 공부한다. 그다음은 앱 인벤터의 Editor 컴포넌트와 관련된 토론을 하면서 프로그램 개발과 관련된 팁들을 알아보고 기본적인 계산기나 숫자 추측 게임, 어휘 훈련 앱 등을 구현할 것이다. 10장에서는 데이터를 로컬 저장소나 온라인상의 웹 서버에 저장하고, 저장된 데이터를 불러오는 방법을 알아볼 것이다.

4부: 매력적인 앱 개발
앞에서 새롭게 공부한 개발자 비법을 토대로, 이번에는 정말 재미있고 도전해볼 만한 개발 영역에 대해 다룬다. 11장, '그래픽과 애니메이션'에서는 다소 고급 주제에 속하지만 앱 인벤터로 쉽게 처리할 수 있는 그래픽과 애니메이션을 다룬다. 이 주제에 대한 간단한 소개를 한 후, 독자는 손가락을 사용해 스마트폰에서 오브젝트를 그릴 수 있는 (취소 기능이 포함된) 드로잉 앱을 개발한다. 다음은 현실적인 움직임을 시뮬레이션하기 위해 오브젝트에 애니메이션 효과를 주고 충돌을 인식하는 방법을 배운다. 새롭게 배운 이론을 토대로 실전 예제들을 훈련하도록, 점수 기록 기능이 있고, 난이도가 변하는 2D 스쿼시 게임을 만들어 본다. 또한 손가락으로 키 프레임 애니메이션 경로를 그리는 앱을 개발하기 위해 모든 종류의 타이머 이벤트를 사용하는 방법을 배우고 스마트폰이 대기 모드여도 알람 시계 앱이 동작하게 한다.
12장 '센서'에서는 숙련된 개발자들조차 낯설게 느낄 수도 있는 주제를 다룬다. 여러 가지 센서의 기능에 대해 자세히 알아보고, 무엇보다도 독자의 앱과 스마트폰 센서를 통합하는 방법을 공부한다. 위치 센서와 방향 센서로 측정을 해보고 이를 토대로 그래픽 나침반 바늘 또는 그래픽 수평계 기능을 갖춘 완전한 형태의 나침반 앱을 구현한다. 가속도 센서를 통해 악기의 민감도를 슬라이더 막대를 통해 조절하는 악기인 셰이커를 개발하고, 게다가 고전적인 밸런스 게임인 라비린스(Labyrinth)와 비슷한 맥락의 게임을 개발해본다.
위치 기반 서비스가 인기를 얻는 추세를 따라, 실시간으로 온라인 서버에 경로 프로파일을 기록할 수 있는 지오트래커(Geotracker)을 개발해보고, 앱과 GPS 센서를 연동하는 방법뿐만 아니라 보물이 놓인 방향과 거리를 표시하는 나침반을 갖춘 보물찾기 앱을 개발하는 방법도 공부한다.
물론, '고전'인 통신 영역도 빼먹지 않고 다룬다. 13장에서는 통신 관련 기능 영역을 통해 작동하는 규모가 크면서도 실무에 도움이 되는 마지막 프로젝트 '운전자 보조 시스템'을 다룬다. 동시에 전문적인 개발자들이 걸어온 길을 따라 이 프로젝트를 개발하기 위해 필요한 요구 사항 및 작업 단계를 모듈화하여 분석하고 구현한다.
먼저, 다중 화면을 갖는 친숙한 인터페이스와 함께 바로 가기 연락처를 통해 전화를 거는 모듈을 통합한다. 그 다음은 SMS 응답 메시지와 완전 자동 수신 모듈을 개발한다. 이 모듈은 음성 인식 기능을 통해 텍스트 음성 변환 옵션을 통해 수신한 SMS 메시지를 큰 소리로 읽고 SMS 메시지를 전송하도록 지시한다. 13장에서는 모든 개발 언어의 기능 범위를 확장하고 앱에 외부 서비스를 통합할 수 있도록 액티비티 스타터(Activity Starter)라는 컴포넌트의 핵심 인터페이스의 개념을 소개한다. 이 인터페이스를 통해 다른 앱과 웹 서비스를 호출하고 통합한다. 다양한 모듈을 다뤄보면서, 각 모듈을 담당하는 여러 가지 버튼 중에 하나를 눌러 구글 내비게이션(Google Navigation)을 호출해 자동차로 운전하여 집이나 사무실로 가는 길을 탐색하거나 자동차를 주차한 위치로 돌아가는 일을 도와주도록 앱과 구글 지도(Google Maps)를 통합하는 방법을 배운다. 이메일을 보내는 모듈을 사용하여, 지인을 데리러 가는 동안 운전자의 현재 위치와 도착 시간을 알려줄 수 있다.
마지막으로 앱 인벤터의 웹 컴포넌트를 기반으로 하는 다른 주요 인터페이스를 소개하여 웹 서비스에서 제공하는 API를 통해 데이터를 교환하는 방법을 공부한다. 앱 인벤터 WebViewer 구성 요소를 사용하여 야후와 피드질라(Feedzilla)에서 제공하는 웹 API에 실시간으로 데이터 액세스하여 오리지널 전체 뉴스 기사(Full-Text)를 담고 있는 사이트 화면을 직접 표시할 수 있으면서도 최신 뉴스 및 주식 데이터와 주식 상장 가격을 보여주는 모듈을 구현함으로써, 정보 매시업(mashup)을 개발하는 방법에 대해 자세한 내용을 공부할 것이다. 이러한 기능은 보조 시스템에 필요한 완전한 모듈들을 모두 지니고 있는 운전자 보조 시스템 앱을 매일 사용할 수 있게 해준다.

5부: 개발자가 알아두면 유용한 사항들
숙련된 개발자(1장부터 13장까지 공부하고 나면 스스로 이렇게 생각하게 될 것이다)라도 기술 추이를 따라잡기 위해 항상 새로운 분야를 공부한다.
14장 '특수 기능'에서는 온라인 투표, 바코드 스캔, 트위터와 통신하기 위한 Twitter 컴포넌트 또는 구글의 온라인 데이터베이스인 퓨전 테이블(Fusion Table)을 사용하기 위한 앱을 대상으로 한 앱 인벤터의 특수 컴포넌트를 다룬다. 이 장에서는 또한 온라인 멀티플레이어 게임을 개발하고, 레고 마인드스톰 세트에서 로봇을 제어하며 블루투스를 통해 데이터 교환 방식, 그리고 자바 브릿지를 통해 자바로 개발된 앱과 앱 인벤터를 통합하는 특수 컴포넌트 그룹의 개요를 다룬다.
15장 '도구와 팁'에서는 앱 인벤터와 안드로이드에서 지원하는 미디어 포맷에 대해 공부하며 자바 콘솔을 이용한 디버깅 작업, 음성 모듈을 설정하는 데 필요한 정보 등 유용한 정보를 제공한다.
부록에서는 수많은 프로젝트들과 미디어 및 지원 사이트에서 다운로드 가능한 APK 파일에 대해 설명하고, 이 책에서 소개하지 못한 흥미로운 추가 정보들을 얻을 수 있는 링크들을 수록했다.


★ 추천의 글 ★

사람들이 1980년대를 기점으로 개인용 컴퓨터를 사용해오고 있다. 그러나 오늘날의 모바일 애플리케이션은 결코 과거의 '개인적인 용도'로 컴퓨팅 리소스를 사용하지 않는다. 오늘날 우리는 스마트폰과 태블릿처럼 꾸준히 등장하는 새로운 컴퓨터 기기를 손에서 놓지 않고 항상 지니고 산다. 더 중요한 점은 개인용 컴퓨터를 통해 '서로에 대해' 점점 깊은 관계를 맺는다는 점이다. 일하는 곳, 좋아하는 게 뭔지, 무엇을 구입하는지, 친구가 누군지, 어디에 살고 무슨 얘기를 하는지, 누구와 얘기하는지, 누구에 대해 얘기하는지 등 모든 게 공개되고 있다. 이러한 개인적인 컴퓨팅은 근본적으로 1950년대부터 텔레비전이 그랬던 것처럼 우리의 경험과 우리가 살고 있는 세계에 대한 인식을 바꾸고 있으며, 전 세계의 데이터 서비스와 정보 소스에 연결되어 있다.

텔레비전은 수동적인 소비자 기술(consumer technology)이다. 누구나 TV를 즐길 수 있지만, 전문적인 생산자들이 제공하는 다양한 컨텐츠 중 원하는 프로그램을 선택하는 것 이외에 TV를 개인적인 필요에 맞게 조정하는 방법은 없었다. 우리 모두가 전문 개발자가 제공한 미리 정의된 애플리케이션 중에서만 제품을 골라야 하는 측면에서 볼 때, 모바일 컴퓨팅도 텔레비전과 시청자 사이의 구조와 비슷한 양상을 보여줄 것이다.

구글에서 앱 인벤터를 만들었을 때, 실제로 전문 프로그래머가 될 필요 없이 자신과 자신의 친구와 관련된 애플리케이션을 개발할 수 있도록 하여 모바일 컴퓨팅을 개인적인 용도에 특화할 수 있는 개인 컴퓨팅 기술로 만들어 보자는 생각을 함께 갖게 되었고, 이러한 생각이 동기가 되어 서비스 구축을 시작하였다. 아마도 독자가 앱 인벤터에 관심을 갖게 된 것은 특별한 목적을 달성하기 위한 수단으로 앱을 만들고 싶었거나 컴퓨터에 대해 더욱 실무적으로 공부하려 한다거나 아니면 앱을 배포 및 판매하거나 혹은 정말로 그저 재미 삼아 만들어 보고자 할 수도 있다.

앱 인벤터는 2010년 12월을 기점으로 누구나 사용할 수 있게 개방되었다. 아직 개발 중인 베타 버전 시스템으로, 구글 팀은 지금의 앱 인벤터를 더 강력하고 사용하기 쉽게 만들기 위해 최선을 다하고 있다. (구글은 2011년 12월 31일자로 서비스를 종료하였으며, 현재 MIT모바일 학습 센터에서 'MIT 앱 인벤터'라는 이름으로 지원하고 있다. - 옮긴이) 그러나 이미 개인적인 용도로 앱을 만드는 것이나 모험을 해보기 위해 모여든 모든 연령의 앱 인벤터 사용자들이 커뮤니티를 만들어 운영하고 있으며 점차 규모도 커지고 있다. 사람들이 만드는 애플리케이션 중 일부는 다음과 같은 용도로 쓰인다.

■ 레고 로봇을 제어하는 컨트롤러
■ 자녀에게 독서와 수학을 가르치기 위한 앱
■ 의학 전공 서적에 대해 참고 정보를 제공하는 가이드
■ 선물 카드를 보내서 감사를 표현하기 위한 앱
■ 상용 자동차 회사 근무자들이 재고 물품을 기록하기 위한 앱
■ 다양한 종류의 게임

독자도 이와 같은 애플리케이션을 만들 수 있으며, 이 책은 구글 웹사이트에서 앱 인벤터를 실행하고 스마트폰을 연동해서 앱을 개발하는 방법에 대한 기초를 다지기 위한 지식들을 제공하자는 목적으로 집필하였다. 앞으로 이 책이 제시하는 방향에 따라 가속도 센서, 방향 및 위치 센서들도 사용해 볼 것이다. 이 책을 공부하면서, 독자는 텍스트와 데이터를 조작하며 이미지와 애니메이션 작업까지 지원하는 앱을 만드는 방법에 대해 확실한 지침을 얻을 수 있을 것이다. 전화를 걸거나 온라인 데이터베이스를 조작하는 방법, 카메라를 제어하는 방법도 배울 것이며, 게임 제작 방법과 문자 메시지를 송수신 방법, 지도를 읽어와 처리하는 방법까지 공부할 것이다. 각 주제마다 작업 예제 프로그램과 철저한 설명을 덧붙였다.

이 책을 시작으로 독자는 모바일 앱을 설계하는 개발자가 될 수 있을 것인가? 아마도 그럴 것이다. 그렇지 않다 해도, 독자는 이 책을 통해 우리의 삶에 있어 점점 더 핵심적인 역할을 하는 모바일 컴퓨팅 기술을 바탕으로 창의적인 개발자가 될 수 있을 것이다.

- 핼 에이벌슨
MIT대학 전기공학 및 컴퓨터과학부 교수
구글 앱 인벤터 팀의 핵심 멤버이자 MIT 모바일 학습 센터의 총책임자



★ 저자 서문 ★

요즘은 그 어느 때보다 안드로이드 앱 개발을 시작하기 좋은 때다. 더군다나 현재 앱 인벤터를 이용하는 것보다 쉽게 앱을 개발할 수는 없다는 것이 가장 중요한 점이다. 앱 인벤터 개발 도구는 구글과 MIT가 함께 지원하며 2010년 11월부터 무료로 서비스되어 왔다. 앱 인벤터를 통해 프로그래밍 경험이 없어도, 복잡한 자바 코드 한 줄 작성하지 않고도, 블록을 시각적으로 조립해 나가는 방식으로 즐겁게 놀면서 컴퓨터 한 대, 심지어 스마트폰 한 대만 있어도 직접 간단하거나 복잡한 앱을 개발할 수 있다.

앱 인벤터를 단순히 블록 장난감이라 볼 수는 없지만 그만큼 독자가 원하는 복잡한 앱을 쉽고 빠르게 개발할 수 있다(독자가 쓰기 위한 앱이거나 여러 사람이 사용하기 위한 앱이 있어도 좋다). 이 책의 목차를 보면 처음에 입문자를 위해 멀티미디어 분야(사진, 오디오, 비디오)의 내용을 다루고, 그래픽과 애니메이션 분야, 다양한 통신 분야(음성, SMS, 이메일, 웹 서비스 등), 그리고 센서 관련 분야까지(방향, 가속도, GPS 좌표) 담겨 있다는 걸 보면 놀라울 것이다.

쉽고 빠르게 앱 인벤터에 적응하는 것과 그 만큼 빠르고 직관적으로 원하는 앱을 개발하는 방법을 제공하는 것이 앱 인벤터에서 내세우는 시각적인 개발 도구의 목표다. 앱 인벤터는 다른 보편적인 개발 도구보다 훨씬 더 넓은 그룹을 대상으로 삼는다. 앱 인벤터를 통해, 모든 안드로이드 스마트폰 사용자들은 이제 다채로운 앱 화면 뒤에 숨겨진 부분을 살펴보고 앱을 직접 디자인함으로써 창의성을 표현할 수 있는 기회를 얻을 수 있다.

앱이 어떻게 완성될지는 완전히 개발자의 개인적인 취향과 주된 강조 사항, 개발 동기 등에 달렸다. 개발할 앱을 사용자의 입장에서 단지 개인적인 디지털 사진관으로 만들 수도, 퀴즈 게임이나 온라인 데이터 베이스를 이용한 어휘 공부 도구, 혹은 등산할 때 걸어온 경로를 자동으로 생성해주는 앱을 만들 수도 있다.

개인적인 앱을 개발했다는 말은 '사용자'들이 결국 '개발자'가 되어가는 경우가 얼마나 많은지 두고 보면 알게 될 것이다. 즉, '수동적 소비자'에서 '능동적 생산자'로 진화하게 되면서 가장 현대적인 통신 기술의 형태를 다루는 데 있어 소소한 혁신을 일으키게 된다. 그렇다 하더라도, 경험이 많은 기존의 개발자들 역시 앱 인벤터를 유익하게 사용할 수 있다. 앱 인벤터를 통해 초기 프로토타입의 앱을 좀 더 전문적이고 빠르게 만들 수 있으므로 비용 절감 효과가 있기 때문이다. 이제 앱 인벤터 개발에 참여하여 이 책을 통해 공부하면서 앱 인벤터가 뭔지 알아보자. 독자만의 목적을 위해 사용할 수 있는 방법을 배울 수 있으며, 머지 않아 이렇게 강력한 개발 도구의 가치가 얼마나 높은지 감사해 할 것이다.

앱 인벤터의 풍부한 지원 속성과 기능 덕에 무엇을 원하든 적재적소에 사용할 수 있다. 모바일 통신 네트워크 인프라를 설립하고 라이선스를 지불하는 데 지금까지 수백억 달러가 투자돼서, 3G(UMTS, HSDPA)와 4G 통신망을 언제 어디서든 사용할 수 있다(웹 서비스, 모바일 인터넷, 고속 데이터 서비스 등 각종 서비스에 대한 데이터 사용 요금을 지불해야 한다). 모바일 기기 제조사에서 새로 개발된 제품들이 끊임없이 쏟아지고 있다. 더군다나 도매 시장에서 엄청난 기술이 집약된 새로운 스마트폰이 홍수처럼 밀려오고, 후속 타자로 차세대 태블릿 PC가 등장하면서 이를 사려고 몰려드는 소비자들에 의해 큰 파급효과를 미치고 있다. 온라인 서비스와 웹 서비스 제공 업체들도 새로운 모바일 시장의 가능성을 예측해서 점점 증가하는 웹 2.0 사용자들에게 위치 기반 서비스와 자신들에게 재산권이 있는 앱을 성장하고 있는 앱 마켓으로 제공하는 데 혈안이다. 모바일 운영체제 사이에서 부는 경쟁 바람은 이제 잦아든 것처럼 보인다. 만들어진 다음부터 꼬리에 꼬리를 무는 초창기 세력 싸움에서 이긴 운영체제는 대부분의 스마트폰 운영체제로 오랜 기간에 걸쳐 선택되어 온 안드로이드임이 이제 명확해졌다. 안드로이드의 공개 정책과 그로 인해 생긴 시스템적 유연성, 그리고 무료로 사용할 수 있다는 특성, 구글의 다양하고 광범위한 서비스의 기능을 통합적으로 접근할 수 있다는 점을 빌어 안드로이드는 다른 모바일 운영체제에 없는 가치를 지닌다.

눈부신 기술적 진보에도 불구하고, 오늘날 사용자들은 더 이상 기능과 세부 사항에는 관심이 없다. 처음 인터넷이 몇 명의 열정적인 기술자들 덕에 개발돼 웹 1.0 시대에서는 뉴스, 정보, 엔터테인먼트 등의 매스미디어 형태였다가, 웹 2.0 시대에 와서 사람들간의 의사소통을 즐길 수 있는 쌍방형 형태를 띠게 되었다.

오늘날 웹이 관심을 두는 것은 기술 자체에 치중된 것이 아니라 사람끼리의 소통, 즉 커뮤니케이션 방식과 창조 능력, 그리고 사람들이 웹을 통해 자신의 개성을 표출하는 방식에 있다. 이러한 추세는 사용자들이 점차 자발적으로 자신의 시간과 노력을 투자해 소셜 네트워크 사이트에 프로필을 게재하고 블로그나 온라인 게임, 채팅방을 개설하거나 모바일 정보 이용료를 정액제로 들고, 최신 그리고 가장 유행하는 기기 등에 기꺼이 돈을 지불하는 현상을 일부 설명하는 근거라 할 수 있다. 디지털 시대에서 사람들의 개성과 이들이 만들어낸 창조물을 어떤 형태로 표출하든지, 앱 인벤터는 전적으로 그런 활동을 더욱 원활히 이뤄지도록 돕는다. 과거 사용자들은 하드웨어 제조사, 플랫폼 오퍼레이터, 앱 개발자들이 만들어 놓은 제약 안에서만 활동할 수 있었다. 이제는 앱 인벤터를 통해 최소한 이런 제한을 극복할 수 있게 됐으며, 결과적으로 제약으로부터 자유로워졌다. 이 부분을 절대 과소평가해서는 안 된다. 심지어 독자가 저렇게 원대한 목적을 가지고 있지 않았더라도, 앱 인벤터로 앱을 재미있게 개발할 수 있다. 이 책을 읽으면서 앱 인벤터를 통해 예제들을 다뤄본 후에는, 이 세상에 얼마나 화려한 앱이 펼쳐져 있는지 볼 수 있는 새로운 시각을 가지게 될 것이다. 자신도 느끼지 못한 사이에 독자는 안드로이드 앱 개발자가 돼 있을 것이다. 이런데도 망설일 이유가 있는가?


★ 옮긴이의 말 ★

처음 안드로이드 개발을 접한 지도 벌써 3년이 됐지만, 이처럼 소프트웨어 개발자만이 아닌 초등학생, 주부 간호사, 변호사 등 코딩과는 거리가 먼 사람도 자신의 필요에 의해 앱을 개발할 수 있는 수단이 제공된다는 사실은 정말 놀랍지 않을 수 없다. 사실 앱 인벤터가 나오기 전에도 MIT에서는 인터랙티브형 앱 개발을 위한 연구를 오래 전부터 해왔다. 그런 취지와 구글의 취지, 그리고 소비자의 요구가 맞아 떨어진 결과 가장 완성도 높은 결과물이 바로 앱 인벤터다. 앱 인벤터만큼 폭넓게 오픈된 라이브러리를 제공하는 툴도 없을 것이다. 오래 전부터 진정한 소프트웨어는 정작 소프트웨어 전공자가 아닌, 비전공자의 니즈를 통해 나올 것이란 개인적인 신념과도 부합하기 때문에, 역자도 앱 인벤터를 무척 관심있게 바라보고 있다. 사실 앱 인벤터를 처음 접한 사람이라도 이 책을 다 보고 나서 자기 것으로 만들기 까지는 (사람마다 다르겠지만) 평균적으로 일주일밖에 걸리지 않을 것이라 생각된다. 모든 자잘한 일들은 앱 인벤터가 다 해준다. 우리는 그저 퍼즐 조각을 끼워 맞추면 된다. 독자들 모두 자신만의 멋진 퍼즐을 완성해서 마켓에 자신의 앱을 파는 환상적인 기분을 만끽해보길 바란다.

저자 소개

클로스는 혁신적인 정보 커뮤니케이션 기술 분야와 개인적인 분야와 전문 분야에 걸쳐 수년간의 개발 경력을 쌓았다. 그는 처음 암스트라드(Amstrad) CPC 컴퓨터와 베이직 언어로 프로그래밍을 시작해 대학교에서 인공지능과 파스칼, C, C++, 자바, 그리고 리스프(Lisp)와 (Prolog) 등의 특수 프로그래밍 언어 등 다양한 분야에 걸친 컴퓨터 언어학을 전공으로 삼았다. 클로스는 가상현실(VR)과 증강현실(AR), 인터넷상의 인터랙티브 3D 세계를 구현하는 기술의 선구자다. 그는 1990년대 중반에 처음으로 상용 VRML을 기반으로 한 온라인 정보 시스템 분야에서 개발을 시작했으며, 독일의 프라운호퍼 연구소 산업 엔지니어링 연구소(FhG-IAO, Fraunhofer Institute for Industrial Engineering)와 미국의 VR-Entertainer StrayLight에서 일했다. 그리고 VRASP(VR Alliance of Students and Professionals)의 유럽지사장을 맡고 있다. 여러 프레젠테이션 경험과 업무 경력, 그리고 출판 경력을 쌓으면서 지금까지 두 권의 책을 집필했다(『VRML97: The New Standard for Interactive 3D Worlds in the World Wide Web』(1998)과 『X3D: Programming Interactive 3D Applications for the Internet』(2010)).
초창기 국가간 미디어 하우스를 위한 3D 멀티유저 세계를 기반으로 한 산업 프로젝트 참여와 더불어 대규모 에너지 공급용 전원 라인을 통한 원거리 에너지 유지란 주제로 개발을 해온 클로스는 수년간 통신 분야에 주력하면서 멀티미디어 데이터와 모바일 네트워크 통신 분야(IP, TDM, VoIP, 3G, 4G) 등에 사용되는 음성 기술 등 혁신적인 프로젝트들에 참여해왔다. 이러한 기술들이 서로 융합되면서 클로스는 모바일 데이터 네트워크와 모바일 증강현실, 유비쿼터스 컴퓨팅, 문맥 서비스 등 점차 많은 프로젝트들을 맡았다. 그는 앱 인벤터가 초기 클로즈 베타 테스트 기간을 가졌을 때부터 앱 인벤터 개발 분야에서 왕성하게 활동해온 인물이다.


 

역자 소개

한국 항공대학교 기계공학부를 졸업하고, 삼성 소프트웨어 멤버십과 산업통상자원부 소프트웨어 마에스트로를 수료했다. MDS 테크놀로지에서 자동차의 ISO26262 국제 안전 표준과 AUTOSAR 관련 기술 지원을 담당했으며, 현재 시어스랩에서 모바일 환경에서의 DCNN 구동을 위한 압축 알고리즘 연구에 매진하고 있다. 한양대학교 컴퓨터공학과에서 석사 과정을 밟고 있으며, 딥러닝 기반 실시간 영상처리 기술을 다양한 도메인의 소프트웨어에 적용하는 연구를 하고 있다. 양질의 원서를 하루라도 빨리 우리글로 옮겨 국내 개발자들에게 도움을 주고자 번역계에 발을 들였다. 에이콘출판사에서 펴낸 『윈도우폰 7 게임 프로그래밍』(2012), 『안드로이드 앱 인벤터』(2013), 『데이터 마이닝 Data Mining』(2013), 『C++와 CUDA C로 구현하는 딥러닝 알고리즘 Vol.1』(에이콘, 2016), 『C++와 CUDA C로 구현하는 딥러닝 알고리즘 Vol.3』(에이콘, 2016)를 번역했다.

머리말

★ 저자 서문 ★

요즘은 그 어느 때보다 안드로이드 앱 개발을 시작하기 좋은 때다. 더군다나 현재 앱 인벤터를 이용하는 것보다 쉽게 앱을 개발할 수는 없다는 것이 가장 중요한 점이다. 앱 인벤터 개발 도구는 구글과 MIT가 함께 지원하며 2010년 11월부터 무료로 서비스되어 왔다. 앱 인벤터를 통해 프로그래밍 경험이 없어도, 복잡한 자바 코드 한 줄 작성하지 않고도, 블록을 시각적으로 조립해 나가는 방식으로 즐겁게 놀면서 컴퓨터 한 대, 심지어 스마트폰 한 대만 있어도 직접 간단하거나 복잡한 앱을 개발할 수 있다.

앱 인벤터를 단순히 블록 장난감이라 볼 수는 없지만 그만큼 독자가 원하는 복잡한 앱을 쉽고 빠르게 개발할 수 있다(독자가 쓰기 위한 앱이거나 여러 사람이 사용하기 위한 앱이 있어도 좋다). 이 책의 목차를 보면 처음에 입문자를 위해 멀티미디어 분야(사진, 오디오, 비디오)의 내용을 다루고, 그래픽과 애니메이션 분야, 다양한 통신 분야(음성, SMS, 이메일, 웹 서비스 등), 그리고 센서 관련 분야까지(방향, 가속도, GPS 좌표) 담겨 있다는 걸 보면 놀라울 것이다.

쉽고 빠르게 앱 인벤터에 적응하는 것과 그 만큼 빠르고 직관적으로 원하는 앱을 개발하는 방법을 제공하는 것이 앱 인벤터에서 내세우는 시각적인 개발 도구의 목표다. 앱 인벤터는 다른 보편적인 개발 도구보다 훨씬 더 넓은 그룹을 대상으로 삼는다. 앱 인벤터를 통해, 모든 안드로이드 스마트폰 사용자들은 이제 다채로운 앱 화면 뒤에 숨겨진 부분을 살펴보고 앱을 직접 디자인함으로써 창의성을 표현할 수 있는 기회를 얻을 수 있다.

앱이 어떻게 완성될지는 완전히 개발자의 개인적인 취향과 주된 강조 사항, 개발 동기 등에 달렸다. 개발할 앱을 사용자의 입장에서 단지 개인적인 디지털 사진관으로 만들 수도, 퀴즈 게임이나 온라인 데이터 베이스를 이용한 어휘 공부 도구, 혹은 등산할 때 걸어온 경로를 자동으로 생성해주는 앱을 만들 수도 있다.

개인적인 앱을 개발했다는 말은 ‘사용자’들이 결국 ‘개발자’가 되어가는 경우가 얼마나 많은지 두고 보면 알게 될 것이다. 즉, ‘수동적 소비자’에서 ‘능동적 생산자’로 진화하게 되면서 가장 현대적인 통신 기술의 형태를 다루는 데 있어 소소한 혁신을 일으키게 된다. 그렇다 하더라도, 경험이 많은 기존의 개발자들 역시 앱 인벤터를 유익하게 사용할 수 있다. 앱 인벤터를 통해 초기 프로토타입의 앱을 좀 더 전문적이고 빠르게 만들 수 있으므로 비용 절감 효과가 있기 때문이다. 이제 앱 인벤터 개발에 참여하여 이 책을 통해 공부하면서 앱 인벤터가 뭔지 알아보자. 독자만의 목적을 위해 사용할 수 있는 방법을 배울 수 있으며, 머지 않아 이렇게 강력한 개발 도구의 가치가 얼마나 높은지 감사해 할 것이다.

앱 인벤터의 풍부한 지원 속성과 기능 덕에 무엇을 원하든 적재적소에 사용할 수 있다. 모바일 통신 네트워크 인프라를 설립하고 라이선스를 지불하는 데 지금까지 수백억 달러가 투자돼서, 3G(UMTS, HSDPA)와 4G 통신망을 언제 어디서든 사용할 수 있다(웹 서비스, 모바일 인터넷, 고속 데이터 서비스 등 각종 서비스에 대한 데이터 사용 요금을 지불해야 한다). 모바일 기기 제조사에서 새로 개발된 제품들이 끊임없이 쏟아지고 있다. 더군다나 도매 시장에서 엄청난 기술이 집약된 새로운 스마트폰이 홍수처럼 밀려오고, 후속 타자로 차세대 태블릿 PC가 등장하면서 이를 사려고 몰려드는 소비자들에 의해 큰 파급효과를 미치고 있다. 온라인 서비스와 웹 서비스 제공 업체들도 새로운 모바일 시장의 가능성을 예측해서 점점 증가하는 웹 2.0 사용자들에게 위치 기반 서비스와 자신들에게 재산권이 있는 앱을 성장하고 있는 앱 마켓으로 제공하는 데 혈안이다. 모바일 운영체제 사이에서 부는 경쟁 바람은 이제 잦아든 것처럼 보인다. 만들어진 다음부터 꼬리에 꼬리를 무는 초창기 세력 싸움에서 이긴 운영체제는 대부분의 스마트폰 운영체제로 오랜 기간에 걸쳐 선택되어 온 안드로이드임이 이제 명확해졌다. 안드로이드의 공개 정책과 그로 인해 생긴 시스템적 유연성, 그리고 무료로 사용할 수 있다는 특성, 구글의 다양하고 광범위한 서비스의 기능을 통합적으로 접근할 수 있다는 점을 빌어 안드로이드는 다른 모바일 운영체제에 없는 가치를 지닌다.

눈부신 기술적 진보에도 불구하고, 오늘날 사용자들은 더 이상 기능과 세부 사항에는 관심이 없다. 처음 인터넷이 몇 명의 열정적인 기술자들 덕에 개발돼 웹 1.0 시대에서는 뉴스, 정보, 엔터테인먼트 등의 매스미디어 형태였다가, 웹 2.0 시대에 와서 사람들간의 의사소통을 즐길 수 있는 쌍방형 형태를 띠게 되었다.

오늘날 웹이 관심을 두는 것은 기술 자체에 치중된 것이 아니라 사람끼리의 소통, 즉 커뮤니케이션 방식과 창조 능력, 그리고 사람들이 웹을 통해 자신의 개성을 표출하는 방식에 있다. 이러한 추세는 사용자들이 점차 자발적으로 자신의 시간과 노력을 투자해 소셜 네트워크 사이트에 프로필을 게재하고 블로그나 온라인 게임, 채팅방을 개설하거나 모바일 정보 이용료를 정액제로 들고, 최신 그리고 가장 유행하는 기기 등에 기꺼이 돈을 지불하는 현상을 일부 설명하는 근거라 할 수 있다. 디지털 시대에서 사람들의 개성과 이들이 만들어낸 창조물을 어떤 형태로 표출하든지, 앱 인벤터는 전적으로 그런 활동을 더욱 원활히 이뤄지도록 돕는다. 과거 사용자들은 하드웨어 제조사, 플랫폼 오퍼레이터, 앱 개발자들이 만들어 놓은 제약 안에서만 활동할 수 있었다. 이제는 앱 인벤터를 통해 최소한 이런 제한을 극복할 수 있게 됐으며, 결과적으로 제약으로부터 자유로워졌다. 이 부분을 절대 과소평가해서는 안 된다. 심지어 독자가 저렇게 원대한 목적을 가지고 있지 않았더라도, 앱 인벤터로 앱을 재미있게 개발할 수 있다. 이 책을 읽으면서 앱 인벤터를 통해 예제들을 다뤄본 후에는, 이 세상에 얼마나 화려한 앱이 펼쳐져 있는지 볼 수 있는 새로운 시각을 가지게 될 것이다. 자신도 느끼지 못한 사이에 독자는 안드로이드 앱 개발자가 돼 있을 것이다. 이런데도 망설일 이유가 있는가?

★ 옮긴이의 말 ★

처음 안드로이드 개발을 접한 지도 벌써 3년이 됐지만, 이처럼 소프트웨어 개발자만이 아닌 초등학생, 주부 간호사, 변호사 등 코딩과는 거리가 먼 사람도 자신의 필요에 의해 앱을 개발할 수 있는 수단이 제공된다는 사실은 정말 놀랍지 않을 수 없다. 사실 앱 인벤터가 나오기 전에도 MIT에서는 인터랙티브형 앱 개발을 위한 연구를 오래 전부터 해왔다. 그런 취지와 구글의 취지, 그리고 소비자의 요구가 맞아 떨어진 결과 가장 완성도 높은 결과물이 바로 앱 인벤터다. 앱 인벤터만큼 폭넓게 오픈된 라이브러리를 제공하는 툴도 없을 것이다. 오래 전부터 진정한 소프트웨어는 정작 소프트웨어 전공자가 아닌, 비전공자의 니즈를 통해 나올 것이란 개인적인 신념과도 부합하기 때문에, 역자도 앱 인벤터를 무척 관심있게 바라보고 있다. 사실 앱 인벤터를 처음 접한 사람이라도 이 책을 다 보고 나서 자기 것으로 만들기 까지는 (사람마다 다르겠지만) 평균적으로 일주일밖에 걸리지 않을 것이라 생각된다. 모든 자잘한 일들은 앱 인벤터가 다 해준다. 우리는 그저 퍼즐 조각을 끼워 맞추면 된다. 독자들 모두 자신만의 멋진 퍼즐을 완성해서 마켓에 자신의 앱을 파는 환상적인 기분을 만끽해보길 바란다.

 

목차

top