- 요약 -
1. 안드로이드 프로젝트를 개발할 때는 다음 단계를 따릅니다.
- 안드로이드 프로젝트 생성
- 화면 디자인 및 편집(app/res/layout/activity_main.xml = R.layout.activity_main)
- Kotlin 코드 작성 및 수정
- 프로젝트 실행 및 결과 확인
- 안드로이드 에플리케이션 개발 완료
2. 안드로이드 프로젝트를 새로 만들 때는 애플리케이션 이름, 패키지 이름, 최하 실행 버전을 필수로 입력 또는 선택해야 합니다.
3. 안드로이드 프로젝트에서 프로그래머가 주로 변경하거나 접근할 폴더와 파일은 다음과 같습니다.
- activity_main.xml 파일 : 기본 액티비티(화면) => 흔히 애플리케이션을 동작 할 때 이루어지는 화면
- MainActivity.kt 파일 : 메인 Kotlin 코드 => 실제로 가장 많이 수정할 소스 파일, 액비티비에서 이루어지는 파일
- strings.xml 파일 : 문자열이 저장된 파일 => 모든 문자열들을 해당 파일에서 관리 가능함 (외 color.xml, style.xml)
- drawable 폴더 : 앱에서 사용할 이미지 파일 저장 디렉터리 => 이미지, 아이콘 등 저장 관리
- AndroidManifest.xml 파일 : 앱의 기본적인 정보가 설정된 파일
- GradleScripts 폴더 : Gradle 뷜드 시스템과 관련된 파일이 들어 있음 (build.gradle, local.properties, gradle.properties)
4. 액티비티(화면)을 구성하는 방법으로는 [Design]에서 마우스로 직접 끌어다 놓는 방식으로 사용하거나, activity_main.xml 파일을 코드로 입력/수정하는 방법이 있습니다.
< 마우스 드래그 앤 드롭 형태의 구성 방식 >
< 코드 입력 방식 >
5. Android Studio에서 Eclipse용 프로젝트를 열려면 [File]-[New]-[Import Project]를 선택한 후 Eclipse용 프로젝트 폴더를 선택하면 됩니다. (저는 따로 하지는 않았습니다. Eclipse로 개발하는 것보다 안드로이드 스튜디오로 개발하는 것이 이제는 보편적인 방법이 되었다고 해서요.)
6. Android Studio에서 프로젝트를 다른 사람에게 전달하려면 프로젝트 폴더를 통째로 주거나 압축해서 전달합니다. (일부만 전달하면 코드가 제대로 동작하지 않습니다. 꼭 통째로 압축 전달!)
7. activity_main.xml에서 버튼 태그는 <Button> </Button>또는 <Button />형식을 사용합니다. (자동완성 기능이 있기 때문에 실제로는 '<B'까지만 입력해도 자동으로 버튼 태그 및 크기 조정까지 할 수 있습니다. 또한 닫는것도 '>'만 입력해도 되더라구요. 매우 편리합니다.)
8. activity_main.xml의 네임스페이스는 디폴트로 android가 지정되어 있습니다. 그러므로 'android:속성 이름' 형식을 사용합니다.
9. activity_main.xml에서 위젯에 아이디를 지정하려면 "@+id/아이디"형식을 사용합니다.
10. Kotlin 코드에서 Ctrl+Alt+O는 임포트된 내용을 자동으로 정리해주며, Alt+Enter는 클래스나 인터페이스를 자동으로 임포트해줍니다.
11. Ctrl+Alt+L을 누르면 소스코드가 보기 좋게 정렬됩니다.
12. 다음은 Button 클릭 시 작동하는 표준 코드입니다.
lateinit var button1 : Button // 1. 전역변수 선언 (버튼) button1 = findViewById<Button>(R.id.button1) // 2. 해당 변수에 mainactivity에서 설정한 id값 할당 buttton1.setOnClickListener { // 3. 버튼 클릭 시 작동할 이벤트 } |
- 연습 문제 -
1. AVD와 키패드의 명칭을 정리하시오.
<AVD 기본 명칭>
- 상태바 : LTE수신율, 배터리 상태, 시간 등이 표시됨. 아래 방향으로 스와이프 시 알람 메시지 확인 가능 (1)
- 타이틀바 : 기본적인 안드로이드 프로젝트 이름 표시 (2)
- 전원 : 전원 on/off (3)
- 볼륨 : 볼륨 up (4) / down (5)
- 화면회전 : 화면 시계방향, 반시계방향 회전 (6)
- 카메라 (7)
- 화면 확대 (8)
- 돌아가기 : 키보드의 Ctrl + BackSpace와 동일 기능 (9)
- 홈 : 키보드의 Ctrl + H와 동일 기능 (10)
- 오버뷰 : 실행 중인 앱이 모두 보이고 전환 또는 종료 기능 (11)
- 추가 고급 설정 : 여러가지 고급 설정 기능이 있음 (12)
- 돌아가기 (13) 홈 (14) 오버뷰 (15)
<키패드 명칭>
사실 키패드는 어떤 키패드를 쓰느냐에 따라 달라지는데 저는 AVD에 있는 키패드로 설명하겠습니다.
- 빠른 검색 : 다른 웹, 앱을 사용하지 않아도 빠르게 검색 가능 한 기능 (1)
- 기본 이미지 (2)
- 일명 움짤 (3)
- 번역 기능 (4)
- 고급 기능 (5)
- 음성 인식 기능 (6)
- 알파벳 (q w e r t y u i o p는 누르고 있으면 아라비아 숫자 입력 가능) (7)
- 대,소문자 변경 기능 (8)
- 이전 입력 삭제 (9)
- 아라비아 숫자 및 특수문자 전환 (10)
- 반점 (11)
- 이모티콘 (12)
- Space Bar (13)
- 온점 (14)
- Enter (15)
2. 다음 각 항목의 단축키는 무엇인가?
- AVD 화면을 가로 및 세로로 변경
- XML 또는 Kotlin 코드의 자동 완성
- 자동 임포트
- 선택된 영역의 주석(Remark)
- 소스코드의 자동 정렬
3. 안드로이드 프로그래밍을 하다 보면 코딩의 '오류'와 '경고'가 발생한다. 이 두 가지에 대해 설명하시오.
: 오류는 코드의 스펠링 혹은 잘못된 사용 방법, 잘못된 참조 등으로 발생하며 실행되지 않습니다. 반면 경고는 해당 소스코드가 어떠한 오류를 발생 시 킬 수 있는 가능성을 가지고 있으며 당장은 문제가 되지 않고 실행도 잘되는 것을 의미합니다. 즉, 가장 좋은 방법은 경고메시지가 잘 나오지 않도록 오류가 없는 코드를 사용하는 것이 가장 중요합니다.
4. 프로젝트에서 사용하는 리소스가 저장되는 /res 폴더 아래의 하위 폴더와 파일의 용도를 설명하시오.
: /res폴더아래에는 drawble, layout, mipmap, values폴더가 있으며 하위 파일 및 폴더는 다음의 용도를 갖습니다.
- /res : 앱 개발에 사용되는 이미지, 레이아웃, 문자열 등이 들어가는 폴더입니다.
- /res/drawble/, /res/mipmap/ : 이미지 파일이 저장되며, mipmap폴더에는 앱이 설치된 후에 보이는 런처 아이콘이 있는데, 그 내부적으로 xxxhdpi, xxhdpi,l xhdpi, mdpi등 해상도 별 런처 아이콘 파일을 넣는 데 사용됩니다.
- /res/layout/ : 액티비티(화면)을 구성하는 xml파일을 넣습니다. 기본적으로 activity_main.xml이 초기화면으로 지정되어 있으며 화면을 추가하길 원한다면 xml 형태로 생성합니다.
- /res/values/ : 문자열을 저장하는 string.xml, 색상표를 저장하는 colors.xml, 스타일을 저장하는 styles.xml 등이 있습니다.
- 그밖에도 애니메이션을 저장할 anim폴더, 기타 xml파일을 저장할 xml폴더를 생성할 수도 있습니다.
5. 완성된 앱이 아이스크림 샌드위치(4.0.x) 이상의 스마트폰에서 모두 작동하게 하려면 무엇을 고려해야 하며, 프로젝트를 어떻게 생성해야 하는가?
(★ Help me choose를 클릭해보면 해당 버전 사용율이 나타나 있으니 참고하세요.)
6. Button에서 사용 가능한 XML 속성에는 어떤 것이 있는지 조사하시오.
버튼 위젯은 다음과 같이 View 와 TextView xml속성들을 상속하고 있습니다.
그밖에도 Button class에 정의된 xml속성들도 있으며 xml파일에서 <Button을 입력한 후
android:라고 입력해보면 많은 속성 목록들이 나옵니다 ㅎ:))
해당 Summery 참조 (developer.android.com/reference/kotlin/android/widget/Button)
7. 다음 화면을 디자인하고 Kotlin 코드를 완성하시오.
- 구성 : EditText, Button 2개, RadioGroup, RadioButton 2개, ImageView, 이미지 2개를 drawable 폴더에 복사해 넣는다.
- 작동
- <글자 나타내기>를 클릭하면 EditText에 입력한 글자가 잠깐 토스트 메시지로 출력된다.
- <홈페이지 열기>를 클릭하면 EditText에 입력한 URL이 열린다.
- 처음에는 기본 이미지가 나타나고 라디오버튼을 클릭하면 다른 이미지로 변경된다. (총 2개 이미지)
1. 먼저 아이콘을 수정하여 타이틀 바부터 추가해 보겠습니다. (아이콘은 3D 무료 아이콘으로 했습니다. :))
- 이미지를 다운받아 drawble 폴더에 드래그 앤 드롭 해주세요.
2. MainActivity와 AndroidManifest.xml에 다음의 코드를 추가 하세요.
MainActivity : app/java/com.xxx.xx/MainActivity (xxx는 프로젝트 생성 시 이름입니다. 저의 경우 com.Hellow.practice1)
getSupportActionBar()?.setDisplayShowHomeEnabled(true) getSupportActionBar()?.setIcon(R.drawble.ic_launcher) |
AndroidManifest.xml : app/manifests/AndroidManifext.xml
android:theme = @style/Theme.AppCompat.Light.DarkActionBar |
타이틀 바 완성!! (혹시 왼쪽에 아이콘로고 + 타이틀텍스트로 나오시는분 있으시면 댓글 부탁드려요~()~)
2. EditText, button2개 , RadioGroup, RadioButton2개, ImageView, 이미지 2개 추가.
막상 해보니 제 코드가 좀 조잡하네요 ^^;;
(참고로 id는 원하시는 id 아무거나 하시면 됩니다ㅎ)
3. <글자 나타내기>를 클릭하면 EditText에 입력한 글자가 잠깐 토스트 메시지로 출력.
4. <홈페이지 열기>를 클릭하면 EditText에 입력한 URL이 열린다.
5. 처음에는 기본 이미지가 나타나고 라디오버튼을 클릭하면 다른 이미지로 변경
- ImageView.setImageResource(R.drawable.image_xxx) : res/drawable폴더안에 있는 image_xxx로드
- ImageView.setImageResource(Uri uri) : Uri에 이미지 파일 경로를 파싱 후 로드
라디오 버튼 클릭 이벤트 발생 시 해당 이미지를 이미지 뷰에 set하는 아주 간단한 방식입니다 :)
이상 마치겠습니다!!
'책 요약하기 > 코틀린을 활용한 안드로이드 프로그래밍' 카테고리의 다른 글
#5. 레이아웃 익히기 2021-01-29 (0) | 2021.01.29 |
---|---|
#4. 기본 위젯 익히기 2021-01-28 (0) | 2021.01.28 |
#3. 안드로이드를 위한 기본적인 Kotlin 문법 2021-01-27 (0) | 2021.01.27 |
#1. 안드로이드 개요 2021-01-24 (0) | 2021.01.24 |
#0. Preview 2021-01-24 (0) | 2021.01.24 |