책 소개
안드로이드의 기본 개념을 익히는 앱 개발 입문서
안드로이드 플랫폼을 기반으로 하는 앱 개발 환경은 새로운 소프트웨어 생태계를 만들었다. 즉, 앱 개발과 판매-구매가 아주 밀접하게 연동되었고, 앱 시장은 더욱 유연해졌고 앱 시장의 전파력은 그 어느 때보다도 넓어지고 강해졌다.
이러한 ICT 패러다임의 변화에 가장 선봉에 섰던 안드로이드 플랫폼에서 앱을 개발하고, 프로그래밍하는 것은 컴퓨터과학을 전공으로 하는 학생들에게는 필수불가결한 요소가 되었다. 이 책은 컴퓨터과학을 전공하거나 관심있는 학생들이 쉽게 안드로이드 앱 개발에 입문할 수 있도록 안드로이드 기본 개념부터 다양한 내용들을 단계적으로 설명하고 있다.
이 책의 구성
‘안드로이드 앱 프로그래밍 입문’은 모두 15장으로 구성되었으며 크게 네 부분으로 이루어졌다. 우선, 화면 제어 및 화면 출력을 다루는 부분, 사용자의 입력 이벤트를 처리하는 부분, 사용자의 반응에 대한 출력 부분, 액티비티 사이의 송.수신 부분 등 네 가지 내용들로 구성되어 있다.
각 장에서 해당 부분들의 기본 개념을 설명하고, 직접 실행해 볼 수 있는 예제 소스 코드를 제공하였다. 그리고 예제 실행 결과 화면을 통해 직접 실행해 본 결과와 비교해 볼 수 있도록 하였다.
작가 소개
유헌창
고려대학교 컴퓨터과학과 이학학사
고려대학교 컴퓨터과학과 이학석사
고려대학교 컴퓨터과학과 이학박사
서경대학교 컴퓨터과학과 교수
현재: 고려대학교 정보대학 컴퓨터학과 교수
정광식
고려대학교 컴퓨터과학과 이학학사
고려대학교 컴퓨터과학과 이학석사
고려대학교 컴퓨터과학과 이학박사
영국 UCL Research Fellow
삼성 SDS(주) 책임컨설턴트
현재: 한국방송통신대학교 교수
고려대학교 컴퓨터과학과 이학학사
고려대학교 컴퓨터과학과 이학석사
고려대학교 컴퓨터과학과 이학박사
서경대학교 컴퓨터과학과 교수
현재: 고려대학교 정보대학 컴퓨터학과 교수
정광식
고려대학교 컴퓨터과학과 이학학사
고려대학교 컴퓨터과학과 이학석사
고려대학교 컴퓨터과학과 이학박사
영국 UCL Research Fellow
삼성 SDS(주) 책임컨설턴트
현재: 한국방송통신대학교 교수
목 차
CHAPTER 01 안드로이드 앱의 구성 및 View
1. 안드로이드 프로젝트
1) 안드로이드 프로젝트와 워크스페이스(workspace)
2) 프로젝트 구조
2. 안드로이드 프로젝트의 구성 1
1) activity_main.xml
2) strings.xml
3) R.java
3. 안드로이드 프로H젝트의 구성 2
1) MainActivity.java
2) AndroidManifest.xml
3) XML 레이아웃의 장점
4. View
1) 액티비티와 View
2) View의 종류
CHAPTER 02 View의 속성
1. 안드로이드 앱의 실행 과정
1) 컴파일 과정
2) 안드로이드 앱 배포 과정
2. View의 속성 1
1) id 속성
2) clickable과 longClickable 속성
3. View의 속성 2
1) background 속성
2) padding 속성
4. View의 속성 3
1) visibility 속성
2) focusable 속성
CHAPTER 03 TextView와 ImageView
1. TextView의 속성
1) textColor 속성
2) textSize 속성
3) textStyle 속성
4) Typeface 속성
5) width, height 속성
6) singleLine 속성
2. TextView 프로젝트
3. ImageView
1) src 속성
2) 이미지 포맷
3) ImageView 프로젝트
CHAPTER 04 버튼과 에디트 텍스트
1. ImageView 2
1) maxHeight, maxWidth 속성과 minHeight, minWidth 속성
2) adjustViewBounds 속성
3) cropToPadding 속성
4) tint 속성
5) scaleType 속성
2. Button과 EditText
1) Button
2) EditText
3) ButtonEdit 프로젝트
3. ViewGroup의 속성 1
1) layout_width, layout_height 속성
2) 다양한 layout_width, layout_height 적용 예제
4. ViewGroup의 속성 2
1) Padding 속성
2) layout_margin 속성
3) padding과 layout_margin
CHAPTER 05 LinearLayout
1. LinearLayout의 속성 1
1) orientation 속성
2) baselineAligned 속성
2. TextView의 속성
1) gravity 속성
3. LinearLayout의 속성 2
4. LinearLayout의 속성 3
1) layout_weight 속성
CHAPTER 06 RelativeLayout
1. RelativeLayout의 속성 1
1) RelativeLayout
2) RelativeLayout의 속성
3) RelativeLayout 속성 2
3) 리소스 컴파일러와의 관계
4) RelativeLayout 배치순서 예제
5) RelativeLayout의 배치상의 어려움
6) RelativeLayout의 논리상의 문제점
2. RelativeLayout의 속성 2
1) RelativeLayout 예제 결과 설명
2) RelativeLayout 예제 결과 설명(배치 순서)
3. AbsoluteLayout의 속성
1) AbsoluteLayout
4. FrameLayout의 속성
1) FrameLayout
2) FrameLayout 실용성
3) FrameLayout 속성
CHAPTER 07 레이아웃의 중첩
1. TableLayout
1) 표의 속성
2) 차일드 View의 경우
3) TableLayout 예제
4) TableLayout 예제 1의 변경
5) shrinkColumns, stretchColumns 속성의 변경
2. 레이아웃의 중첩 1
1) 레이아웃의 중첩
2) 레이아웃의 중첩 예제 1
3) 레이아웃의 중첩 예제 2
3. 레이아웃 중첩 2
1) 레이아웃의 중첩
4. 실행 중에 속성 바꾸기
1) 엘리먼트 속성 변경
CHAPTER 08 Canvas과 Toast
1. Canvas 1
1) CustomView
2) Canvas 클래스 메소드
2. Canvas 2
1) Paint 객체
2) PaintTest 예제
3. Toast
1) Toast 객체
4. 소리 출력
1) 소리 출력
CHAPTER 09 이벤트 처리
1. 이벤트 핸들러
1) 이벤트 처리
2. 안드로이드 플랫폼의 구조
1) 애플리케이션
2) 애플리케이션 프레임워크
3) 라이브러리
4) 안드로이드 런타임
5) 안드로이드 커널
CHAPTER 10 이벤트 처리 순서
1. 핸들러의 우선순위
1) 메소드 호출기회
2) 핸들러의 우선순위
3) onTouch 핸들러 비교
2. 터치 입력
3. 키보드 입력
1) KeyEvent 객체
2) getAction 메소드
CHAPTER 11 입력
1. 위젯 이벤트 처리 1
1) 위젯 이벤트
2) Button 이벤트
2. 위젯 이벤트 처리 2
1) 리스너의 통합
3. 타이머 이벤트
4. 액티비티의 생명주기
1) 안드로이드 멀티태스킹
2) 생명 주기(Life Cycle)
3) 액티비티 관리
CHAPTER 12 액티비티와 인텐트
1. 액티비티 1
1) 액티비티
2) 액티비티와 View
3) 실제 응용 프로그램
2. 액티비티 2
3. 인텐트 1
1) 인텐트(Intent)
2) 액티비티 호출
3) 인텐트 생성자
4) 호출문
5) 명시적 인텐트
6) 암시적 인텐트
4. 인텐트 2
1) 인텐트의 정보 명세
CHAPTER 13 ListView와 Spinner
1. ListView
1) AdapterView
2) ListView
3) setAdapter 메소드 호출
2. Spinner
1) Spinner와 ListView
2) setDropDownViewResource 메소드
3) Prompt 메시지
CHAPTER 14 AlertDialog
1. AlertDialog의 생성
1) AlertDialog
2) Builder 생성자
3) Builder 호출 및 반환
2. AlertDialog의 버튼
1) AlertDialog의 버튼 예제
2) 클릭리스너가 null인 경우
CHAPTER 15 AlertDialog
1. AlertDialog의 사전 생성
1) AlertDialog의 효율성
2. 알림 메시지 전달
1) AlertDialog 용도
1. 안드로이드 프로젝트
1) 안드로이드 프로젝트와 워크스페이스(workspace)
2) 프로젝트 구조
2. 안드로이드 프로젝트의 구성 1
1) activity_main.xml
2) strings.xml
3) R.java
3. 안드로이드 프로H젝트의 구성 2
1) MainActivity.java
2) AndroidManifest.xml
3) XML 레이아웃의 장점
4. View
1) 액티비티와 View
2) View의 종류
CHAPTER 02 View의 속성
1. 안드로이드 앱의 실행 과정
1) 컴파일 과정
2) 안드로이드 앱 배포 과정
2. View의 속성 1
1) id 속성
2) clickable과 longClickable 속성
3. View의 속성 2
1) background 속성
2) padding 속성
4. View의 속성 3
1) visibility 속성
2) focusable 속성
CHAPTER 03 TextView와 ImageView
1. TextView의 속성
1) textColor 속성
2) textSize 속성
3) textStyle 속성
4) Typeface 속성
5) width, height 속성
6) singleLine 속성
2. TextView 프로젝트
3. ImageView
1) src 속성
2) 이미지 포맷
3) ImageView 프로젝트
CHAPTER 04 버튼과 에디트 텍스트
1. ImageView 2
1) maxHeight, maxWidth 속성과 minHeight, minWidth 속성
2) adjustViewBounds 속성
3) cropToPadding 속성
4) tint 속성
5) scaleType 속성
2. Button과 EditText
1) Button
2) EditText
3) ButtonEdit 프로젝트
3. ViewGroup의 속성 1
1) layout_width, layout_height 속성
2) 다양한 layout_width, layout_height 적용 예제
4. ViewGroup의 속성 2
1) Padding 속성
2) layout_margin 속성
3) padding과 layout_margin
CHAPTER 05 LinearLayout
1. LinearLayout의 속성 1
1) orientation 속성
2) baselineAligned 속성
2. TextView의 속성
1) gravity 속성
3. LinearLayout의 속성 2
4. LinearLayout의 속성 3
1) layout_weight 속성
CHAPTER 06 RelativeLayout
1. RelativeLayout의 속성 1
1) RelativeLayout
2) RelativeLayout의 속성
3) RelativeLayout 속성 2
3) 리소스 컴파일러와의 관계
4) RelativeLayout 배치순서 예제
5) RelativeLayout의 배치상의 어려움
6) RelativeLayout의 논리상의 문제점
2. RelativeLayout의 속성 2
1) RelativeLayout 예제 결과 설명
2) RelativeLayout 예제 결과 설명(배치 순서)
3. AbsoluteLayout의 속성
1) AbsoluteLayout
4. FrameLayout의 속성
1) FrameLayout
2) FrameLayout 실용성
3) FrameLayout 속성
CHAPTER 07 레이아웃의 중첩
1. TableLayout
1) 표의 속성
2) 차일드 View의 경우
3) TableLayout 예제
4) TableLayout 예제 1의 변경
5) shrinkColumns, stretchColumns 속성의 변경
2. 레이아웃의 중첩 1
1) 레이아웃의 중첩
2) 레이아웃의 중첩 예제 1
3) 레이아웃의 중첩 예제 2
3. 레이아웃 중첩 2
1) 레이아웃의 중첩
4. 실행 중에 속성 바꾸기
1) 엘리먼트 속성 변경
CHAPTER 08 Canvas과 Toast
1. Canvas 1
1) CustomView
2) Canvas 클래스 메소드
2. Canvas 2
1) Paint 객체
2) PaintTest 예제
3. Toast
1) Toast 객체
4. 소리 출력
1) 소리 출력
CHAPTER 09 이벤트 처리
1. 이벤트 핸들러
1) 이벤트 처리
2. 안드로이드 플랫폼의 구조
1) 애플리케이션
2) 애플리케이션 프레임워크
3) 라이브러리
4) 안드로이드 런타임
5) 안드로이드 커널
CHAPTER 10 이벤트 처리 순서
1. 핸들러의 우선순위
1) 메소드 호출기회
2) 핸들러의 우선순위
3) onTouch 핸들러 비교
2. 터치 입력
3. 키보드 입력
1) KeyEvent 객체
2) getAction 메소드
CHAPTER 11 입력
1. 위젯 이벤트 처리 1
1) 위젯 이벤트
2) Button 이벤트
2. 위젯 이벤트 처리 2
1) 리스너의 통합
3. 타이머 이벤트
4. 액티비티의 생명주기
1) 안드로이드 멀티태스킹
2) 생명 주기(Life Cycle)
3) 액티비티 관리
CHAPTER 12 액티비티와 인텐트
1. 액티비티 1
1) 액티비티
2) 액티비티와 View
3) 실제 응용 프로그램
2. 액티비티 2
3. 인텐트 1
1) 인텐트(Intent)
2) 액티비티 호출
3) 인텐트 생성자
4) 호출문
5) 명시적 인텐트
6) 암시적 인텐트
4. 인텐트 2
1) 인텐트의 정보 명세
CHAPTER 13 ListView와 Spinner
1. ListView
1) AdapterView
2) ListView
3) setAdapter 메소드 호출
2. Spinner
1) Spinner와 ListView
2) setDropDownViewResource 메소드
3) Prompt 메시지
CHAPTER 14 AlertDialog
1. AlertDialog의 생성
1) AlertDialog
2) Builder 생성자
3) Builder 호출 및 반환
2. AlertDialog의 버튼
1) AlertDialog의 버튼 예제
2) 클릭리스너가 null인 경우
CHAPTER 15 AlertDialog
1. AlertDialog의 사전 생성
1) AlertDialog의 효율성
2. 알림 메시지 전달
1) AlertDialog 용도
01. 반품기한
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
03. 배송상태에 따른 환불안내
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
04. 취소방법
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
06. 취소반품 불가 사유
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |