Data Loading...
IT CookBook, 코틀린을 활용한 안드로이드 프로그래밍 Flipbook PDF
IT CookBook, 코틀린을 활용한 안드로이드 프로그래밍 https://www.hanbit.co.kr/store/books/look.php?p_code=B3055805288
420 Views
174 Downloads
FLIP PDF 6.2MB
280
Kotlin 사용
코틀린을 활용한
안드로이드 프로그래밍 Android 10.0(Q) 지원, Android Studio 3.x 사용 사용
우재남, 유혜림 지음 연습문제 해답은 제공하지 않습니다.
Chapter 02 처음 만드는 안드로이드 애플리케이션 01 처음 만드는 Hello Android 프로그램 02 AVD의 명칭과 사용법 03 완전한 기능의 안드로이드 애플리케이션 작성 04 안드로이드 프로젝트의 구성 요약 연습문제
학습목표 ▶
안드로이드 애플리케이션의 기본적인 작성법을 익힌다.
▶
AVD의 명칭을 파악한다.
▶
안드로이드 프로젝트의 구성을 이해한다.
01
처음 만드는 Hello Android 프로그램
이제 본격적으로 안드로이드 애플리케이션을 작성할 차례이다. 기본적인 안드로이드 애플리케 이션을 작성하는 방법은 그리 어렵지 않다. 하지만 그럴듯한 애플리케이션을 만들려면 많은 학 습이 필요하다. 이 절에서는 간단한 안드로이드 애플리케이션을 작성해볼 것이다. 아직 안드로 이드 관련 문법을 몰라도 관계없다.
1 Hello Android 프로젝트 첫 번째로 만들어볼 안드로이드 애플리케이션은 [그림 2-1]과 같다. 여기서 학습할 안드로이드 프로젝트는 [그림 2-2]의 순서로 진행한다. ➊
안드로이드 프로젝트 생성
➋
화면 디자인 및 편집 (*.xml)
➌
Kotlin 코드 작성 및 수정 (*.kt)
➍
프로젝트 실행 및 결과 확인 (AVD)
정상 작동
No
Yes ➎ 안드로이드 애플리케이션 개발 완료 그림 2 -1 처음 만드는 안드로이드 애플리케이션
그림 2 -2 안드로이드 프로젝트 개발 단계
이번 애플리케이션은 아주 간단한 결과만을 출력하지만 아무리 복잡한 애플리케이션도 대부분
62
코틀린을 활용한 안드로이드 프로그래밍
이와 동일한 과정을 거친다. 단지 코드가 더 복잡할 뿐이다.
실습 2-1 첫 응용 프로그램 작성하기
처음으로 작성해보는 안드로이드 애플리케이션이다. 결과는 아주 간단하지만 대부분의 안드로 이드 애플리케이션이 이 과정의 순서대로 작성되니 잘 기억해두자. 1 안드로이드 프로젝트 생성 Android Studio를 실행한다. 초기 창 왼쪽에 기존에 사용했던 프로젝트의 목록이 나타난다. 필요 없다면 마우스 오른쪽 버튼
을 클릭하고 [Remove Selected from Welcome Screen]을 선택하여 제거한다.
그림 2 -3 기존 프로젝트 목록 제거
초기 창에서 [Start a new Android Studio project]를 클릭한다.
그림 2 -4 새로운 안드로이드 프로젝트
2장. 처음 만드는 안드로이드 애플리케이션
63
[Choose your project]에서는 생성할 프로젝트의 종류를 선택한다. [Phone and Tablet]
탭의 ‘ Empty Activity’를 선택하고 를 클릭한다.
그림 2 -5 프로젝트 선택
[Configure your project]에서는 프로젝트에 대한 정보를 입력하거나 선택한다. • Name: HelloAndroid → 프로젝트 이름이며 대문자로 시작하는 것이 좋다. • Package name: com.cookandroid.helloandroid → 도메인 이름(cookandroid.com)과 애플리케이션 이름 을 이어서 만든다.
도메인 이름은 자기 회사의 도메인 주소(쉽게 말해 웹 서버 주소)를 입력한다. 필자는 cookandroid.com이라는 가상의 회사 도메인을 사용했다.
• Save location: C:\CookAndroid\Project\HelloAndroid → 프로젝트가 저장될 폴더를 지정한다(한글 폴 더명은 불가). • Language: Kotlin → 사용할 프로그래밍 언어는 Kotlin이다. • Minimum API level: API 16: Android 4.1 (Jelly Bean) → 이 앱이 작동하는 최하 버전을 선택한다.
프로젝트에 대한 설정을 마쳤으면 를 클릭하여 프로젝트를 생성한다.
64
코틀린을 활용한 안드로이드 프로그래밍
그림 2 -6 프로젝트 설정
설정 중에는 생략되었으나 다음 2개 항목이 내부적으로 추가되어 있다. • Activity Name: MainActivity → 기본 소스인 Kotlin 파일 이름(MainActivity.kt)으로 지정된다. • Layout Name: activity_main → 기본 화면인 XML 파일 이름(activity_main.xml)으로 지정된다.
앞으로 이 책에서 모든 프로젝트의 기본 소스인 Kotlin 파일 이름은 MainActivity.kt를, 기본 화면인 XML 파일 이름은 activity_ main.xml을 사용할 것이니 기억해놓자.
[그림 2- 6]의 Minimum API level은 지금 작성하는 앱이 작동될 최하 버전을 지정하는 것이다. 이 책을 집필하는 시점에 API 16 (Android 4.1, 젤리빈) 이상의 안드로이드폰은 약 99.6%이다. 만약 최신 안드로이드폰에서만 작동하는 앱을 작성하고 싶다면 이 부분 을 더 높은 API로 선택하면 되지만, 현실적으로 이 앱이 작동하는 안드로이드폰의 수가 줄어들게 된다. 이 책의 앱 대부분은 젤리빈 이상 에서는 무난히 작동하도록 설정할 것이다. 안드로이드폰의 자세한 점유율은 ‘Help me choose’를 클릭하면 확인할 수 있다.
그림 2 -7 안드로이드 버전별 누적 점유율
2장. 처음 만드는 안드로이드 애플리케이션
65
잠시 기다리면 Android Studio의 왼쪽 Project Tree에 ‘ HelloAndroid’ 프로젝트가 추가
되어 있고 Kotlin 코드가 보일 것이다. 그리고 activity_main.xml 및 MainActivity.kt 파일 이 열려 있을 것이다. 프로젝트의 [res]-[layout]-[activity_main.xml]을 더블클릭하면 오 른쪽에 프로젝트의 화면이 보인다. 만약 스마트폰 화면이 안 보이면 아래쪽의 [Design] 탭을 클릭한다. (오른쪽에 [Attributes] 창이 펼쳐져 있으면 오른쪽 위의
버튼을 클릭하여 축소
한다.)
그림 2 -8 안드로이드 프로젝트 생성 결과
2 화면 디자인 및 편집 화면을 가상 AVD와 동일하게 설정해보자. 스마트폰 그림 위쪽의 ‘ Pixel’을 클릭하여 아랫부
분의 ‘AVD: QPixel_2_’를 선택한다. 앞에서 생성한 AVD와 디자인 화면을 동일하게 하는 것 이다. (이 부분은 생략해도 관계없다.)
66
코틀린을 활용한 안드로이드 프로그래밍
그림 2 -9 디자인 환경 설정
자동 생성되는 레이아웃은 ConstraintLayout이다. 우선은 RelativeLayout으로 변경하자.
아래쪽의 [Text] 탭을 클릭한 후 2행의 androidx.constraintlayout.widget.Constraint
Layout을 RelativeLayout으로 변경한다. (대·소문자를 정확히 입력해야 한다. 레이아웃과 관련된 내용은 5장에서 자세히 다룰 것이다.)
그림 2 -10 레이아웃 변경
다시 아래쪽의 [Design] 탭을 클릭한 후 [Enable Autoconnection to Parent] 아이콘을 클
릭하고 왼쪽의 위젯(Widget)* 중에서 몇 개를 오른쪽에 끌어다 놓는다. 오른쪽 위의 확대/축 소 아이콘으로 화면 크기를 조절할 수 있다.
위젯은 버튼, 체크박스, 라디오버튼, 텍스트뷰 등을 말한다. 4장에서 이에 대해 상세히 다룰 것이다.
2장. 처음 만드는 안드로이드 애플리케이션
67
그림 2 -11 그래픽 화면에서 위젯 끌어다 놓기
이번에는 왼쪽 아래의 [Text] 탭을 클릭한다. 화면에 XML 코드*가 표시될 것이다. 처음에는
복잡해 보일 수 있으나 같은 패턴을 반복하기 때문에 몇 번만 실습해보면 어렵지 않을 것이 다. (오른쪽의 [Preview] 탭을 클릭하면 미리보기가 나타나거나 사라진다.) 추가된 적당한 위 젯 코드를 하나 삭제해보자. 필자는 Button을 삭제했다.
삭제
68
그림 2 -12 XML 코드 변경
코틀린을 활용한 안드로이드 프로그래밍
XML(eXtensible Markup Language)은 구조적인 데이터를 작성하기 위한 다목적 마크업 언어로, 라이선스에 제약이 없고 플랫폼에 독립적이다. 안드로이드에서도 화면을 구성하기 위해 XML을 채용했다.
다시 [Design] 탭을 클릭하면 방금 삭제한 코드(버튼)가 화면에서도* 삭제된 것을 확인할 수
있다. Android Studio 왼쪽 상단의 저장 아이콘을 클릭하거나 메뉴의 [File]-[Save All]을 클릭하여 변경 사항을 저장하자.
화면을 수정할 때 [Design]에서 마우스로 작업을 하든 [Text]에서 코드를 수정하든 결과는 동일하다. 각자 편리한 방법을 사용하면 되지 만 코드로 편집하는 것이 더 일반적이다. 코드에 익숙해지면 그래픽으로 작업하는 것보다 더 편하다.
버튼이 없어짐
그림 2 -13 그래픽 화면 확인
3 Kotlin 코드 작성 및 수정 왼쪽 Project Tree에서 [ java]-[com.cookandroid.helloandroid]-[MainActivity]를
더블클릭하거나 위쪽 [MainActivity.kt] 탭을 클릭한다. 오른쪽 창에 Kotlin 코드가 나오는 데 앞으로 이 코드를 수정하면 된다. 아직 안드로이드와 관련된 Kotlin 문법을 배우지 않았 으니 그대로 둔다. 단, 가장 먼저 시작하는 메소드는 onCreate( )이고, setContentView(R.
layout.activity_main) 메소드는 바로 앞에서 확인한 activity_main.xml을 화면에 표시하 라는 의미임을 기억하자.
2장. 처음 만드는 안드로이드 애플리케이션
69
그림 2 -14 메인 Kotlin 코드 확인
4 프로젝트 실행 및 결과 확인 메뉴의 [Run]-[Run ‘app’]을 선택하거나 [Run ‘app’] 아이콘을 클릭한다.
단축키
+ 을 눌러도 된다.
그림 2 -15 애플리케이션 실행
AVD가 여러 개이거나 스마트폰이 연결되어 있다면 먼저 작동할 장치를 상단 중앙의 툴바에
서 선택할 수 있다. (필자는 앞에서 생성한 AVD와 구글 픽셀 3 스마트폰이 연결된 상태이다.)
70
코틀린을 활용한 안드로이드 프로그래밍
그림 2 -16 실행할 안드로이드 장치 선택
AVD가 부팅된 후 잠시 동안 기다리면 실행 결과 화면이 나타난다. 만약 오류가 발생하거나
원하는 결과가 안 나오면 [그림 2-2]의 ➋번이나 ➌번으로 돌아간다.
앞서 언급했듯이 AVD 화면은
+ 를 누르면 확대되고,
+ 를 누르면 축소된다.
그림 2 -17 프로젝트 실행 결과 결과 화면의 위젯 모양이나 아이콘 등은 AVD 종류, 스마트폰 종류, 안드로이드 버전에 따라서 조금씩 다르게 나타날 수 있다. 특히 AVD 에서 왼쪽 상단의 앱 아이콘이 출력되지 않거나 모양이 다를 수 있는데 실제 스마트폰에서는 잘 출력되므로 문제없다. 하지만 AVD에도 왼쪽 상단의 앱 아이콘을 출력하고 싶다면 72쪽의 [저자 한마디]를 참조하여 코드를 수정한다.
2장. 처음 만드는 안드로이드 애플리케이션
71
5 안드로이드 애플리케이션 개발 완료 이로써 아주 간단한 안드로이드 애플리케이션을 만들어보았다. 복잡한
애플리케이션 개발도 기본적으로는 이와 같은 방식으로 진행된다.
AVD의 초기화면으로 돌아가려면 오른쪽 키패드에서 돌아가기 버튼 을 클릭하거나 AVD 아래의 맨 왼쪽 버튼(◀)을 클릭한다.
AVD는 한 번 실행하면 닫지 말고 그냥 둔다. 추후에 프로젝트를 다시 실행하면 이미 AVD가 가동되 어 있으므로 결과가 화면에 빨리 나타날 것이다. 프로젝트를 실행한다고 해서 이미 가동되어 있는
AVD 화면이 자동으로 Windows 화면 맨 앞으로 나오지는 않는다. AVD가 다른 Windows 화 면에 가려져 있다면 직접 AVD를 클릭하여 화면 앞으로 가져와야 한다.
2-1 새로운 프로젝트 ‘ HiAndroid’를 작성하고 실행한 뒤 화면을 꾸며보라.
저자 한마디
그림 2 -18 돌아가기 버튼
AVD에서 앱 아이콘을 출력하는 방법 ❶ 먼저 아이콘으로 사용할 파일이 필요하다. 일반적으로 96×96 크기 정도의 *.png 파일을 사용하는 것 이 좋다. 필자는 C:\CookAndroid\sdk\extras\google\google_play_services\samples\wallet\
res\drawable-xhdpi 폴더의 ic_launcher.png 파일을 사용했다. (적당한 다른 이미지를 사용해도 상 관없다.) ❷ 파일을 복사하여 Project Tree의 [app] - [res] - [drawable]에 붙여넣기 한다. 메시지 창이 나오면 모두 를 클릭한다.
그림 2 -19 아이콘 이미지를 drawable에 복사
72
코틀린을 활용한 안드로이드 프로그래밍
❸ Project Tree에서 [app]-[java]-[com.cookandroid.앱 이름]-[MainActivity]를 더블클릭해서 열고 setContentView(R.layout.activity_main) 행 아래에 다음 두 행을 코딩한다.
getSupportActionBar ()?.setDisplayShowHomeEnabled (true ) getSupportActionBar ()?.setIcon (R .drawable .ic _launcher )
그림 2 -20 메인 Kotlin 코드 수정 ❹ P roject Tree 에서 [app ]-[manifests ]-[AndroidManifest .xml ]을 더블클릭해서 열고, 11 행쯤의 android:theme를 다음과 같이 수정한다. (이 부분은 생략해도 된다.) android :theme = "@style /AppTheme " → android :theme = "@style /Theme .AppCompat .Light .DarkActionBar "
이제 프로젝트를 실행하면 AVD에도 왼쪽 상단에 앱 아이콘이 출력될 것이다.
2장. 처음 만드는 안드로이드 애플리케이션
73
02
AVD의 명칭과 사용법
실제 안드로이드 기기를 사용하면 프로그래밍의 결과를 더 쉽고 빠르게 확인할 수 있다. 하지만 제공되는 AVD만으로도 실제 하드웨어(블루투스, 멀티터치 등)와 관련된 기능을 제외하고 대부 분의 기능을 테스트해볼 수 있다.
1 AVD의 명칭 AVD의 기본적인 명칭은 [그림 2-21]과 같다. 외울 필요는 없으며 몇 번 사용하다 보면 자연스 럽게 익숙해질 것이다. 전원 상태 바 타이틀 바
볼륨 화면 회전 카메라 화면 확대 돌아가기 홈 오버뷰 추가 고급 설정
돌아가기 홈 오버뷰
그림 2 -21 AVD의 명칭
74
코틀린을 활용한 안드로이드 프로그래밍
이 중 가장 자주 사용하는 것은 돌아가기, 메뉴, 홈 버튼이다. • 돌아가기(Back) 버튼: 키보드의
+
• 홈(Home) 버튼: 키보드의
와 동일한 기능을 한다.
+
와 동일한 기능을 한다.
• 오버뷰(Overview) 버튼: 실행 중인 앱이 모두 보이고, 전환하거나 종료할 수 있다. • 상태 바(Status Bar): LTE 수신율, 배터리 상태, 시간 등이 나타난다. 모두 가상이므로 특별히 신경 쓰지 않아도 된 다. 상태 바를 아래로 스와이프하면 알림 메시지를 확인할 수 있다. • 타이틀 바(Title Bar): 기본적으로 안드로이드 프로젝트의 이름이 나타난다. 나타나지 않게 하거나 다른 아이콘과 이 름으로 변경할 수도 있다. 이는 뒤에서 살펴보자.
2 AVD 사용법 AVD 사용법은 안드로이드 스마트폰 사용법과 동일하다. 간단히 몇 가지 사용법을 실습해보자.
실습 2-2 AVD 사용법 알아보기
안드로이드폰 역할을 하게 될 AVD의 기본적인 사용법을 알아보자. 실제 안드로이드폰과 거의 비슷하지만 가상의 장치이므로 조금 다른 점도 있다. 화면 전환 AVD를 초기화면 상태로 둔다. 초기화면이 아니라면 홈
버튼을 누른다. AVD의 화면을 가로로 바꾸려면
+
또는
+ 를
누른다. 가끔 사용하는 기능이니 기억해놓자. (AVD 환경 에 따라서 화면이 잘 나오지 않을 수도 있다.) 다시
+
또는
+
를 눌러서 세로로 돌려놓는다.
그림 2 -22 초기화면
2장. 처음 만드는 안드로이드 애플리케이션
75
그림 2-23 가로로 전환한 화면(크롬 앱을 실행하고 자동 회전을 켬)
알람 추가 초기화면을 위쪽으로 스와이프하여 [애플리케이션] 화면에서 시계 버튼(
)을 클릭한다.
알람을 추가할 수 있는 화면이 나온다.
그림 2 -24 알람 시간 추가
아래쪽의
을 클릭하여 알람 시간을 추가할 수 있다. 기존에 설정된 알람 시간을 사용하려
면 오른쪽 스위치를 클릭한다. 홈 버튼을 클릭하여 초기화면으로 돌아간다.
76
코틀린을 활용한 안드로이드 프로그래밍
카메라와 갤러리 초기화면을 위쪽으로 스와이프하고 카메라 버튼(
)을 클
릭하여 메시지 창이 나오면 을 클릭한다. 사 진 위치를 기록하겠냐는 메시지가 나오면 을 클릭 하고, [Entering Camera Mode] 메시지 창이 나오면 을 클릭한다. 실제 카메라는 없지만 가상의 카 메라 화면이 나온다. 셔터 버튼을 클릭하면 가상 화면이 촬영된다. 몇 번 촬영해본다.
그림 2 -25 가상 카메라 촬영
홈 버튼이나 돌아가기 버튼을 클릭하여 카메라를 종료한다. 초기화면을 위쪽으로 스와이프하고 [포토]를 클릭하면 백업과 관련된 내용이 나온다. 돌아가
기 버튼과 를 클릭하면 조금 전에 촬영했던 화면이 나타난다. 각각을 클릭하면 사 진을 큰 화면으로 보여준다. 사진 편집/변경 및 삭제, 공유 등의 작업이 가능하다.
그림 2 -26 촬영된 사진 확인
2장. 처음 만드는 안드로이드 애플리케이션
77
홈 버튼이나 돌아가기 버튼을 클릭하여 초기화면으로 돌아간다. 웹브라우저 크롬 버튼(
)을 클릭한다.
처음에는 구글 사이트에 접속된다. ‘웹 주소 검색 또는 입력’ 부분에 주소(예: m.daum.net)를
입력하고
를 누르면 해당 페이지로 이동한다. 나머지는 일반 웹브라우저와 동일하다. 페
이지가 길 경우 화면을 터치해서 위아래로 스크롤할 수 있다.
그림 2 -27 웹 서핑
홈 버튼이나 돌아가기 버튼을 클릭하여 초기화면으로 돌아간다. 배경화면 변경 바탕화면을 몇 초 동안 누른 후 [배경화면]을 선택하면 제공되는 다양한 그림 중에서 고를 수
있다. 마음에 드는 것을 고르고 을 클릭한 후 을 클릭 한다.
78
코틀린을 활용한 안드로이드 프로그래밍
그림 2 -28 배경화면 변경
오버뷰 버튼 안드로이드는 앱을 실행하다가 돌아가기 버튼이나 홈 버튼을 클릭하면 화면에서 사라진다.
사라진 앱은 종료된 것이 아니라 화면의 뒤쪽에 숨었다고 생각하면 된다. 오버뷰 버튼(▒)은 실행 중인 전체 앱을 보여주고 앱을 화면 앞으로 가져오거나 종료하는 기능을 수행한다.
그림 2 -29 실행 중인 프로그램 종료
2장. 처음 만드는 안드로이드 애플리케이션
79
각각의 앱을 위로 스와이프하면 앱이 종료된다. 앱을 클릭하면 해당 앱이 화면 앞으로 나와서 실행된다. 맨 왼쪽으로 스와이프하여 를 클릭하면 모든 앱이 종료된다. 바탕화면에 애플리케이션 복사 초기화면을 위쪽으로 스와이프하여 앞서 작성한 HelloAndroid 아이콘을 몇 초 동안 누르면
가 나오는데, 여기서 앱을 선택하면 앱의 정보를 확인할 수 있다. 다시 몇 초 동안 누르고 위로 움직이면 바탕화면으로 복사되며, 이때 원하는 위치에 놓으면 된다.
그림 2 -30 바탕화면에 애플리케이션 복사
바탕화면에 복사한 아이콘을 삭제하려면 아이콘을 몇 초 동안 누른 후 상단의 로 가져 다 놓는다. 이때 애플리케이션 자체가 삭제되는 것이 아니라 아이콘만 삭제된다. 아이콘을 로 가져다 놓으면 애플리케이션 자체가 AVD에서 완전히 제거된다.
80
코틀린을 활용한 안드로이드 프로그래밍
그림 2 -31 바탕화면의 아이콘 삭제
Android 10.0(Q)에서는 바탕화면을 오른쪽으로 스와이프하면 뉴스/블로그 등의 사용자 맞 춤형 정보를 보여준다. 구글 계정으로 로그인하면 된다. (이전 버전에서는 구글 검색 화면이 나 왔다.) 이제 AVD에 어느 정도 익숙해졌을 것이다. 이 외에도 여러 가지 사용법이 있지만 필요한 것이 등장할 때마다 설명하겠다.
2장. 처음 만드는 안드로이드 애플리케이션
81