책 소개
안드로이드 개발 환경은 빠르게 변화하고 있고, 이를 대응하기 위해서는 탄탄한 기본기가 필요합니다. 이 책은 안드로이드를 처음 접하는 독자들을 위해 기본 개념부터 설명하고, 쉽게 따라하면서 안드로이드 앱을 개발할 수 있는 실력을 키울 수 있도록 구성하였습니다. 초급 개발자의 눈높이에 맞춘 『나의 첫 안드로이드』를 만나보세요.
현재 가장 최신 버전인 안드로이드 8.1 오레오(Oreo) 버전을 기반으로 하고 있으며, 실습은 안드로이드 스튜디오 3.X에서 진행합니다.
어떤 독자를 위한 책인가?
-. 막 자바 문법을 떼고, 안드로이드에 입문하는 초급 개발자
-. 이전에 안드로이드를 공부했으나 난이도가 높아서 학습을 포기하고 다시 쉬운 입문서로 안드로이드를 배워보고자 하는 입문자
-. Java 혹은 다른 프로그래밍 언어를 배워본 적은 있지만, 안드로이드는 처음인 개발자
초급 개발자의 눈높이에 맞춘
안드로이드 앱 프로그래밍 입문서
이제 막 안드로이드 앱 개발을 시작한 초급 개발자에게는 하나의 앱을 만들더라도 안드로이드 개념을 제대로 이해하고, 개발하는 것이 중요합니다. 처음에 기본기를 제대로 익혀야 실전 앱을 개발하면서 겪는 다양한 상황에 유연하게 대처할 수 있습니다.
이 책의 목적은 단순히 책의 예제를 따라해보는 데 있는 것이 아니라, 제대로 된 실전 앱을 만들 수 있는 역량을 키우는 데 있습니다. 안드로이드 앱을 만들어 보면서 개념을 익히고, 예제 소스코드 분석을 통해 응용력을 키울 수 있습니다. 이 과정에서 습득한 응용력은 각 장의 마지막에 수록한 [도전! 프로젝트]를 수행하면서 더욱 깊게 다져질 것입니다.
[이 책의 특징]
* 안드로이드 8.1 오레오(Oreo), 안드로이드 스튜디오 3.X 대응
* 이론과 다양한 코드를 통해 실제 개발 능력을 키울 수 있게 구성
* 실전 응용력을 쌓을 수 있도록 각 장마다 실습 프로젝트 수록
* 템플릿 프로젝트 생성 및 기능 추가 방법 수록
작가 소개
저 : 한동호
2003년에 AXA 자동차보험에서 자바 개발자로 시작하여 다음, ING 생명, 네이버에서 다양한 개발 프로젝트를 담당하였으며, 사내에서 자바 및 안드로이드 등의 강의를 진행하였습니다.
현재는 기업이나 학교 또는 교육 기관에서 자바, 안드로이드, Node.js 등 다양한 강의와 기술 창업 컨설팅을 진행하고 있으며, IT 개발 회사도 운영하고 있습니다.
<집필>
『Node.js와 오픈소스를 활용한 안드로이드 서비스 개발』(제이펍)
『200개의 단계별 예제로 배우는 안드로이드 4.0』(제이펍)
『단계별 예제로 배우는 안드로이드 프로그래밍』(제이펍)
『SPEED JAVA : 효율적인 코드 작성을 위한 자바 개발자 가이드』(엠플래닝)
<번역>
『자바 프로그래밍 언어』(케이앤피 IT)
『핵심만 골라 배우는 스마트 폰 웹 개발』(제이펍)
목 차
Chapter 1. 안드로이드 이해와 개발 환경
__1.1 안드로이드 개념
__1.2 안드로이드 구성 요소
__1.3 안드로이드 버전
__1.4 안드로이드 개발 환경
__1.5 안드로이드를 배우면 할 수 있는 일
Chapter 2. 안드로이드 스튜디오 설치 및 프로젝트 생성
__2.1 안드로이드 스튜디오 설치
__2.2 첫 번째 프로젝트 생성
__2.3 안드로이드 스튜디오의 화면 구성
__2.4 안드로이드 스튜디오의 작업
____2.4.1 개발 화면
____2.4.2 레이아웃 화면
__2.5 프로젝트 구성 요소의 이해
____2.5.1 manifests
____2.5.2 java
____2.5.3 res
____2.5.4 Gradle Scripts
__2.6 프로젝트 소스 코드의 이해
____2.6.1 MainActivity.java
____2.6.2 activity_main.xml
__2.7 안드로이드 가상 기기 생성
__2.8 첫 번째 프로젝트 실행
Chapter 3. 안드로이드 기초
__3.1 안드로이드 사용자 인터페이스
__3.2 레이아웃 XML의 위젯 접근 방법
__3.3 로그 추가하는 방법
__3.4 에러 확인하는 방법
____3.4.1 컴파일 에러 확인 방법
____3.4.2 런타임 에러 확인 방법
__3.5 코드 작성 요령
____3.5.1 자동 완성 기능
____3.5.2 정렬 기능
____3.5.3 임포트 기능
____3.5.4 자동 임포트 설정
Chapter 4. 액티비티 살펴보기
__4.1 액티비티 개요
__4.2 액티비티 생성
__4.3 액티비티 실행
__4.4 액티비티 종료
__4.5 액티비티 상태
__4.6 액티비티 생명주기
Chapter 5. 안드로이드 기본 위젯 살펴보기
__5.1 위젯 소개 및 종류
__5.2 텍스트뷰
__5.3 에디트텍스트
__5.4 버튼
__5.5 이미지뷰
__5.6 이미지버튼
__5.7 체크박스
__5.8 토글버튼
__5.9 스위치
__5.10 라디오버튼
__5.11 프로그레스바
____5.11.1 원형 모양 - 기본 형태
____5.11.2 직선 모양
__5.12 시크바
__5.13 레이팅바
__5.14 스피너
__5.15 데이트피커
____5.15.1 기본 형태
____5.15.2 다이얼로그 형태
__5.16 타임피커
____5.16.1 기본 형태
____5.16.2 다이얼로그 형태
__5.17 툴바
[도전! 프로젝트 01]
[도전! 프로젝트 02]
[도전! 프로젝트 03]
Chapter 6. 안드로이드 레이아웃 살펴보기
__6.1 레이아웃 종류
__6.2. 프레임 레이아웃
__6.3 리니어 레이아웃
____6.3.1 위젯을 수평 방향으로 배치
____6.3.2 위젯에 가중치를 설정
__6.4 렐러티브 레이아웃
__6.5 테이블 레이아웃
__6.6 컨스트레인트 레이아웃
____6.6.1 위젯 기본 설정
____6.6.2 위젯 정렬
[도전! 프로젝트 04]
[도전! 프로젝트 05]
Chapter 7. 안드로이드 뷰 컨테이너 살펴보기
__7.1 뷰 컨테이너 종류
__7.2 스크롤뷰
__7.3 수평 스크롤뷰
__7.4 라디오그룹
__7.5 카드뷰
__7.6 리사이클러뷰
__7.7 리사이클러뷰 예제 프로젝트
____7.7.1 프로젝트 생성
____7.7.2 소스 코드 작성
[도전! 프로젝트 06]
Chapter 8. 프래그먼트 살펴보기
__8.1 프래그먼트 개요
__8.2 프래그먼트 작성
____8.2.1 프래그먼트에 데이터를 전달하는 방법
__8.3 프래그먼트 추가 방법
____8.3.1 레이아웃 파일에서 프래그먼트를 추가하는 방법
____8.3.2 자바 코드에서 프래그먼트를 추가하는 방법
__8.4 프래그먼트 생명주기
[도전! 프로젝트 07]
Chapter 9. 알림 기능 살펴보기
__9.1 알림 기능 종류
__9.2 토스트
__9.3 스낵바
__9.4 다이얼로그
[도전! 프로젝트 08]
Chapter 10. 인텐트와 액티비티 살펴보기
__10.1 인텐트의 이해
__10.2 인텐트 활용 예시
____10.2.1 전화 걸기
____10.2.2 구글 검색
____10.2.3 구글 맵(서울 검색)
____10.2.4 구글 맵(위도, 경도)
____10.2.5 구글 맵(위도, 경도, 확대축소)
____10.2.6 주소록
____10.2.7 오디오 실행(SD카드 MP3)
____10.2.8 비디오 실행(SD카드 파일)
____10.2.9 이미지 보기(SD카드 파일)
____10.2.10 브라우저 실행
____10.2.11 이메일 보내기
____10.2.12 이메일 보내기(여러 명의 수신자와 참조)
____10.2.13 이메일 보내기(첨부)
____10.2.14 SMS 보내기
__10.3 전화 걸기 화면 실행
__10.4 다른 액티비티 실행
__10.5. 다른 액티비티에 데이터 전달
__10.6 액티비티 처리 결과 수신
[도전! 프로젝트 09]
Chapter 11. 템플릿을 활용한 프로젝트 생성하기
__11.1 기본 프로젝트
____11.1.1 프로젝트 생성
____11.1.2 프로젝트 레이아웃 설명
____11.1.3 프로젝트 자바코드 설명
__11.2 하단 네비게이션 프로젝트
____11.2.1 프로젝트 생성
____11.2.2 프로젝트 레이아웃 설명
____11.2.3 프로젝트 자바코드 설명
____11.2.4 프로젝트 기능 추가
__11.3 네비게이션 드로어 프로젝트
____11.3.1 프로젝트 생성
____11.3.2 프로젝트 레이아웃 설명
____11.3.3 프로젝트 자바코드 설명
____11.3.4 프로젝트 기능 추가
__11.4 구글맵 프로젝트
____11.4.1 프로젝트 생성
____11.4.2 구글 플레이 서비스 SDK 설치
____11.4.3 구글맵 API 키 생성 및 설정
____11.4.4 프로젝트 레이아웃 설명
____11.4.5 프로젝트 자바코드 설명
____11.4.6 프로젝트 매니페스트 설명
____11.4.7 안드로이드 가상 기기에 프로젝트 설치
____11.4.8 프로젝트 기능 추가
Chapter 12. 개발 첫걸음 : 단순 앱 만들기
__12.1 계산기 앱 개발
____12.1.1 프로젝트 레이아웃
____12.1.2 프로젝트 자바 코드
__12.2 메모 앱 개발
____12.2.1 프로젝트 레이아웃
____12.2.2 프로젝트 리소스
____12.2.3 프로젝트 자바 코드
____12.2.4 프로젝트 매니페스트
Appendix A. Tip & Tech
__A.1 추가로 학습해야 할 사항
__A.2 초보자가 자주 접하는 안드로이드 문제 해결 방법
____A.2.1 NullPointerException 문제 해결
____A.2.2 토스트가 화면에 보이지 않는 문제
____A.2.3 build.gradle의 라이브러리 최신 버전으로 설정하는 방법
____A.2.4 액티비티를 찾지 못해 발생하는 ActivityNotFoundException
____A.2.5 런타임 권한 문제(SecurityException)
[도전! 프로젝트 해답]
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |