책 소개
안드로이드 분야에서 베스트셀러 1위를 해오며 독자들에게 큰 사랑을 받아온 『Do it! 안드로이드 앱 프로그래밍』이 안드로이드 7.0 버전인 ‘누가’와 ‘안드로이드 스튜디오 2.3’ 개발 도구를 사용하여 앱을 만들 수 있도록 최신 내용에 맞추어 개정되었습니다.
* ‘안드로이드 스튜디오’ 사용법 쾌속 정리!
『Do it! 안드로이드 앱 프로그래밍』- 개정 4판에는 안드로이드 공식 개발 도구인 ‘안드로이드 스튜디오 2.3’ 사용 방법을 더욱 꼼꼼히 설명하고 있습니다. 따라서 처음 접하는 개발 도구 때문에 답답했던 초보자뿐 아니라 끊임없이 바뀌는 개발 환경 때문에 당황했던 실무자들도 빠르게 적응할 수 있습니다.
이번 개정 4판에서는 개발자들이 모바일 트렌드에 뒤처지지 않도록, 프래그먼트 사용 방법, 페이스북 연동 기능, 파이어베이스(Firebase) 기반의 메시지 전송 방법인 FCM(Firebase Cloud Messaging) 등을 전체적으로 다시 보강하였습니다. 특히 책이 출간되기 전, 여러 명의 베타테스터가 전체 소스 코드를 테스트하여 누가 버전에서도 어려움 없이 실습을 진행할 수 있습니다.
이 책은 끊임없이 업그레이드되는 안드로이드 개발 환경에 대응할 수 있도록 저자가 지속적인 개발 리포트를 제공하고 있습니다. 개발 리포트와 주요 개정 내용은 저자 홈페이지(www.tech-town.org)와 이지스퍼블리싱 홈페이지(www.easyspub.co.kr)에서 무료로 공개하고 있어 책을 구입한 후에도 계속 도움을 받을 수 있습니다.
[개정 4판의 주요 변화]
(1) 첫째 마당
● 개발 환경 구축하기에서 자바의 설치와 안드로이드 스튜디오 설치하기
● 안드로이드 스튜디오를 사용하여 만드는 첫 번째 애플리케이션
● 새로운 프로젝트를 만들 때 다른 화면 종류 선택해보기
(2) 둘째 마당
● 안드로이드 스튜디오 살펴보기
: 새로운 프로젝트를 만드는 과정/ 프로젝트 창의 구성과 기능/ 코드 편집기 살펴보기/ 디자이너 도구 살펴보기 등이 추가로 보강되었습니다.
● 앱을 실행했을 때 권한 부여 내용 강화
: 앱이 실행될 때 사용자에게 권한을 부여할 것인지 물어보는 위험 권한(Dangerous Permission)의 사용 방법과 영역 등을 보강하였습니다.
● 구글의 푸시 서비스(FCM) 사용
: 푸시 서비스를 Firebase 서비스의 일부분으로 통합하여 제공한 FCM은 GCM보다 간단하게 사용할 수 있도록 많은 기능을 라이브러리로 제공합니다. 이 내용은 완전히 새로 추가되었습니다.
(3) 전체
● 안드로이드 7.0 누가/ 안드로이드 스튜디오 2.3 기준으로 전체 프로젝트 소스 및 책 내용이 업데이트되었습니다.
* T아카데미의 안드로이드 교육 과정을 설계한 바로 그 저자!
이 책은 최초의 안드로이드 단말 출시 이전부터 국내외에서 안드로이드 앱 개발을 해온 정재곤 박사가 국내 안드로이드 교육의 산실인 T아카데미의 대표 강사로서 이제까지 가르쳐온 노하우를 한 권에 담았습니다. 정재곤 박사는 SK텔레콤의 T아카데미에서 안드로이드 프로그래밍 전문가 과정의 커리큘럼과 교재를 직접 설계하고 집필하였으며, 이미 각계에서 활발히 활동 중인 안드로이드 전문 개발자와 안드로이드 강사들을 배출하였습니다. 이 책은 이런 탄탄한 강의를 통해 검증받은 내용을 기반으로 집필되었습니다. 이런 노력을 증명이라도 하듯, 서울대 컴퓨터공학과 등 IT 관련 학과 교수님들도 이 책에 대한 추천과 극찬을 아끼지 않았으며, 이 책의 이전 버전들은 여러 독자들에게 사랑을 받아 6년 연속 안드로이드 분야 베스트셀러 1위를 놓치지 않고 있습니다.
* 학원에 등록한 것처럼 편하게 배운다! - 무료 동영상 강의
이 책을 보는 독자들을 위해 전체 길이가 무려 40시간이 넘는 동영상 강의를 무료 공개합니다. 기존의 동영상 강의에서 버전에 맞지 않는 부분들은 재촬영 후 업데이트하고 있습니다. 진도표에 맞춘 50일 무료 강의 동영상은 한꺼번에 사용량이 몰리는 것을 감안하여 이지스퍼블리싱 홈페이지(easyspub.co.kr)는 물론 테크 타운(tech-town.org)에서도 볼 수 있습니다. 검색창에 ‘안드로이드 앱 프로그래밍’을 입력하면 쉽게 찾을 수 있으며, 스마트폰으로도 간편하게 볼 수 있어서 책을 예습하거나 복습할 때 효과적입니다.
* 100개 소스 공개 - 전체 소스를 보면서 공부한다!
이 책에 나온 100개의 다양한 프로젝트 소스들을 온라인(easyspub.co.kr-[자료실])에 모두 공개하고 있어 누구나 쉽게 참고할 수 있습니다. 또한 이 책은 제한된 지면에서 독자 여러분께 더 많은 정보를 제공하기 위해 일부 소스를 생략하고 중요한 소스 중심으로 설명했습니다. 책을 보며 스마트폰으로 쉽게 소스 코드를 확인할 수 있도록 책 속에 QR 코드를 넣었습니다. QR코드를 스캔한 후, 책과 비교하며 공부하면 더욱 효과적입니다.
* 전국 대학 인기 교재! 실제 상용 앱을 만들 수 있는 실력을 키워준다!
이 책은 실제 앱을 만드는 것을 목표로 안드로이드의 다양한 기능을 살펴보기 때문에 각각의 기능에 대해 단순히 알려주는 것을 넘어 실제 앱을 만드는 과정에서 코드를 조립하는 방법까지 알려줍니다. 특히 하나의 장이 끝날 때마다 제공되는 전체 25개의 ‘도전! 안드로이드 미션’ 응용문제를 스스로 풀다 보면, 책에서 눈으로만 보았던 이론들을 확실하게 내 것으로 만들 수 있습니다.
* 50일에 완성할 것인가? 25일에 끝낼 것인가? - 진도표가 있는 책이 책은 초급자를 위한 50일 학습 진도표와 중급자를 위한 25일 학습 진도표를 제시하고 있습니다. 하루 2~3시간의 시간만 투자하면 누구나 계획적으로 학습할 수 있도록 만들어 놓은 것입니다. 중요하게 눈여겨 봐야 할 학습 포인트도 함께 설명되어 있어서 더욱 쉽게 배울 수 있는 책으로 업그레이드하였습니다. 개발 초보자라도 방학을 이용하는 등 시간을 낼 수 있다면 25일 만에 플레이 스토어에 앱을 올릴 수 있습니다.
* 책에 대한 질문 및 소스 다운로드를 할 수 있는 곳
www.easyspub.co.kr 또는 www.tech-town.org
* 이 책을 함께 공부하는 사람들을 만나보세요! - Do it! 스터디룸
Do it! 스터디룸 네이버 카페(cafe.naver.com/doitstudyroom)에서 ‘두잇 공부단’에 참여해 보세요!
작가 소개
저자 : 정재곤
국내외 개발 현장과 강의장을 종횡무진 하는 국내 최고 안드로이드 전문가. 정재곤 박사는 안드로이드 강사들을 가르치는 강사로도 유명하며, 최초 안드로이드 단말 출시 시점부터 T아카데미의 안드로이드 교육과정을 설계한 바로 그 사람이다.
현 (주)유엔에스네트웍스 CTO, 모바일 전문 컨설팅
서울대학교 대학원 박사, GIS 전공
서울디지털대학교 컴퓨터공학과 초빙교수
SK텔레콤 T아카데미 안드로이드 전문 강사
SK텔레콤 T아카데미 안드로이드 프로그래밍 교재 집필
국내/해외 모바일 소프트웨어 컨설팅/설계/개발 경력 10년 이상
모바일 임베디드 데이터베이스, 모바일 서버, 모바일 기기용 자바 VM 설계/개발 등 다수
『Do it! Node.js 프로그래밍』 집필
『자바+안드로이드를 다루는 기술』 집필
목 차
첫째 마당
Hello! 안드로이드
01 안드로이드란?
안드로이드에 대한 이해
안드로이드의 특징
안드로이드의 흐름
안드로이드의 현재
안드로이드의 빠른 진화 과정
앞으로 어떤 스마트폰이 많이 팔릴까요?
02 개발 환경 구축하기
개발 환경 구축을 위한 프로그램
자바 설치하기
안드로이드 스튜디오 설치하기
03 첫 번째 앱 만들기
첫 프로젝트 만들기
에뮬레이터 만들기
첫 번째 앱 뜯어보기
하나씩 바꾸어 보기
XML 레이아웃 파일의 버튼에 onClick 속성 값 넣기
자바 파일에 이벤트 처리 메소드 추가하기
여러 개의 버튼에 기능 추가하기
새로운 화면 추가한 후 띄워주기
새로운 프로젝트를 만들 때 다른 종류의 화면 선택해 보기
04 안드로이드 프로젝트와 개발 도구
안드로이드 최근 버전의 주요 특징
안드로이드 4.0(아이스크림 샌드위치)의 변화
안드로이드 4.3(젤리빈)의 변화
안드로이드 4.4(킷캣)의 변화
안드로이드 5.0(롤리팝)의 변화
안드로이드 6.0(마시멜로)의 변화
안드로이드 7.0(누가)의 변화
안드로이드 프로젝트
안드로이드 SDK의 개발 도구
05 앱 장터, Play 스토어에 앱 등록하기
안드로이드의 앱 장터, Play 스토어
애플리케이션 판매를 위한 개발자 등록하기
서명된 설치 파일 만들기
Play 스토어에 등록하기
06 실제 단말 연결하기
PC에 드라이버 설치하기
단말 연결하고 설정 바꾸기
첫째 마당을 마치며
둘째 마당
안드로이드 완벽 가이드
01 안드로이드 스튜디오와 기본 레이아웃 익히기
안드로이드 스튜디오 살펴보기
시작 화면과 새로운 프로젝트를 만드는 과정
프로젝트 창의 구성과 기능
코드 편집기 살펴보기
디자이너 도구 살펴보기
뷰와 뷰의 크기 속성 이해하기
뷰의 속성
뷰의 크기 속성
제약 레이아웃 익히기
제약 조건 이해하기
화면 가운데에 뷰 배치하기
가이드라인 사용하기
XML 원본에 추가된 속성 확인하기
02 레이아웃과 기본 위젯 사용하기
대표적인 레이아웃 살펴보기
대표적인 레이아웃 다섯 가지
뷰의 영역
뷰의 배경색
리니어 레이아웃 사용하기
방향 설정하기
자바 코드에서 화면 구성하기
뷰 정렬하기
뷰의 마진과 패딩 설정하기
여유 공간 분할하기
상대 레이아웃 사용하기
테이블 레이아웃
스크롤뷰 사용하기
프레임 레이아웃과 뷰의 전환
기본 위젯들
텍스트뷰
버튼
입력상자
이미지뷰
텍스트뷰와 입력상자의 다른 기능들
03 애플리케이션 구성하기
레이아웃 인플레이션 이해하기
화면 구성과 화면 간 전환
인텐트 살펴보기
인텐트의 역할과 사용 방식
PDF 파일 보여주기
액티비티를 위한 플래그와 부가 데이터
플래그
부가 데이터
액티비티의 수명주기
서비스
브로드캐스트 수신자
위험 권한 부여하기
리소스와 매니페스트
매니페스트
리소스의 사용
스타일과 테마
04 위젯과 이벤트 활용하기
이벤트 처리 이해하기
이벤트 처리 방식
터치 이벤트 처리하기
제스처 이벤트 처리하기
키 이벤트 처리하기
포커스 이벤트 처리하기
단말 방향을 전환했을 때 이벤트 처리하기
토스트와 대화상자
토스트 위치 바꿔 보여주기
토스트 모양 바꿔 보여주기
스낵바 보여주기
알림 대화상자 보여주기
프로그레스바 사용하기
프로그레스바
시크바
간단한 애니메이션 사용하기
페이지 슬라이딩 사용하기
프래그먼트
프래그먼트에 대해 이해하기
프래그먼트를 화면에 추가하는 방법 이해하기
프래그먼트 만들어 화면에 추가하기
버튼 클릭했을 때 코드에서 프래그먼트 추가하기
프래그먼트의 수명주기
두 개의 프래그먼트로 구성된 이미지 뷰어 만들기
액션바와 탭 사용하기
화면에 메뉴 기능 넣기
액션바 좀 더 살펴보기
탭으로 보여주기
웹브라우저 사용하기
키패드 설정하기
05 선택 위젯의 사용과 커스텀뷰 만들기
나인패치 이미지 알아보기
[비트맵] 버튼 만들기
리스트뷰 사용하기
아이템을 위한 XML 레이아웃 정의하기
스피너 사용하기
그리드뷰 사용하기
복합 위젯 만들기
월별 캘린더 만들기
멀티터치 이미지 뷰어 만들기
06 그래픽
빨간색 사각형 그리기
그래픽 그리기
그리기 객체로 만들어 그리기
비트맵 이미지 사용하기
페인트 보드 만들기
서피스뷰 사용하기
그래픽을 위한 카메라 객체 사용하기
07 스레드와 애니메이션
핸들러 사용하기
자바의 스레드 사용하기
메시지 전송하여 실행하기
Runnable 객체 실행하기
일정 시간 후에 실행하기
스레드로 메시지 전송하기
AsyncTask 사용하기
스레드로 애니메이션 만들기
트윈 애니메이션
위치 이동 액션
회전 액션
스케일 액션
투명도 액션
인터폴레이터
그래프 애니메이션 만들기
08 네트워킹
네트워킹이란?
소켓 사용하기
웹으로 요청하기
뉴스 정보 가져오기
09 데이터베이스
모바일 데이터베이스
데이터베이스와 테이블 만들기
헬퍼 클래스를 이용해 업그레이드 지원하기
데이터 조회하기
SQL을 메소드 호출로 실행하기
10 멀티미디어
오디오 재생하기
동영상 재생하기
오디오 녹음하여 저장하기
동영상 녹화하기
카메라로 사진 찍어 저장하기
11 위치기반 서비스와 앱 위젯
GPS를 이용해 나의 위치 확인하기
에뮬레이터로 가상 위치 정보 전송하기
현재 위치의 지도 보여주기
Google Play Service 모듈 설치 여부 확인하기
프로젝트를 만들고 레이아웃에 프래그먼트 추가하기
액티비티 정의하기
매니페스트에 정보 등록하기
구글맵 API 키 발급받기
지도에 아이콘 추가하기
오버레이란?
내 현재 위치 표시를 위한 오버레이 추가하기
마커를 사용해 내 위치나 커피숍 위치 표시하기
앱 위젯 만들기
12 메시징과 소셜 네트워크 서비스
메시징 서비스 이해하기
푸시 서비스 사용하기
푸시 메시지란
푸시 서비스를 위한 새로운 프로젝트 만들기
FCM 설정 페이지에서 프로젝트 만들기
안드로이드 앱 프로젝트에서 설정하기
FCM을 사용할 수 있도록 서비스 만들어 등록하기
화면 레이아웃 만들기
자바 소스 코드에 단말 등록과 메시지 전송 기능 추가하기
자바 소스 코드에 메시지 수신 기능 추가하기
페이스북 연동하기
13 근거리 통신과 센서
근거리 통신 이해하기
NFC 사용하기
NFC 태그 읽기와 쓰기
센서 이해하기
셋째 마당
구글 play 스토어에 올리는 안드로이드 애플리케이션
01 멀티메모 앱
멀티메모의 개요
1단계 - 메인 화면 구성하기
2단계 - 데이터베이스와 메모 입력화면 구성 및 사진 기능 추가하기
데이터베이스 만들기
메모 입력화면 구성하기
사진 기능 추가하기
메모 저장하기
3단계 - 손글씨 기능 추가하기
4단계 - 음성과 동영상 기능 추가하기
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |