logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

될 때까지 안드로이드

될 때까지 안드로이드

(채팅, 미세먼지 정보 앱 개발 과정 수록)

오준석 (지은이)
루비페이퍼
40,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 4개 15,000원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

될 때까지 안드로이드
eBook 미리보기

책 정보

· 제목 : 될 때까지 안드로이드 (채팅, 미세먼지 정보 앱 개발 과정 수록)
· 분류 : 국내도서 > 컴퓨터/모바일 > 모바일 프로그래밍 > 안드로이드
· ISBN : 9791186710289
· 쪽수 : 852쪽
· 출판일 : 2018-03-14

책 소개

안드로이드 프로그래밍 학습 과정을 총 4부로 나누어 단계별로 진행할 수 있게 구성했다. 처음 해보는 독자를 위해 환경설정부터 첫 번째 앱을 만들고 이를 분석하는 과정과 안드로이드 4대 컴포넌트를 중심으로 앱을 개발할 때 필요한 핵심적인 내용과 최근에 자주 사용되는 프로그래밍 기법 등을 충분하게 담았다.

목차

1부 천 리 길도 한 걸음부터
01장 _ 안드로이드 앱 개발 준비하기
1.1. 안드로이드 버전별 특징
1.2. 안드로이드 개발 준비
1.2.1. SDK 설치
1.2.2. 안드로이드 스튜디오 설치

02장 _ 첫 번째 앱 만들기
2.1. 안드로이드 프로젝트 만들기
2.1.1. 프로젝트 생성
2.1.2. 대상 기기 및 SDK 선택
2.1.3. 화면 구성 선택
2.1.4. 액티비티 생성
2.2. 프로젝트 구성
2.2.1. app 부분 살펴보기
2.2.2. Gradle Scripts 부분 살펴보기
2.3. 그레이들 빌드 시스템
2.3.1. 프로젝트 수준 build.gradle
2.3.2. 모듈 수준 build.gradle
2.4. 앱 실행
2.4.1. 실제 기기로 실행
2.4.2. 에뮬레이터로 실행
2.4.3. 안드로이드 스튜디오에서 앱 실행

03장 _ 뷰와 뷰그룹
3.1. 뷰와 뷰그룹
3.1.1. 뷰(View)
3.1.2. 뷰그룹(ViewGroup)
3.2. 레이아웃 기초
3.2.1. XML 작성
3.2.2. XML 리소스 로딩
3.2.3. 속성(attribute)
3.2.4. 여백 다루기 : 패딩과 마진
3.3. 간단한 사용자 인터페이스 구성
3.3.1. LinearLayout 만들기
3.3.2. 문자열 입력 필드 추가
3.3.3. 문자열 리소스 추가
3.3.4. 버튼 추가
3.4. 인텐트 : 다른 액티비티 실행
3.4.1. 버튼 클릭
3.4.2. 인텐트 작성
3.4.3. 두 번째 액티비티 만들기

04장 _ 자주 사용하는 뷰, 유용한 뷰
4.1. 자주 사용하는 뷰
4.1.1. 모듈 작성하기
4.1.2. 모든 뷰의 근간 : View
4.1.3. 텍스트를 표시하자 : TextView
4.1.4. 사용자 입력을 받자 : EditText
4.1.5. 이미지를 표시하자 : ImageView
4.1.6. 버튼을 달자 : Button
4.2. 기타 유용한 뷰
4.2.1. CheckBox
4.2.2. RadioButton
4.2.3. RatingBar
4.2.4. Switch
4.2.5. SeekBar
4.2.6. SearchView
4.2.7. ProgressBar

05장 _ 레이아웃: 화면에 뷰를 수놓는 방법
5.1. LinearLayout (선형 레이아웃)
5.1.1. orientation 속성
5.1.2. layout_weight 속성
5.1.3. gravity 속성
5.2. RelativeLayout (상대 레이아웃)
5.2.1. 부모 뷰를 기준으로 배치
5.2.2. 특정 뷰를 기준으로 배치
5.3. FrameLayout (프레임 레이아웃)
5.4. ConstraintLayout (제약 레이아웃)
5.4.1. 사용 준비
5.4.2. 레이아웃 변환
5.4.3. 새로운 레이아웃 추가
5.4.4. 제약 추가(디자인 모드에서)
5.4.5. 제약 추가(텍스트 모드에서)

06장 _ 안드로이드는 액티비티로부터
6.1. 안드로이드의 4대 구성요소
6.2. 화면은 곧 액티비티다
6.2.1. 메인 액티비티
6.2.2. 액티비티 생성하기
6.3. 액티비티 상속의 변천사와 AppCompatActivity
6.4. 액티비티끼리 데이터 주고받기
따라 해 보세요 _ 액티비티끼리 데이터 주고받기

07장 _ 인텐트와 인텐트 필터
7.1. 인텐트 사용방법
7.2. 명시적 인텐트와 암시적 인텐트
7.2.1. 명시적 인텐트
7.2.2. 암시적 인텐트
7.2.3. 인텐트 필터
7.3. 전화 걸기 앱 만들기 : 암시적 인텐트 사용
따라 해 보세요 _ 전화 걸기 앱 만들기
7.4. 암시적 인텐트를 사용하는 다양한 예
7.5. 카카오톡에 메시지 전달하기
따라 해 보세요 _ 카카오톡에 메시지 전달하기

08장 _ 메뉴 구현하기
8.1. 액션바(ActionBar)
8.1.1. 액션바 가져오기
8.1.2. 업(Up) 내비게이션 제공하기
8.1.3. 효과적인 탐색 구현
따라 해 보세요 _ 앱 내 탐색 구현해보기
8.2. 옵션 메뉴
따라 해 보세요 _ 옵션 메뉴 사용하기

09장 _ 웹뷰: 웹 페이지 표시하기
9.1. 나만의 웹 브라우저 만들기
따라 해 보세요 _ 웹 브라우저 만들기
9.2. 웹 브라우저 보완하기
9.2.1. 인터넷 권한 설정
9.2.2. 뒤로 가기 재정의
9.2.3. 소프트 키보드 재정의
9.2.4. 뷰 숨기기
9.2.5. 키보드 숨기기
9.2.6. 뒤로 가기, 앞으로 가기, 새로 고침 메뉴 작성
9.2.7. 아이콘 제작 : 벡터 에셋

10장 _ 화면 제약을 극복하는 방법
10.1. 스크롤뷰(ScrollView)
따라 해 보세요 _ 스크롤뷰 사용하기
10.2. 리스트뷰(ListView)와 그리드뷰(GridView)
10.3. 어댑터뷰(AdapterView)
따라 해 보세요 _ 어댑터뷰 사용하기
10.4. 나만의 어댑터 만들기 : BaseAdapter
10.5. 리스트뷰의 성능 최적화 : 뷰홀더 패턴

11장 _ 기기에 데이터 저장하기: SharedPreference
11.1. 데이터를 저장하는 간단한 앱
따라 해 보세요 _ 이메일 기억하기 기능
11.2. 기기에 설치된 앱의 정보 이용
따라 해 보세요 _ 바로가기 추가와 유지하기
11.2.1. SharedPreference에 앱 정보 저장하기
11.2.2. SharedPreference에 저장된 값 불러오기
11.3. 다이얼로그 추가하기
11.3.1. 뒤로 가기 키 재정의
11.3.2. 확인/취소 버튼 추가하기

12장 _ 액티비티 생명주기
12.1. 여러 액티비티의 관리
12.2. 액티비티 생명주기 소개
12.3. 생명주기 콜백 메서드
12.3.1. 일시 정지 및 재개
12.3.2. 정지 및 재실행
12.3.3. 깅제 종료 및 실행
12.4. 화면 회전에도 끄떡없게 만들기
12.4.1. 화면 회전 시 초기화되는 상태
따라 해 보세요 _ 화면 회전에 대응하기
12.4.2. 상태 저장
12.4.3. 상태 복원
12.5. 화면 회전 막기
12.6. 다중 창 막기

13장 _ 프래그먼트: 화면을 조각조각 나누기
13.1. 프래그먼트 소개
13.1.1. 프래그먼트와 액티비티의 차이점
13.1.2. 프래그먼트를 사용하기 위한 화면 설계
13.1.3. 프래그먼트의 관리
13.2. 프래그먼트 실습
13.2.1. 프래그먼트 생성
따라 해 보세요 _ 프래그먼트 실습
13.2.2. 프래그먼트에 기능 추가
13.2.3. 프래그먼트 교체, 삭제, 추가
13.3. 다이얼로그 프래그먼트(DialogFragment)
13.3.1. AlertDialog의 생명주기
13.3.2. 다이얼로그 프래그먼트 생성
13.3.3. 다이얼로그 프래그먼트 표시
13.4. 프래그먼트와 액티비티 간의 통신(콜백 구현하기)
따라 해 보세요 _ 콜백 구현하기
13.4.1. 색상 목록을 표시하는 프래그먼트 작성
13.4.2. 색상을 표시하는 프래그먼트 작성
13.4.3. 콜백 인터페이스 정의
13.4.4. 콜백 인터페이스 구현

14장 _ 뷰페이저: 좌우로 밀리는 화면
14.1. 뷰페이저 구현 실습
따라 해 보세요 _ 좌우로 밀리는 화면 만들기
14.1.1. 프래그먼트 생성
14.1.2. 뷰페이저용 어댑터 작성
14.2. 탭 레이아웃(TabLayout)과 연동
14.2.1. 탭 레이아웃 사용 준비
14.2.2. 뷰페이저와 탭 레이아웃 연동

15장 _ 환경에 따라 화면 구성하기
15.1. 리소스 분기
15.2. 유연한 사용자 인터페이스 구축
15.2.1. 프로젝트 생성 및 샘플 데이터 준비
따라 해 보세요 _ 기사와 기사 내용 표시 앱
15.2.2. 화면이 작은 기기에서의 동작
15.2.3. 화면이 큰 기기를 위한 구현 추가

16장 _ 리소스
16.1. 리소스 개요
16.2. Drawable 리소스 : 늘어나는 말풍선 만들기
16.2.1. 비트맵 파일
16.2.2. 나인패치(9 patch)
16.2.3. 예제 실행
16.3. 언어 현지화(Localization) : 외국어 지원하기
따라 해 보세요 _ 외국어 지원하기
16.3.1. 직접 리소스를 추가하는 방법
16.3.2. 번역 편집기를 이용한 방법
16.3.3. 텍스트 리소스를 텍스트 뷰에 적용
16.3.4. 현지화 텍스트 확인
16.3.5. 텍스트 방향에 따른 현지화 처리

17장 _ 브로드캐스트 리시버
17.1. 미리 정의된 방송
17.1.1. 글로벌 방송 수신
따라 해 보세요 _ 전원이 열결되면 알리기
17.1.2. 로컬 방송 수신
17.2. 사용자 정의 방송
17.2.1. 나만의 방송 보내기
17.2.2. 나만의 방송 수신하기
17.3. 브로드캐스트 리시버의 특징

18장 _ 콘텐트 프로바이더
18.1. 콘텐트 프로바이더 소개
18.1.1. 프로바이더 사용 방법
18.1.2. 콘텐트 프로바이더 URI 목록
18.2. 프로바이더 사용을 위한 스레드 이해
18.3. 커서어댑터(CursorAdapter) 구현 예
따라 해 보세요 _ 갤러리 앱 만들기
18.3.1. Glide 라이브러리 사용
18.3.2. 그리드뷰 꾸미기
18.3.3. 그리드뷰의 아이템 클릭 이벤트 처리

19장 _ 비동기 처리
19.1. 작업 스레드와 메인 스레드
19.2. 스레드와 핸들러
따라 해 보세요 _ 다운로드 진행률 표시하기
19.2.1. 스레드와 핸들러 조합의 사용 예
19.2.2. 핸들러의 대표 메서드
19.2.3. 기타 핸들러 기능
19.3. AsyncTask
19.3.1. AsyncTask의 제네릭 타입
19.3.2. AsyncTask 작성의 4단계
19.3.3. 스레드, 핸들러를 AsyncTask로 변경
19.3.4. AsyncTask의 스레딩 규칙
19.3.5. 실행 순서
19.3.6. 태스크의 동작 취소
19.4. 카운트다운 타이머 예제 작성
따라 해 보세요 _ 카운트다운 타이머 만들기

20장 _ DB를 이용한 데이터 저장과 공유
20.1. 데이터베이스 기본부터 튼튼히
따라 해 보세요 _ DB 활용 간단한 메모장 만들기
20.1.1. 스키마 정의
20.1.2. 계약(Contract) 클래스 작성
20.1.3. SQL 헬퍼 클래스 생성
20.1.4. 헬퍼 클래스에 싱글턴 패턴 적용
20.1.5. DB의 정보 읽어오기
20.1.6. DB에 정보 삽입
20.1.7. DB에서 정보 삭제
20.1.8. DB의 정보 수정
20.2. 메모장 앱 만들면서 SQLite 익히기
20.2.1. 버튼부터 달아보자
20.2.2. 메모 작성 화면을 추가하고 버튼에 연결하기
20.2.3. DB에 저장하고 목록으로 보여주기
20.2.4. 메모를 내림차순으로 정렬하기
20.2.5. 저장된 메모를 확인하고 수정과 삭제까지

21장 _ 콘텐트 프로바이더와 로더
21.1. 프로바이더에 살며시 접근해보자
21.1.1. 데이터의 위치를 나타내는 콘텐트 URI
21.1.2. URI 패턴 분석을 돕는 UriMatcher 클래스
21.1.3. MIME 타입
21.2. 콘텐트 프로바이더 만들기
21.2.1. onCreate( ) : MemoDbHelper 객체 초기화
21.2.2. getType( ) : MIME 타입 반환
21.2.3. delete( ) : 메모 삭제 시 처리
21.2.4. insert( ) : 메모 추가
21.2.5. query( ) : 데이터 질의
21.2.6. update( ) : 업데이트
21.3. 콘텐트 프로바이더 적용하기
21.4. 로더(Loader) 맛보기
21.4.1. 로더 준비하기
21.4.2. 로더 구현하기
21.4.3. 프로바이더 수정
21.4.4. 로더에서 불필요한 로직 제거

22장 _ 네트워크 통신
22.1. 자바 기반 전통적 HTTP 통신
22.2. 외부 라이브러리를 활용한 편리한 통신
22.2.1. OkHttp 라이브러리 사용 준비
따라 해 보세요 _ 네트워크 통신 해보기(OkHttp 라이브러리 활용)
22.2.2. OkHttp 라이브러리 적용
22.3. JSON 파싱
22.3.1. JSON 데이터 파싱의 기본
22.3.2. JSON 데이터 주무르기
22.4. 실제 날씨 데이터 이용하기 : 웹 API 활용
22.4.1. 요청 방식
22.4.2. 응답
22.4.3. 인증
22.4.4. 실제 날씨 데이터를 얻는 방법

23장 _ 서비스 컴포넌트
23.1. 서비스가 필요한 이유
따라 해 보세요 _ 앱 종료 후 멈출 수 없는 스레드 예
23.2. 서비스 사용하기
23.2.1. 스타트 서비스
따라 해 보세요 _ 서비스 컴포넌트 예제
23.2.2. 인텐트 서비스
23.2.3. 죽지 않는 서비스
23.3. 바인드 서비스
23.3.1. 바인드 서비스 작성
23.3.2. ServiceConnection 객체 정의
23.3.3. 바인딩 상태 확인
23.3.4. 바인드 서비스의 기능 사용
23.4. 서비스의 생명주기

24장 _ 알림과 알람 매니저
24.1. 알림 띄우기
24.1.1. 알림 디자인 변천사
24.1.2. 알림의 구성요소
24.1.3. 알림 생성 방법
따라 해 보세요 _ 알림 띄우기
24.1.4. 안드로이드 오레오에서 달라진 점
24.2. 알람 매니저(AlarmManager)
24.2.1. 알람 매니저 특징
24.2.2. 알람 매니저 실습 : 타임 피커 활용
따라 해 보세요 _ 지정된 시간 후 앱 실행

25장 _ 지도를 이용해보자
25.1. 안드로이드 앱에 지도 추가
따라 해 보세요 _ 지도 표시하기
25.1.1. 구글 지도 API 키 발급받기
25.1.2. 구글 맵 액티비티 템플릿 코드 살펴보기
25.1.3. 마커의 타이틀 클릭 이벤트
25.2. 실행 중(Runtime) 권한 체크
25.2.1. 권한 승인 단계의 변화
25.2.2. 권한 확인, 요청, 응답 처리
25.2.3. 현재 위치 정보 얻기
25.2.4. 런타임 권한 체크 구현
25.2.5. 디버그 키와 릴리즈 키

26장 _ 이벤트 처리와 분위기 변신
26.1. 공통 이벤트
따라 해 보세요 _ 다양한 이벤트 처리 예
26.1.1. 레이아웃 코드 작성
26.1.2. 액티비티 코드 작성
26.1.3. 클릭 이벤트
26.1.4. 포커스 이동 이벤트
26.1.5. 키 이벤트
26.1.6. 터치 이벤트
26.2. 이벤트 처리를 위한 4가지 구현 패턴
26.2.1. onClick 속성 이용
26.2.2. setOn ~ Listener 메서드에 이벤트 리스너 구현
26.2.3. 액티비티에서 이벤트 구현
26.2.4. 이벤트 리스너 구현 후 각 뷰의 리스너로 설정
26.3. 분위기 변신
26.3.1. 테마 변경
26.3.2. 나만의 토스트 만들기
따라 해 보세요 _ 나만의 스타일로 토스트 만들기

27장 _ 툴바 사용하기
27.1. 툴바(ToolBar)
따라 해 보세요 _ 툴바 사용하기
27.2. 툴바 꾸미기
27.3. 툴바에 검색 창(SearchView) 넣기

28장 _ 리사이클러뷰
28.1. 리사이클러뷰 소개
28.2. 리사이클러뷰 + 카드뷰 사용하기
따라 해 보세요 _ 리사이클러뷰 + 카드뷰 사용하기
28.3. 클릭 이벤트 처리
28.4. 애니메이션 618

29장 _ 머티리얼 디자인
29.1. 아래로 당겨서 로딩하기
29.1.1. SwipeRefreshLayout 구현
따라 해 보세요 _ 아래로 당겨서 로딩하기
29.1.2. 로딩 상태 종료를 위한 리스너 구현
29.2. 내비게이션 드로어 메뉴
따라 해 보세요 _ 옆에서 나타나는 메뉴 만들기
29.2.1. Navigation Drawer Activity 레이아웃 분석
29.2.2. 메뉴의 이벤트 처리
29.3. 플로팅 액션 버튼
29.4. 스낵바
29.5. 코디네이터 레이아웃
29.5.1. 스크롤링 액티비티 살펴보기
29.5.2. ScrollingActivity 레이아웃 분석
29.5.3. 많이 사용하는 패턴
29.5.4. CoordinatorLayout과 Behavior

30장 _ 단위 테스트와 생산성을 높이는 라이브러리
30.1. 단위(Unit) 테스트
30.1.1. 계산기 클래스 작성하기
30.1.2. 테스트 수행해 보기
30.2. 생산성을 높이는 라이브러리
30.2.1. 메모리 누수를 검출하는 LeakCanary
30.2.2. 로컬 DB를 쉽게 확인하는 Stetho
30.2.3. 이벤트 전달을 쉽게 하는 EventBus
30.2.4. 부드러운 이미지 로딩 Glide
30.2.5. JSON 처리는 Gson
30.2.6. 비동기 네트워크 통신 OkHttp
30.2.7. OkHttp와 Gson 조합은 Retrofit
30.2.8. 둥근 이미지 뷰 CircleImageView
30.2.9. 모바일용 데이터베이스 Realm
따라 해 보세요 _ Realm을 이용한 회원가입 기능 구현

31장 _ 파이어베이스(Firebase)
31.1. 파이어베이스란?
31.1.1. 개발자 콘솔
31.1.2. 안드로이드 프로젝트에 파이어베이스 사용 조건
31.2. 앱 분석(Analytics)
31.3. 인증(Authentication)
31.3.1. 앱에 파이어베이스 인증 추가
31.3.2. 인증 처리
31.4. 실시간 데이터베이스(Realtime Database)
31.4.1. 앱에 파이어베이스 데이터베이스 추가
31.4.2. DatabaseReference 가져오기
31.4.3. 데이터베이스에 쓰기
31.5. 저장소(Storage)
31.5.1. 저장소 사용 준비
31.5.2. 파일 업로드
31.6. 알림(FCM)
31.6.1. 콘솔에서 메시지 전송
31.6.2. 알림 수신 및 처리
31.7. 원격 구성(Remote Config)
31.7.1. 원격 구성의 기본 설정
31.7.2. 원격 구성 값 가져오기
31.8. 기타 서비스들

32장 _ 채팅 앱 만들기: 파이어베이스 활용
32.1. 프로젝트 생성하기
32.2. 레이아웃 작성하기
32.3. 모델 클래스 작성하기
32.4. 뷰홀더 클래스 작성하기
32.5. 파이어베이스 연결하기
32.6. 실시간 데이터베이스 사용하기
32.6.1. 메시지 전송하기
32.6.2. 메시지 읽어오기
32.7. 푸시 알림 보내기 : FCM 활용
32.8. 원격 구성으로 메시지 길이 제한 적용하기
32.9. 앱 초대하기
32.10. 분석하기
32.11. 버그 리포팅 받기

33장 _ 미세먼지 정보 앱 만들기
33.1. 어떤 앱을 만들 것인가?
33.2. 프로젝트 구성 및 설계
33.3. 레이아웃
33.4. 미세먼지 APP 키 발급 받기
33.5. Retrofit으로 미세먼지 정보 가져오기
33.5.1. 모델 클래스 작성
33.5.2. Retrofit 사용 준비
33.5.3. 데이터 제공을 추상화하기
33.5.4. 프래그먼트 작성하기
33.6. 현재 위치 가져오기
33.7. 지역 추가 다이얼로그 작성
33.8. 지역명을 위도 경도로 변환하기
33.9. 액티비티에서 코드 마무리하기
33.10. Realm 데이터베이스 적용
33.10.1. Realm 사용 준비
33.10.2. 저장과 로드 구현하기
33.11. 내비게이션 드로어

부록

저자소개

오준석 (지은이)    정보 더보기
교육하고 책 쓰는 개발자. 일본 테크시드, 토카이리카, LG전자 등에서 개발자로 생활하다 2010년에 귀국했습니다. 현재는 안드로이드 앱을 개발하고 온라인 교육 플랫폼인 오준석의 생존코딩과 인프런에서 온라인 강의를, 세민직업전문학교에서 오프라인 강의를 합니다. 저서로 『소문난명강의 : 오준석의 플러터 생존코딩(개정판)』(한빛미디어, 2021), 『될 때까지 안드로이드』(루비페이퍼, 2018) 등이 있습니다.
펼치기

책속에서



추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책