• 시작하세요! 앱 인벤터
  • 코딩 한 줄 없이 안드로이드 앱 만들기

  • 제이슨 타일러 지음
  • 강인석, 김진석 옮김

  • 임베디드 & 모바일 시리즈 _ 019
  • ISBN: 9788992939966
  • 30,000원 | 2011년 12월 7일 발행 | 456쪽



코드 한 줄 없이 안드로이드 앱 만들기!

<시작하세요! 앱 인벤터>는 프로그래밍 경험 없이도 누구나 안드로이드 앱을 만들 수 있는 방법을 소개한다. 구글이 개발한 앱 인벤터로 필요한 기능의 프로그램을 직접 만들어서 안드로이드 스마트폰에서 바로 실행해 볼 수 있다.

이 책은 완전한 컴퓨터 초보자에서 숙련된 디자이너/개발자까지 모두를 대상으로 한다. 그 누구든 이 책을 통해 앱 인벤터의 인터페이스, 컴포넌트와 쉽게 가까워지게 될 것이다. 전혀 프로그래밍 경험이 없다 해도 안드로이드 앱 개발의 세계로 들어갈 수 있다는 사실은 정말 멋진 것이다. 기발한 앱 아이디어가 있기만 하다면 앱 인벤터를 써서 그 아이디어를 현실화할 수 있다. 핸드폰 앱이 어떻게 만들어지는지 또 어떻게 동작하는지 궁금했다면 직접 만들어 보는 것이 가장 쉬운 답이다. 또 테스팅과 데모용으로 빨리 앱을 구현하는 데도 매우 유용하다.

또한, 이 책은 구글이 내놓은 안드로이드용 앱 인벤터를 써서 안드로이드 앱을 만드는 데 도움을 주고자 하는 목적으로 기획됐다. 앱 인벤터는 웹 기반 프로그램으로 일반 핸드폰 사용자부터 경험 많은 개발자에 이르기까지 누구라도 쉽게 안드로이드용 앱을 만들 수 있게 해준다.

<시작하세요! 앱 인벤터>는 훌륭한 앱 아이디어와 탄탄한 개발 경험을 지닌 개발자에게도 유용하다. 기술에 대한 이해와 경험이 많은 개발자라면 앱 인벤터의 도움을 받아 디버깅이나 문법 오류, 개발 자체에 시간을 덜 쏟으면서 더 멋진 앱을 만들 수 있을 것이다.

안드로이드 모바일 앱, 프로그래밍하지 않아도 만들 수 있습니다!

이 책의 내용을 따라가면 프로그래밍 경험이 거의 없는 독자들도 앱 인벤터(App Inventor for Android)로 안드로이드 앱을 만드는 방법을 쉽게 배울 수 있습니다. 앱 인벤터는 단순한 프로그래밍 블럭을 서로 끼워 맞추면 앱이 만들어지는 시각화된 언어입니다. 이 책에서는 실제로 동작하는 앱들을 프로그래밍 블럭으로 만드는 과정을 소개합니다. 그 과정을 독자 여러분 용도에 맞게 수정해보거나 이를 바탕으로 새로운 앱을 만들어 볼 수도 있을 것입니다. 코딩은 단 한 줄도 작성할 필요가 없습니다. 앱 인벤터 디자인 패턴을 소개하는 내용도 놓치지 마세요. 컴퓨터 용어들을 단순한 말로 설명하고 있어서 그 자체로 기본적인 참고자료가 될 것입니다.

★ 이 책에서 다루는 내용

  • 프로그래머와 비프로그래머 모두에게 앱 인벤터로 안드로이드 앱을 만드는 방법을 알려줍니다.
  • 독자가 원하는 대로 수정해서 안드로이드 폰에 올려 사용해 볼 수 있는 실제 동작하는 앱들을 제공합니다. 이를 응용하여 독자들만의 멋진 앱을 만드는 데 활용할 수도 있습니다.
  • 앱 인벤터 디자인 패턴과 이해하고 있어야 할 컴퓨터 과학 개념을 간략히 소개하는 단원도 포함하고 있습니다.
  • GPS, 메시징, 주소록 등과 같이 안드로이드 스마트폰의 유용한 기능들을 활용하여 앱을 만드는 방법을 소개합니다.

이 책의 안내를 따라 앱 인벤터를 이용하면 가속센서, GPS, 메시징과 같은 안드로이드 스마트폰의 재미난 기능들을 활용하여 앱을 만드는 것도 금세 가능해질 것입니다.

제이슨 타일러(Jason Tyler)

제이슨 타일러는 기술과 사람에 대한 열정을 가득 품고 있는 사람이다. 기술의 힘으로 사람들이 원하는 목표를 이룰 수 있게 도와주고자 기술에 대한 강의를 직업으로 택했다. 기술이 가져다 주는 강력한 힘을 믿기에 그에 열광하지만, 한편으로는 그저 반짝이고 멋진 것에 겉잡을 수 없이 이끌리기 때문이기도 하다.

뭔가 근사한 것에 경외심을 품지 못하고 지나가는 날은 헛되이 보냈다고 믿는, 평생 배움을 쉬지 않는 학생이다. 기술에 대한 열정으로 마이크로소프트, 시스코, CompTIA, ITIL 등의 다양한 자격증을 땄다. 또 사람에 대한 열정으로 현재 신학 학사 과정을 밟는 중이다.

사진과 항해, 게임에도 열렬히 몰두하고 있으며, 이 모든 것 가운데에도 특히 레베카의 남편이자 리암과 디클란의 아버지인 것이 가장 자랑스러운 사람이다.

김진석

어렸을 때부터 프로그래밍에 관심이 많았다. 전자공학을 전공한 후 여러 회사에서 셋톱박스를 비롯한 임베디드 소프트웨어를 개발하다 2007년부터 구글 코리아에서 일하고 있다. 학술 검색, 구글 뉴스 검색, 구글 지도 등의 프로젝트에 참여하였다.

강인선

삼성전자에서 임베디드용 DBMS 개발에 매진하였고 현재는 구글 코리아에서 소프트웨어 엔지니어로 일하고 있다.

 

누구나 할 수 있는 프로그래밍이란 과연 어떤 것일까?

컴퓨터를 쓰는 일이 곧 프로그래밍을 하는 것을 뜻하던 때가 있었다. 개인용 컴퓨터가 삶의 모양새를 뿌리부터 흔들어 바꾸어 놓을 것이라고는 생각지 못한 오래전의 일이다. 프로그래밍 언어를 익혀 필요한 프로그램을 대부분 직접 만들어 써야 하던 그 시절은 지나고 컴퓨터가 본격적인 도구로 자리잡으면서 쓰고자 하는 프로그램의 기능은 점차 복잡해졌다. 이와 함께 프로그래밍 이론과 환경 역시 점점 복잡하고 정교해져서 이제는 감히 접하기 어려운 전문가의 영역으로 완전히 넘어간 것으로 보였다.

세월이 흘러 이제 전혀 다른 차원에서 프로그래밍이 다시 사람들의 주목을 받는 현상은 마치 컴퓨터의 역사가 되풀이되고 있는 모습을 보는 것 같아 흥미진진하다. 그 배경에는 스마트폰이 주도하는 모바일 컴퓨팅 환경이 있다. 급속히 소형화와 함께 진행된 컴퓨팅 환경의 특성은 개인화다. 개인화는 이제 자신의 취향에 맞추어 배경화면과 아이콘을 바꾸고 액세서리를 달아주는 단순한 수준에 그치지 않는다. 몸의 일부처럼 떼어 놓지 않고 하루를 함께 보내는 모바일 기기상에서 자신이 원하는 기능의 프로그램을 직접 만들어 돌려 볼 수 있기를 바라는 궁극적인 개인화의 단계로 이르는 것은 어쩌면 자연스런 흐름으로 볼 수도 있을 것이다.

예전에도 그랬고 지금도 역시 프로그래밍은 간단한 일이 아니다. 그래서 프로그래밍의 긴 역사가 축적해온 ‘모든 이를 위한 프로그래밍’, 즉 자신이 바라는 기능의 프로그램을 쉽게 만들 수 있는 방법은 과연 어떤 것일지 호기심을 자아낸다. 그 방법을 제시하고 있는 주체가 구글이라면 더욱 그럴 것이다.

탁월한 기술력으로 전 세계 검색 시장을 장악하고 그 영역을 모바일 컴퓨팅 환경으로까지 넓힌 구글이 자사의 안드로이드 플랫폼을 통해 ‘모든 이를 위한 프로그래밍’의 답으로 제시하고 있는 것이 바로 이 책에서 소개하는 앱 인벤터다. 프로그래밍을 모르고서는 컴퓨터를 쓸 수 없던 때와는 달리, 그동안 발달해온 기술과 연구 성과를 바탕으로 프로그래밍의 장벽을 낮추면서도 고성능의 컴퓨팅 환경을 최대한 활용할 수 있도록 한 배려가 느껴진다.

색색의 블록을 쌓아 무언가를 만들던 어린 시절 놀이처럼, 이어 붙여 나간 블록이 실제 프로그램이 되어 내 안드로이드 폰에서 돌아가는 모습은 아마 처음 해본 블록 쌓기 놀이만큼(지금은 어렴풋하지만)이나 신기하고 즐거운 경험이었다. 저자의 말처럼 앱 인벤터가 본격적인 프로그래밍으로 나아가는 훌륭한 징검다리 역할 역시 해줄 수 있을 것이라 생각한다.

구글은 최근 앱 인벤터를 완전히 오픈소스로 공개하였다. 추후 개발과 관리는 초기부터 앱 인벤터를 함께 설계한 MIT 미디어 랩에서 맡기로 했다. 앞으로 어떤 새로운 방향으로 앱 인벤터가 진화할지 관심을 가지고 지켜볼 만하다.

  • Part I
    • 1장_인터페이스를 둘러보며 첫 번째 앱 만들기
      • 새 프로젝트 시작하기
        • 디자인 뷰와 친숙해지기
        • 팔레트 컬럼
        • 뷰어 컬럼
        • 컴포넌트 컬럼
        • 미디어 컬럼
        • 속성 컬럼
      • 새 프로젝트에 컴포넌트 추가하기
        • 버튼 컴포넌트 추가하기
        • 레이블 컴포넌트 추가하기
        • 이미지 컴포넌트 추가하기
        • 사운드 컴포넌트 추가하기
        • 스크린 컴포넌트 이름 바꾸기
        • 이미지 컴포넌트 이름 바꾸기
        • 레이블 컴포넌트 이름 바꾸기
        • 버튼 컴포넌트 이름 바꾸기
        • 사운드 컴포넌트 이름 바꾸기
        • 사운드 컴포넌트에 소리 파일 추가하기
        • 이미지 컴포넌트에 그림 추가하기
        • 속성 이해하기
        • 이미지 컴포넌트의 속성 설정하기
        • 레이블 컴포넌트 속성 설정하기
        • 버튼 컴포넌트 속성 설정하기
        • 사운드 컴포넌트 속성 설정하기
      • 블럭 에디터 소개하기
      • 빌트인 블럭 미리보기
      • 버튼 컴포넌트 블럭 꺼내오기
      • 사운드 컴포넌트 블럭 꺼내오기
        • 프로젝트 잘 마무리하기
        • 새로 만든 애플리케이션 저장하기
        • Save As 버튼
        • Checkpoint 버튼
        • 앱을 패키지화하기
      • 프로젝트 관리하기
        • 프로젝트 소스 코드 다운로드하기
        • 프로젝트 소스코드 업로드하기
        • 프로젝트 지우기
        • 기존의 프로젝트 로딩하기
        •  
    • 2장_프로그래밍과 디자인의 기본
      • 디자인 아이디어를 명료하게 만들기
      • 단위 목표 도출하기
      • 쉬운 것부터 시작해서 복잡한 것으로 진행하기
      • 기본적인 프로그래밍 용어 익히기
        • 이벤트
        • 메서드
        • 속성
        • 변수
        • 프로시저
        •  
  • Part II
    • 3장_SounDroid : 안드로이드 사운드 머신 만들기
      • SounDroid 2.0 생성
        • 디자인
        • 단위 목표
        • 진행 단계
        • 새 컴포넌트
        • 새 블럭
      • SounDroid 2.0 시작하기
        • 사운드 반복을 위한 컴포넌트 추가하기
        • 소리 반복 재생 기능 제대로 다루기
      • SounDroid 프로젝트 개선하기: SounDroid 3.0
        • 디자인
        • 디자인 목표
        • 단위 목표
        • 진행 단계
        • 새 컴포넌트
        • 새 블럭
      • SounDroid3.0 시작하기
      • 타이머 카운터 처리부분 만들기
      • 타이머 처리 프로시저 정의하기
      • procTimer 프로시저를 버튼 이벤트 핸들러에 추가하기
      •  
    • 4장_OrderDroid : 데이터 관리가 편한 모바일용 스토어 앱
      • OrderDroid 애플리케이션 만들기
        • 디자인
        • 단위 목표
        • 진행 단계
        • 새 컴포넌트
        • 새 블럭
      • OrderDroid 1.0 시작하기
      • OrderDroid 1.0에 새로운 컴포넌트 더하기
        • 이메일로 전송할 양식 데이터 모으기
        • 이메일 작성하기
      • OrderDroid 2.0 만들기
        • 디자인 단계
        • 단위 목표
        • 진행 단계
        • 새 컴포넌트
        • 새 블럭
      • OrderDroid 2.0 시작하기
        • 화면 이동용 엘리먼트 더하기
        • 상품 여러 개를 저장하고 포맷해서 표시하기
        • varShoppingCart 목록을 보여주는 프로시저 만들기
        • 장바구니 내용 갱신하기
        • 장바구니 기능 마무리
        • 이메일 전송 프로시저
        •  
    • 5장_AndroidDown: 위치 인식 비상 버튼
      • AndroidDown 애플리케이션 만들기
        • 디자인
        • 단위 목표
        • 진행 단계
        • 새 컴포넌트
      • AndroidDown 1.0 시작하기
        • 인터페이스 다듬기
        • LocationSensor로 사용자의 위치 파악하기
        • 위치와 전화번호 기능 완성하기
      • AndroidDown 2.0 만들기
        • 디자인
        • 단위 목표
        • 진행 단계
        • 새 컴포넌트
        • 새 블럭
      • AndroidDown 2.0 시작하기
        • 버튼 이벤트 핸들러 만들기
        • 버튼 이벤트 만들기
        • 메시지 보내기
        • procLocationWait 프로시저 완성하기
        •  
    • 6장_AlphaDroid: 알파벳 트레이싱 게임
      • AlphaDroid 1.0 만들기
        • 디자인
        • 단위 목표
        • 진행 단계
        • 새 컴포넌트
        • 새 블럭
      • AlphaDroid 1.0 시작하기
        • 색상 고르기
        • 드래그 이벤트와 터치 이벤트 이해하기
        • BackgroundImage 속성 바꾸기
        • Canvas1.Touched 이벤트 핸들러 다듬기
        • 버튼 이벤트 핸들러 설정하기
        • 그림 그리기 기능에 마무리 작업하기
      • AlphaDroid 2.0 만들기
        • 단위 목표
        • 진행 단계
        • 새 컴포넌트
        • AlphaDroid 2.0 시작하기
        • 안드로이드 로봇 앤디를 움직이게 만들기
        • 캔버스의 가장자리에서 스프라이트 다루기
        • 스프라이트 터치 이벤트 처리하기
        •  
    • 7장_PunchDroid: 안드로이드 펀치벅 게임
      • PunchDroid 애플리케이션 만들기
        • 디자인
        • 단위 목표
        • 진행 단계
      • PunchDroid 애플리케이션 개발 시작하기
        • 설정 페이지 이벤트 처리하기
        • 주 게임 화면의 이벤트 처리하기
      • PunchDroid 애플리케이션 설치하기
      •  
    • 8장_Collection Assistant:
      • 바코드와 데이터베이스 애플리케이션
      • Collection Assistant 1.0 만들기
        • 디자인
        • 단위 목표
        • 새 컴포넌트
        • 새 블럭
        • 진행 단계
      • Collection Assistant 1.0 시작하기
      • Collection Assistant 2.0 만들기
        • 디자인
        • 단위 목표
        • 새 컴포넌트
        • 새 블럭
        • 진행 단계
      • Collection Assistant 2.0 개발 시작하기
      • 도전 과제
      •  
    • 9장_BlueChat: 블루투스 채팅 클라이언트
      • BlueChat 애플리케이션 만들기
        • 디자인
        • 단위 목표
        • 새로운 컴포넌트
        • 새로운 블럭
        • 진행 단계
      • BlueChat 개발 시작하기
      • 도전 과제
      •  
    • 10장_TwiTorial: 트위터 애플리케이션
      • TwiTorial 애플리케이션 만들기
        • 디자인
        • 단위 목표
        • 새 컴포넌트
        • 새 블럭
        • 진행 단계
      • TwiTorial 개발 시작하기
      •  
  • Part III
    • 블럭과 컴포넌트 레퍼런스
      • 빌트인(Built-In) 블럭
        • Definitions 서랍
        • Text 서랍
        • Math 서랍
        • Control 서랍
      • My Blocks
        • My Definitions
        • Media 팔레트 컴포넌트
        • Social 팔레트
        • Sensors 팔레트
        • Lego Mindstorms 팔레트
        • Other Stuff 팔레트
        • Not Ready for Prime Time 팔레트
        •  
    • 부록A_휴대폰과 컴퓨터 설정하기
      • 휴대폰 설정하기
        • 컴퓨터에 자바 설치하기
        • 자바 웹 스타트 테스트하기
        • 자바 웹 스타트 동작 방식 검사하기
        • 자바 설치 문제 해결하기
      • 앱 인벤터 설정 소프트웨어 패키지 설치하기
      • ADB (Android Debug Bridge)로 작업하기
        • 커맨드 프롬프트에서 앱 인벤터 설정 소프트웨어 패키지 디렉터리로 이동하기
        • 휴대폰 연결 점검하기
      • 특수한 상황에 대처하기
        • ADB로 휴대폰의 로그 메시지 실시간으로 보기
        • 휴대폰 로그 메시지를 저장해서 Notepad/Textedit으로 보기
      • 안드로이드 에뮬레이터로 작업하기
      • 안드로이드 SDK와 다른 에뮬레이터 설정 둘러보기
      • 휴대폰 연결 문제 해결하기
        • 휴대폰 디바이스 드라이버 설치 확인하기
        • 휴대폰 드라이버 설치 혹은 재설치하기
        • 윈도우에서 디바이스 드라이버 제거하기
        • 윈도우에서 수동으로 드라이버를 설치하기
      •  
    • 부록B_개인 전용 TinyWebDB 만들기
      • 구글 앱 엔진 계정 만들기
      • TinyWebDB 서비스 수정 및 설치
  • 27p, 3번째 단락 1째 줄

    TexAlignment --> TextAlignment

예제코드 관련 GitHub 페이지

도서 소개자료

앱 인벤터 MIT 서비스

앱 인벤터 보너스 챕터

관련 글