책 소개
안드로이드-코틀린 분야 베스트 1위! 개정판 출간!
20여 년간 개발과 강의 현장에서 쌓은 ‘깡샘’의 노하우를 만나 보자!
이 책은 구글에서 공식 언어로 채택한 코틀린으로 안드로이드 앱을 개발하는 전 과정을 다룬다. 이번 개정판에서는 안드로이드 12, 안드로이드 스튜디오 북극여우 최신판을 기준으로 달라진 내용을 보충했으며 실습 소스를 업데이트했다. IT 업계의 명강사인 깡샘이 입문자도 쉽게 이해할 수 있게 구성하여 이 책만으로도 코틀린 모바일 앱 개발자로 성장할 수 있도록 했다. 특히 우리가 한번쯤 사용해 본 기능들을 실습 주제로 다뤄서 끝까지 흥미를 잃지 않고 학습할 수 있다.
코틀린 문법의 핵심을 친절하게 설명했으며 앱의 첫 화면 설계부터 이벤트 처리, 알림, 데이터베이스, 위치 정보 활용, 네트워킹, 파이어베이스 연동 등 자주 쓰는 기능을 직접 만들어 본다. 이로써 독자는 안드로이드 앱의 구조와 개발 방법을 자연스럽게 익힐 수 있다. 그 뿐만 아니라 최신 트렌드에 맞춰 제트팩 androidx 라이브러리의 다양한 API도 소개하며, 안드로이드 버전에 따라 호환성을 고려한 개발도 자세하게 다룬다. 또한 이론과 실습을 분리해 놓아 강의 교재로도 손색이 없다.
==========
이 책의 특징
==========
- 안드로이드 12, 안드로이드 스튜디오 북극여우 최신판을 기준으로 내용 및 소스를 업데이트했습니다.
- 전체 실습 과정을 저자와 함께 진행하는 동영상 강의를 제공합니다. (출간 후 순차적으로 업데이트)
- 소스 코드에서 중요한 내용은 형광펜으로 강조하고 말풍선으로 안내말을 넣어 분석하는 데 도움을 줍니다.
- 제트팩의 androidx 라이브러리를 활용한 최신 개발 기법을 제시하며 소스 코드는 코딩 컨벤션을 지켜 작성했습니다.
- <깡샘! 질문 있어요> 코너에서는 수강생들과 주고받았던 다양한 유형의 질의응답을 소개합니다.
- 이론과 실습을 분리해서 원하는 부분에 집중할 수 있도록 했습니다. 학습 효과를 높이고 레퍼런스용으로도 좋습니다.
- 30일 완성 학습 계획표를 제공해 강의 계획서를 만들거나 독학자가 학습 계획을 세우고 성취도를 확인하는 데에 도움을 줍니다.
- 전문 안드로이드 앱 개발자를 포함해 베타테스터 4명이서 전체 실습 과정과 소스를 최신 버전의 개발 도구로 검증했습니다.
▶ 모바일 개발자의 구인 공고가 바뀌고 있다 - 코틀린으로 안드로이드 앱 개발하기!
안드로이드 앱을 개발할 때 코틀린 언어를 사용하면 자주 쓰는 코드를 줄이고 더 안전한 코드를 작성할 수 있습니다. 코틀린을 사용해서 개발한 안드로이드 앱은 다운될 확률이 20% 더 낮습니다. 또한 코틀린은 자바와 100% 호환되므로 자바 기반 코드를 함께 사용할 수도 있습니다. 이 때문에 안드로이드 앱 개발자들은 이왕이면 코틀린으로 시작하라고 권하고 기업에서도 코틀린 사용자를 선호합니다. 자바든, C 언어든 기초 프로그래밍을 한 번이라도 해본 입문자라면 이 책을 충분히 독학할 수 있으며, 기존의 자바 기반 개발자라면 더 빠르게 코틀린 기반 안드로이드 앱을 개발할 수 있습니다.
▶ 유명한 앱에서 자주 보던 기능을 만들면서 실무 감각을 익히자!
책을 펼치면 각 장마다 해당 주제를 왜 배워야 하는지, 어느 때에 사용하는지, 배경 지식과 핵심 코드, 자주 쓰는 기법부터 살펴봅니다. 그리고 배운 내용을 바탕으로 유명한 앱에서 자주 보던 기능을 만들면서 실무 감각을 익힐 수 있습니다. 기능 설명을 위한 가벼운 실습부터 할 일 기록, 지도, MP3 재생, 뉴스 제공 등 총 18가지 앱을 만들어 보면서 가장 많이 사용하는 기능을 자연스럽게 배울 수 있습니다.
▶수천 명의 안드로이드 개발자를 양성한 ‘깡샘’의 명성 그대로!
안드로이드 분야에서 ‘깡샘’으로 더 유명한 저자는 다양한 교육 기관과 기업체에서 모바일 앱 개발을 강의해 왔습니다. 오랜 기간 쌓아 온 노하우를 바탕으로 실무와 교육 현장에서 여러 개발자, 선생님께 검증받은 커리큘럼을 바탕으로 모바일 앱 개발자를 희망하는 수천 명의 수강생과 나눴던 땀과 열정의 하모니를 이 책에 담았습니다.
▶ 독학도 가능하지만 직업전문학원, 대학 교재로도 최적의 구성!
교강사 분들을 위해 강의하는 부분과 학생이 실습할 부분으로 나누어서 교재로 사용하는 데에도 적합합니다. 코드 작성 시간을 줄이고 핵심 내용에만 집중할 수 있도록 앱의 기본 코드가 미리 작성된 실습용 소스를 제공하며, 독자는 이를 바탕으로 핵심 코드만 직접 작성하면서 실습을 진행합니다. 물론 소스가 제대로 동작하지 않을 때 비교할 수 있도록 완성된 소스도 별도로 제공합니다. 각 장마다 배운 내용을 정리할 수 있는 간단한 퀴즈도 풀어 보면서 실력을 쌓아 보세요.
▶ 모바일 앱 개발의 아키텍처를 이해하고 응용력을 기르자!
이 책의 목표는 모바일 앱 개발의 실무 역량을 기르는 것입니다. 그래서 단순히 문법이나 조각식 코드만 나열하는 것으로 그치지 않고 모바일 앱 개발의 아키텍처 이해와 응용력을 기를 수 있도록 구성했습니다. 안드로이드 앱의 핵심이라고 할 수 있는 4가지 컴포넌트와 각 생명주기를 그림과 함께 자세하게 설명하고 익숙한 앱에서 사례를 들어 좀 더 쉽게 이해할 수 있도록 했습니다. 또한 모바일 앱 개발 현장에서 자주 부딪히는 문제와 해결법을 제시함으로써 오류를 미연에 방지하고 완성도 높은 코드를 작성할 수 있도록 돕습니다.
▶ 보기 편한 책! 그림을 곁들인 해설로 안드로이드의 핵심을 꿰뚫다!
책 전체를 4도 컬러판으로 제작해 안드로이드 스튜디오의 소스 스타일과 색상 등을 그대로 적용했습니다. 따라서 책에서도 컴퓨터의 실습 화면과 똑같은 사용자 경험을 제공합니다. 또한 중간중간에 핵심 동작 원리 등을 그림으로 표현해 더욱 쉽게 이해할 수 있도록 했습니다. 이 책을 미리 체험한 베타테스터들도 개념 파악을 위한 그림과 코딩 스타일 규약을 잘 지켜 표시한 소스를 큰 장점으로 꼽았습니다.
==============
이 책의 대상 독자
==============
이 책은 객체지향 프로그래밍의 기초 지식만 있으면 내용과 코드를 이해하는 데 어려움이 없도록 구성했습니다. 코틀린 언어를 처음 배운다면 둘째마당에서 소개하는 핵심 문법을 살펴보세요. 그리고 안드로이드 앱을 처음 개발한다면 이론은 가볍게 읽고 실습 코드를 직접 작성해 보면서 코드에 익숙해지는 것이 중요합니다. 그런 다음에 이론 부분을 한 번 더 보면 내용을 이해하는 데 도움이 됩니다.
- 모바일 앱 개발자를 희망하는 학생 또는 취업 준비생(객체지향 언어를 한번쯤 공부해 본 사람)
- 안드로이드 앱 개발을 처음부터 체계적으로 다시 배우려는 모바일 앱 개발자
- 코틀린 언어로 모바일 앱을 어떻게 개발하는지 알고 싶은 사람
- 구글의 제트팩 라이브러리 등 최신 구현 기법을 공부하고 싶은 사람
==============
이 책의 실습 환경
==============
이 책의 소스는 다음 환경에서 정상으로 테스트했습니다. 혹시 안드로이드 API 버전이 업데이트되면 저자가 운영하는 블로그(kkangsnote.tistory.com)에서 최신 소식을 확인할 수 있습니다.
- 안드로이드 API 레벨: 31(버전 코드: S, 플랫폼 버전: 12)
- 안드로이드 스튜디오: 북극여우(2020.3.1 Patch 4)
=====================
이지스퍼블리싱 독자 지원
=====================
※ 저자 직강 무료 동영상 강의: bit.ly/32IdLNQ
※ 실습용 소스 파일: 이지스퍼블리싱 홈페이지(easyspub.co.kr) → 자료실에서 책 이름으로 검색
※ 완성된 소스 파일: 저자 블로그(kkangsnote.tistory.com)
※ 책을 읽다가 궁금한 내용은 저자 블로그에서 질문해 보세요.
※ ‘Do it! 스터디룸(cafe.naver.com/doitstudyroom)’에서 운영하는 [Do it! 공부단]에 참여해 보세요. 이 책으로 공부하며 나만의 스터디 노트를 작성하면 이지스퍼블리싱에서 출간한 다른 책을 선물로 받을 수 있습니다.
※ 이지스퍼블리싱 홈페이지에 회원가입을 하면 매달 정기 소식지를 통해 신간과 이벤트 소식을 확인할 수 있습니다. 매달 전자책 한 권을 공개하는 이벤트도 진행해요.
작가 소개
강성윤
IT 전문 강사이자 개발자인 저자는 멀티캠퍼스에서 소프트웨어 분야를 가르치고 있으며
삼성전자, KT, 쿠팡, 농심데이터시스템 등 여러 기업에서 강의를 해왔다.
'코더에서 개발자로 성장시킨다'는 철학을 가지고 체계적인 설명과 실전 실습을 병행하는 강의를 하며 개발과 컨설팅도 하고 있다.
또한 SSAMZ.com에 유/무료 인강을 개설하여 많은 분이 쉽게 강의를 접할 수 있도록 노력하고 있다.
목 차
=============================
첫째마당 | 안드로이드 앱 개발 준비하기
=============================
01 개발 환경 준비하기
__01-1 안드로이드 스튜디오 설치하기
__01-2 첫 번째 앱 만들기
__01-3 앱 실행하기
__01-4 앱 출시하기 [Do it!]
02 안드로이드 앱의 기본 구조
__02-1 안드로이드 소개
__02-2 안드로이드 앱 개발의 특징
__02-3 앱 구성 파일 분석
=============================
둘째마당 | 코틀린 이해하기
=============================
03 코틀린 시작하기
__03-1 코틀린 언어 소개
__03-2 변수와 함수
__03-3 조건문과 반복문
04 코틀린 객체지향 프로그래밍
__04-1 클래스와 생성자
__04-2 클래스를 재사용하는 상속
__04-3 코틀린의 클래스 종류
05 코틀린의 유용한 기법
__05-1 람다 함수와 고차 함수
__05-2 널 안전성
=============================
셋째마당 | 앱의 기본 기능 구현하기
=============================
06 뷰를 이용한 화면 구성
__06-1 화면을 구성하는 방법
__06-2 뷰 클래스
__06-3 기본적인 뷰 살펴보기
__06-4 뷰 바인딩
__06-5 카카오톡 비밀번호 확인 화면 만들기 [Do it!]
07 뷰를 배치하는 레이아웃
__07-1 선형으로 배치 ― LinearLayout
__07-2 상대 위치로 배치 ― RelativeLayout
__07-3 겹쳐서 배치 ― FrameLayout
__07-4 표 형태로 배치 ― GridLayout
__07-5 계층 구조로 배치 ― ConstraintLayout
__07-6 전화 앱의 키패드 화면 만들기 [Do it!]
08 사용자 이벤트 처리하기
__08-1 터치와 키 이벤트
__08-2 뷰 이벤트
__08-3 시계 앱의 스톱워치 기능 만들기 [Do it!]
09 리소스 활용하기
__09-1 리소스의 종류와 특징
__09-2 리소스 조건 설정
__09-3 폰 크기의 호환성
__09-4 메신저 앱의 인트로 화면 만들기 [Do it!]
10 다이얼로그와 알림 이용하기
__10-1 API 레벨 호환성 고려하기
__10-2 퍼미션 설정하기
__10-3 다양한 다이얼로그
__10-4 소리와 진동 알림
__10-5 알림 띄우기
__10-6 카카오톡 알림 만들기 [Do it!]
=============================
넷째마당 | 구글의 라이브러리로 화면 구성하기
=============================
11 제트팩 라이브러리
__11-1 제트팩과 androidx 소개
__11-2 appcompat 라이브러리 ― API 호환성 해결
__11-3 프래그먼트 ― 액티비티처럼 동작하는 뷰
__11-4 리사이클러 뷰 ― 목록 화면 구성
__11-5 뷰 페이저2 ― 스와이프로 넘기는 화면 구성
__11-6 드로어 레이아웃 ― 옆에서 열리는 화면 구성
__11-7 제트팩을 이용해 화면 만들기 [Do it!]
12 머티리얼 라이브러리
__12-1 앱바 사용하기
__12-2 탭 레이아웃 ― 탭 버튼 구성
__12-3 내비게이션 뷰 ― 드로어 화면 구성
__12-4 확장된 플로팅 액션 버튼
__12-5 머티리얼 라이브러리로 화면 구성하기 [Do it!]
=============================
다섯째마당 | 컴포넌트 이해하기
=============================
13 액티비티 컴포넌트
__13-1 인텐트 이해하기
__13-2 액티비티 생명주기
__13-3 액티비티 제어
__13-4 태스크 관리
__13-5 액티비티 ANR 문제와 코루틴
__13-6 할 일 목록 앱 만들기 [Do it!]
14 브로드캐스트 리시버 컴포넌트
__14-1 브로드캐스트 리시버 이해하기
__14-2 시스템 상태 파악하기
__14-3 배터리 정보 앱 만들기 [Do it!]
15 서비스 컴포넌트
__15-1 서비스 이해하기
__15-2 바인딩 서비스
__15-3 백그라운드 제약
__15-4 잡 스케줄러
__15-5 MP3 재생 앱 만들기 [Do it!]
16 콘텐츠 프로바이더 컴포넌트
__16-1 콘텐츠 프로바이더 이해하기
__16-2 안드로이드 기본 앱과 연동하기
__16-3 카메라, 갤러리 앱과 연동하는 앱 만들기 [Do it!]
=============================
여섯째마당 | 앱에 다양한 기능 추가하기
=============================
17 저장소에 데이터 보관하기
__17-1 데이터베이스에 보관하기
__17-2 파일에 보관하기
__17-3 공유된 프리퍼런스에 보관하기
__17-4 개선된 할 일 목록 앱 만들기 [Do it!]
18 네트워크 프로그래밍
__18-1 스마트폰 정보 구하기
__18-2 HTTP 통신하기
__18-3 이미지 처리하기 ― Glide 라이브러리
__18-4 뉴스 앱 만들기 [Do it!]
19 위치 정보 활용하기
__19-1 사용자 위치 얻기
__19-2 구글 지도 활용하기
__19-3 구글 지도 앱 만들기 [Do it!]
=============================
일곱째마당 | 파이어베이스와 연동하기
=============================
20 파이어베이스 연동과 인증 기능
__20-1 파이어베이스 이해하기
__20-2 파이어베이스 연동하기
__20-3 인증 기능 이용하기
__20-4 회원가입과 로그인 기능 만들기 [Do it!]
21 파이어스토어, 스토리지, FCM
__21-1 클라우드 파이어스토어
__21-2 파이어베이스 스토리지
__21-3 이미지 공유 앱 만들기 [Do it!]
__21-4 파이어베이스 클라우드 메시징
__21-5 서버에서 보내는 알림 받기 [Do it!]
찾아보기
역자 소개
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |