1 부 1장 _ 안드로이드앱개발준비하기 2장 _ 첫번째앱만들기 3장 _ 뷰와뷰그룹 4장 _ 자주사용하는뷰, 유용한뷰 5장 _ 레이아웃 : 화면에뷰를수놓는방법 6장 _ 안드로이드는액티비티로부터 7장 _ 인텐트와인텐트필터 8장 _ 메뉴구현하기 9장 _ 웹뷰 : 웹페이지표시하기 10장 _ 화면제약을극복하는방법 책 3.indb 20 2018-03-19 오후 2:02:30
될때까지안드로이드 1 부 _ 천리길도한걸음부터 2 부 _ 인내는쓰고열매는달다 3 부 _ 공든탑이무너지랴? 4 부 _ 구슬이서말이어도꿰어야보배 " 천리길 " 은약 400km로서서울에서부산까지의거리와비슷합니다. 꽤먼거리이지요. 안드로이드프로그래밍을배우는과정도어쩌면멀고도험한길일수있습니다. 그러나어떤길을가더라도처음한걸음을시작하는것이중요합니다. 1부에서는개발환경을갖추고첫번째앱을만드는것부터앱을구성하는요소들에관해차례로살펴봅니다. 중간중간실습을따라해보면서즐겁고설레는마음으로첫걸음을떼보시길바랍니다. 독자여러분을진심으로응원합니다. 책 3.indb 21 2018-03-19 오후 2:02:30
01 장 안드로이드앱개발준비하기 이번장에서는본격적으로안드로이드개발을공부하기전에안드로이드가사용자관점에서어떻게변화했는지를가볍게다룹니다. 또한, 안드로이드앱을개발하는환경도구축해보겠습니다. 책 3.indb 22 2018-03-19 오후 2:02:30
01 장 _ 안드로이드앱개발준비하기 23 1.1. 안드로이드버전별특징 안드로이드는지속적으로발전해오면서사용자경험에변화가있었습니다. 사용자경험에변화가있다는것은개발방법에도변화가있다는의미이므로앱개발에앞서버전별특징을간략하게짚고넘어가겠습니다. 다양한모바일기술이어떻게발전해왔는지알아보죠. Android 1.6 : 도넛 (Donut) 퀵검색박스 도넛에서는퀵검색박스가추가되었습니다. 이로인해손가락하나로모든것을검색할수있게되었습니다. 웹브라우저의정보와스마트폰내의콘텐츠를모두검색할수있습니다. 퀵검색박스 화면크기의다양화 320x480 이외의해상도가가능해짐으로써다양한크기의기기가등장하는계기가되었습니다. 안드로이드마켓 구글 Play의전신인 2008년에탄생한안드로이드마켓입니다. 인기무료앱과유료앱을전면에노출하고서드파티 (third party) 의다양한앱이늘어나기시작했습니다. 책 3.indb 23 2018-03-19 오후 2:02:30
24 1 부 _ 천리길도한걸음부터 Android 2.1 : 에클레어 (Eclair) 에클레어에서는고해상도화면에대응하고, 사용자의터치에반응하는아름다운월페이퍼 (wallpaper) 가탄생하였습니다. 한국사람중누군가가그당시 1달러짜리월페이퍼로대박이나서뉴스에나왔던적도있습니다. 구글맵에내비게이션기능이추가된것도이때부터입니다. 구글지도의내비게이션기능스마트폰을이용한내비게이션 (navigation) 기능이등장하여사람들은깜짝놀랐습니다. 3D 뷰, 음성안내, 실시간교통정보등, 당시자동차의고가내비게이션을대체하는기술이구글지도에추가되었고, 게다가무료로이용할수있었습니다. 하지만안타깝게도우리나라에서는국내법상전자지도데이터를국외로반출할수없고, 서버를국내에두지않는구글의정책등의이유로구글지도의내비게이션기능을이용할수없습니다. 내비게이션기능 홈화면의개인화 (customize) 착신음이나배경화면을자유롭게꾸밀수있고앱이나위젯 (widget) 을자유롭게배치할수있게되었습니다. 폴더기능으로앱을그룹화할수있게되었고, 라이브월페이퍼와 854x480 화면에도대응하게되었습니다. 위젯 음성입력 소프트키보드에마이크아이콘이추가되어음성을글자로입력할수있게되었습니다. 음성입력 책 3.indb 24 2018-03-19 오후 2:02:30
01 장 _ 안드로이드앱개발준비하기 25 Android 2.2 : 프로요 (Froyo) 프로요에서는처리속도가대폭향상되었고, 음성으로명령할수있는음성조작과테더링기능이추가되었습니다. 음성조작 프로요에도입된음성조작으로안드로이드의음성기능이향상되었습니다. 웹검색, 길찾기, 메모, 알람설정등, 다양한조작을음성으로할수있게되었습니다. 테더링 (tethering) 테더링기능이도입되어이동중에스마트폰을와이파이 (Wi-Fi) 액세스포인트로변경할수있게되었습니다. 퍼포먼스 (performance) Dalvik JIT 컴파일러가도입되어, CPU 사용률이높은코드의성능을최대 5배개선하였습니다. 안드로이드브라우저에는 V8 JavaScript 엔진을채용하여, 자바스크립트의성능이 2~3배향상되었습니다. Android 2.3 : 진저브레드 (Gingerbread) 진저브레드덕분에사용자뿐만아니라개발자에게도더욱쓸만한안드로이드기기가되었습니다. 개발할수있는게임의질을높일수있게되었으며, 배터리효율이높아지고, NFC의도입으로새로운앱을개발할수있게되었습니다. 게임 API(Application Programming Interface) 진저브레드는안드로이드게임을다시보게만들어주었습니다. 오디오, 단말기컨트롤, 그래픽, 스토리 지등에저수준으로접근할수있게되었고 3D 게임을개발할수있게되었습니다. 근거리무선통신, NFC(Near Field Communication) NFC를도입하여단말기간에가까이가져다대기만해도정보를주고받을수있게되었습니다. 이로써기기를간단히탭하기만해도결제가되는등서비스의폭이넓어졌다고할수있습니다. 전원관리 단말의전원관리성능이향상되어기존의안드로이드전원이하루를못넘긴다는편견은깨졌습니다. 책 3.indb 25 2018-03-19 오후 2:02:30
26 1 부 _ 천리길도한걸음부터 Android 3.0 : 허니콤 (Honeycomb) 허니콤은태블릿시대의개막과함께등장하였습니다. 화면디자인이세련되게바뀌었고, 큰화면과작은화면의적절한조화가가능해졌습니다. 태블릿을고려한디자인 허니콤은태블릿 (tablet) 화면을최대한활용할수있도록하였습니다. 큰화면덕분에전자책이나동영상시청이쾌적해졌습니다. 시스템바 물리적인버튼이사라졌습니다. 물론일부기기에는아직도있지만요. 허니콤에서는새로운시스템바 (bar) 가도입되어하단에 " 홈 ", " 뒤로가기 ", " 메뉴 " 등을조작하는소프트웨어버튼이등장하였습니다. 빠른설정 빠른설정이추가되어날짜나시간, 전원등단말의중요정보를확인할수있게되었습니다. Android 4.0 : 아이스크림샌드위치 (Ice Cream Sandwich) 아이스크림샌드위치에서는개인화와사용감이대폭향상되었습니다. 홈화면을개인화하거나데이터사용량을설정할수있게되었고, 콘텐츠를다른사용자와간단하게공유할수있게되었습니다. 커스텀홈화면앱폴더와자주사용하는앱트레이 (tray) 가추가되었습니다. 위젯의기능도대폭추가되어, 위젯의크기를조절할수있게됨으로써사용자가화면을자유롭게조작할수있게되었습니다. 커스텀홈화면 책 3.indb 26 2018-03-19 오후 2:02:31
01 장 _ 안드로이드앱개발준비하기 27 데이터사용량관리데이터사용량을관리할수있게되어통신비용을조절할수있게되었습니다. 사용량을파악하는것뿐만아니라, 사용량경고설정이나상한을정해두고상한에도달하면데이터통신을끄는것도가능해졌습니다. 안드로이드빔 (beam) 두개의안드로이드기기를가까이하는것만으로앱, 연락처, 음악, 동영상등을 NFC로간단하게공유할수있게되었습니다. 블루투스처럼휴대폰을페어링 (pairing) 하거나특정앱이나메뉴를실행할필요가없습니다. 데이터사용량관리 Android 4.1 : 젤리빈 (Jelly Bean) 구글나우 (Google Now) 의등장으로개인비서시대가시작되었습니다. 알림바에서다양한기능을조작할수있게되었고, 복수사용자계정을등록할수있게되었습니다. 구글나우구글나우가있으면적절한타이밍에원하는정보가손에들어옵니다. 집을나갈때열차시간표를표시해주거나날씨를알려주는등의개인비서기능이추가되었습니다. 물론해외에서잘동작하지만, 국내에서는사용에제약이많습니다. 조작가능한알림바 젤리빈부터알림바를열어음악을재생하거나중지하는등직접조작할수있게되었습니다. 복수사용자계정단말기에복수의사용자계정을추가할수있게되었습니다. 배경화면, 위젯, 앱등의설정을계정별로따로관리할수있습니다. 복수사용자계정은태블릿에대응한기능이었는데이때부터핸드폰에도적용되었습니다. 책 3.indb 27 2018-03-19 오후 2:02:31
28 1 부 _ 천리길도한걸음부터 Android 4.4 : 킷캣 (Kitkat) 여러가지명령을음성으로할수있게되었습니다. " 오케이구글 " 이라고말하면음성검색, 문자전송, 길찾기 ( 해외만 ), 음악재생이가능해졌습니다. 음성조작 " 오케이구글 " 화면을건드리지않고 " 오케이구글 (OK Google)" 이라고말하기만하면음성검색, 문자전송, 길찾 기, 음악재생을할수있습니다. 전체화면 책을읽거나게임을할때전체화면이가능해서콘텐츠에집중할수있게되었습니다. 스마트한통화앱 전화앱에서주변가게를검색하거나모르는번호로전화가오면자동으로구글지도의비즈니스정보를검색하여표시해줍니다. Android 5.0 : 롤리팝 (Lollipop) 스마트폰이나태블릿, 시계, TV, 자동차등어디에서나어울리는디자인, 머티리얼 (material) 디자인을도입하여더욱세련된인터페이스를실현하였습니다. 머티리얼디자인 안드로이드의디자인이대폭변경되어, 단말기를더욱쉽게조작할수있게되었습니다. 멀티환경사용자경험스마트폰, 태블릿, 웨어러블 (wearable), TV 등안드로이드기기간에사용자경험을자연스럽게이동할수있습니다. 음악, 앱, 사진, 검색등을중단하여도다른기기에서이이서사용할수있게되었습니다. 머티리얼디자인 책 3.indb 28 2018-03-19 오후 2:02:31
01 장 _ 안드로이드앱개발준비하기 29 알림 잠금화면에알림이카드형태로표시됨으로써내용을한눈에확인할수있고, 잠금화면에서그대로답장할수도있습니다. 잠금화면에서알림 Android 6.0 : 마시멜로 (Marshmallow) 마시멜로에서는사용성이더욱좋아졌습니다. 현재화면에서필요한정보를제공하는 ' 나우온탭 (Now on Tap)', 배터리를효율적으로사용하여오랫동안사용할수있도록향상된전원관리기능, 사용자가선택할수있는앱의권한등신기능이여럿추가되었습니다. 나우온탭 (Now on Tap) 언제든지홈버튼을오래누르고있으면현재화면에서필요한정보를얻을수있습니다. 앱권한앱에서언제어떤정보때문에권한이필요한지확인할수있고, 사용자가앱별로권한을관리할수있게되었습니다. 물론언제든지권한을취소할수도있습니다. 이에따라개발자가해야할일은좀더늘었습니다. 전원관리 도즈 (Doze, 잠자기 ) 모드와스탠바이 (standby) 기능덕분에배터리를효율적으로사용하여, 기기를좀더오래사용할수있게되었습니다. 전력소비가최적화되었습니다. 권한설정 책 3.indb 29 2018-03-19 오후 2:02:31