깡샘의 안드로이드 프로그래밍 (86개 실습 예제와 해설 동영상 강의 수록 | Android 9.0(Pie)/제트팩의 AAC 수록)

깡샘의 안드로이드 프로그래밍 (86개 실습 예제와 해설 동영상 강의 수록 | Android 9.0(Pie)/제트팩의 AAC 수록)

$50.85
Description
안드로이드 새내기도 앱을 만들 수 있는 체계적 구성!
이 책은 각 챕터마다 안드로이드 프로그램과 각 기능이 어떠한 구조로 어떻게 작동하는지 그 원리를 파악하는 데 주력합니다. 그리고 이를 구현하는 핵심 코드를 알아본 다음, 이를 종합하여 실제 상용 앱에서 많이 사용하는 기능을 직접 개발해보는 실습을 진행합니다. 그리고 각 파트별로 도전 과제를 통해 학습자 스스로 주어진 조건에 맞는 앱을 만들어봄으로써 앞에서 배운 이론과 실습을 복기하고 문제 해결 능력을 기를 수 있게 구성하였습니다. 한 마디로 체계적이고 따라 하기 쉽습니다.
저자

강성윤

IT전문강사인저자는멀티캠퍼스에서소프트웨어분야를강의하고있으며,2010년부터안드로이드앱개발을강의하고있다.또한,모바일/IoT전문업체인MotizenSoft에서모바일팀을이끌고있다.

목차

Part1안드로이드시작하기
01_개발환경을구축하자!
1.1.안드로이드스튜디오개발환경구축
1.1.1.안드로이드스튜디오설치
1.1.2.안드로이드스튜디오설정
1.2.첫번째앱만들고실행하기
1.2.1.프로젝트생성
1.2.2.AVD매니저
1.2.3.AVD에서실행
1.2.4.스마트폰에서실행
1.2.5.개발편의를위한설정
1.3.앱배포
1.3.1.APK파일을이용한배포
1.3.2.ABB파일을이용한배포
1.3.3.구글Play스토어에앱배포

02_안드로이드프로젝트이해
2.1.안드로이드앱개발특징
2.1.1.안드로이드의특징
2.1.2.안드로이드플랫폼아키텍처
2.1.3.컴포넌트기반개발
2.1.4.리소스를이용한개발
2.2.개발디렉터리와파일구조
2.2.1.앱의디렉터리와파일
2.2.2.R.java의이해
2.3.그레이들(gradle)파일
2.3.1.settings.gradle
2.3.2.프로젝트수준의그레이들
2.3.3.모듈수준의그레이들
2.4.HelloWorld앱코드분석
2.4.1.AndroidManifest.xml
2.4.2.MainActivity.java
2.4.3.activity_main.xml
2.5.안드로이드버전

Part2기본앱을만들어보자
03_사용자인터페이스
3.1.UI의기본구조
3.1.1.액티비티-뷰구조
3.1.2.UI프로그램작성방법:자바코드VS레이아웃XML
3.1.3.뷰의기초속성
3.2.뷰아키텍처
3.2.1.뷰의계층구조
3.2.2.뷰계층구조구현
3.3.기초뷰활용
3.3.1.TextView
3.3.2.ImageView
3.3.3.EditText
3.3.4.Button
3.3.5.Checkbox,RadioButton

04_레이아웃을활용한다양한뷰배치
4.1.LinearLayout
4.1.1.LinearLayout소개
4.1.2.레이아웃중첩
4.1.3.LinearLayout속성
4.2.RelativeLayout
4.2.1.RelativeLayout소개
4.2.2.align속성
4.2.3.alignParentXXX속성
4.3.FrameLayout
4.3.1.FrameLayout소개
4.3.2.탭화면구현:TabHost
4.4.TableLayout
4.5.GridLayout
4.5.1.GridLayout소개
4.5.2.GridLayout속성
4.6.ConstraintLayout
4.6.1.상대적위치지정
4.6.2.여백(margin)173
4.6.3.가운데맞춤과치우침(bias)
4.6.4.비율(Ratio)

05_다양한사용자알림효과
5.1.진동과소리
5.1.1.진동울리기
5.1.2.소리울리기
5.2.다이얼로그
5.2.1.토스트(Toast)
5.2.2.알림창(AlertDialog)
5.2.3.목록(AlertDialog)
5.2.4.날짜선택(DatePickerDialog)
5.2.5.시간선택(TimePickerDialog)
5.2.6.커스텀다이얼로그(AlertDialog)

06_사용자이벤트처리
6.1.델리게이션이벤트모델
6.1.1.이벤트프로그램구조
6.1.2.다양한이벤트처리
6.2.하이어라키이벤트모델
6.2.1.터치이벤트
6.2.2.키이벤트

07_리소스활용및스마트폰크기호환성
7.1.안드로이드리소스
7.1.1.리소스종류
7.1.2.다양한리소스활용
7.2.스마트폰크기호환성
7.2.1.리소스폴더명조건명시법
7.2.2.DisplayMetrics
7.2.3.논리적단위로스마트폰크기호환성확보
도전과제
Mission1:페이스북의메신저인트로화면구성
Mission2:브런치앱의새글작성화면및앱종료다이얼로그띄우기
Mission3:주소록앱의새연락처화면구성

Part3앱의데이터를영속화하자
08_DBMS을이용한데이터영속화
8.1.SQLite을이용한영속화
8.1.1.SQLiteDatabase클래스
8.1.2.SQLiteOpenHelper클래스
8.1.3.insert(),query(),update(),delete()함수이용
8.2.Realm을이용한데이터영속화
8.2.1.Realm소개
8.2.2.Realm사용설정
8.2.3.Realm사용

09_파일및SharedPreferences을이용한데이터영속화
9.1.퍼미션
9.1.1.퍼미션이란?
9.1.2.안드로이드6.0(APILevel23)변경사항
9.2.파일에읽고쓰기
9.2.1.외부저장공간이용
9.2.2.내부저장공간이용
9.3.SharedPreferences
도전과제
Mission1:주소록앱의새로운연락처등록화면기능구현

Part4다양한화면을구성하자
10_AdapterView활용
10.1.Adapter와AdapterView
10.1.1.AdapterView의구조
10.1.2.라이브러리의Adapter
10.2.커스텀Adapter
10.2.1.커스텀Adapter가필요한예
10.2.2.커스텀Adapter작성방법
10.2.3.커스텀Adapter추가고려사항

11_다양한뷰활용
11.1.Spannable
11.1.1.Spannable의필요성
11.1.2.Spannable적용
11.1.3.fromHtml()함수로적용
11.2.WebView
11.2.1.WebView활용
11.2.2.자바스크립트와자바연동
11.2.3.이벤트처리
11.3.기타유용한뷰
11.3.1.콤보박스:Spinner
11.3.2.텍스트자동완성:AutoCompleteTextView
11.3.3.프로그레스바:ProgressBar
11.3.4.값을입력받는프로그레스바:SeekBar

12_ActionBar와메뉴
12.1.ActionBar
12.1.1.ActionBar구성
12.1.2.표시옵션
12.2.안드로이드APILevel과하위호환성
12.3.메뉴
12.3.1.메뉴작성방법
12.3.2.MenuInflater활용
12.3.3.메뉴다양하게이용하기

13_커스텀뷰개발
13.1.커스텀뷰작성방법
13.2.그래픽프로그램
13.2.1.뷰를그리는방법
13.2.2.Paint클래스
13.2.3.코드에서논리적크기획득
도전과제
Mission1:전화앱의로그화면구현
Mission2:피트니스앱의활동로그도넛작성
Mission3:검색추천단어화면구성

Part5액티비티를제대로이해하고개발하자
14_인텐트와구글기본앱연동
14.1.인텐트
14.1.1.인텐트의기본개념
14.1.2.명시적인텐트,암시적인텐트
14.1.3.인텐트필터(IntentFilter)
14.1.4.Extra데이터
14.1.5.결과되돌리기
14.2.구글기본앱연동
14.2.1.주소록앱
14.2.2.카메라앱
14.2.3.갤러리앱
14.2.4.음성인식앱
14.2.5.기타앱연동

15_액티비티생명주기및다양한제어
15.1.액티비티생명주기
15.1.1.생명주기
15.1.2.액티비티상태저장
15.2.태스크관리
15.2.1.시스템의태스크관리
15.2.2.태스크제어방법1:launchMode속성설정
15.2.3.태스크제어방법2:Intent플래그이용
15.3.액티비티를위한다양한설정
15.3.1.키보드제어
15.3.2.다중창지원
15.3.3.PictureInPicture
15.3.4.기타설정

16_스레드와핸들러
16.1.ANR과스레드-핸들러
16.1.1.액티비티ANR
16.1.2.ANR문제해결방법
16.1.3.핸들러
16.2.AsyncTask와Looper
16.2.1.AsyncTask
16.2.2.Looper
도전과제
Mission1:카메라앱연동
Mission2:구글기본앱연동

Part6상용앱수준의화면을구상하자
17_Support라이브러리활용
17.1.Fragment
17.1.1.Fragment이해
17.1.2.Fragment작성법
17.1.3.Fragment생명주기
17.1.4.다양한Fragment
17.2.PreferenceFragmentCompat을이용한앱설정
17.2.1.
17.2.2.PreferenceFragmentCompat
17.3.ViewPager
17.4.RecyclerView
17.4.1.RecyclerView소개
17.4.2.Adapter,ViewHolder
17.4.3.LayoutManager
17.4.4.ItemDecoration

18_머티리얼디자인
18.1.NavigationDrawer,NavigationView
18.1.1.NavigationDrawer
18.1.2.NavigationView
18.2.Snackbar,FloatingActionButton,TabLayout
18.2.1.Snackbar
18.2.2.FloatingActionButton
18.2.3.TabLayout
18.3.Toolbar,AppBarLayout,CoordinationLayout
18.3.1.Toolbar
18.3.2.AppBarLayout
18.3.3.CoordinatorLayout
18.4.BottomSheet
18.4.1.persistentbottomsheet
18.4.2.modalbottomsheet
도전과제
Mission1:AppBar,CoordinatorLayout
Mis

출판사 서평

"이책은개념설명도잘돼있고구성도좋아서저처럼안드로이드를처음접하는사람에게좋은거같습니다.그런데저는이책의최대강점을실습으로꼽고싶습니다.실습에서는핸드폰에서자주사용하던앱에서줄기차게봐았던기능들을직접구현해보는데요.예를들어,카카오택시에서처럼지도를보여주고현재위치를중심으로지도를옮기거나내위치에마커를표시하는등의기능을구현해봅니다.놀라운건이런게무려86개나된다는사실이죠.@@

그런데한가지걱정이있습니다.아무리재밌는실습이많다고해도초보인제가쉽게따라할수있을까하는걱정이요.책에단계별로그림과함께잘나와있어서초반에는어려움이없었는데,중반부터는슬슬어렵더라고요.일단안드로이드스튜디오사용법도익숙하지않은데다,소스파일와리소스파일,라이브러리등이복잡하게얽혀있으니까요.

그때스쳤던게동영상강의QR코드였어요.그동안귀찮아서넘겼던동영상강의를틀어보았습니다.헐~대박!안드로이드스튜디오에서무엇을어떤순서로누르고,코딩하고,돌리고등등...95개실습전부를자세하게설명해주더라고요.코드를완벽하게이해하는건둘째치고,일단프로젝트를따라서실행해볼수있다는것에만족감이컸습니다.그리고중간중간왜그렇게해야하는지,초보자가실수하기쉬운부분,버전에따른변경사항등도해설해주는데,책으로배운내용을한번더복습하니까뇌에콕콕박히는거같았습니다(근데선생님목소리가쪼~금작아요볼륨을높여야해요).

솔직히저는한번정독해서읽었지만,아직이책에나오는모든개념과소스를다이해한건아니에요.그렇지만'컴포넌트'와'인텐트'두마리토끼는확실히잡은거같아서큰도움이됐습니다.앞으로한번더읽을생각이고또다른책들도봐야겠지만,이책이첫책이었다는게다행이다싶어요.처음에는빈화면에버튼몇개넣고핸드폰에서눌러만봐도마냥신기했는데,이제나만의멋진앱을만들어볼수있다는희망이생겼습니다.행운을빌어요.(?`?∀?)??"

우연히먼저보게된「몽테크리스토」님서평중

"안드로이드명품강의를책으로만날수있게되었다."
멀티캠퍼스전임교수「최호성」님추천사중

"드디어,배울때와써먹을때가다르지않은책이나왔다."
삼성SDS과장이자,제자인「엄태형」님추천사중

※실습공유파일및책예제
-http://kkangsnote.tistory.com/
-https://github.com/kkangseongyun/kkangs_android_2019