2024. 6. 18. 15:35ㆍ[Android] Kotlin 활용 앱 개발
# 유용한 단축키
- Ctrl + D: 한 줄 복사
- 주석: Ctrl + /
- 바로 직전에 봤던 코드로 돌아가기: Ctrl + [
# Android 프로젝트 구조
1) 앱 구성 파일 분석
(1) Gradle 빌드 설정 파일
- Gradle: 안드로이드 앱의 빌드 도구
- build.gradle = Gradle의 설정 파일
- 프로젝트 수준의 build.gradle(Project:AndroidLab)
- 모듈 수준의 build.gradle(Module:AndroidLab.app)
이름 | 설명 |
build.gradle | 빌드 설정 파일 |
AndroidManifest.xml | 앱 메인 환경 설정 파일 |
res | 리소스 폴더 |
activity_main.xml | 레이아웃 xml 파일 |
MainActivity.kt | 메인 액티비티 파일 |
# 매니페스트 파일
1) 개념: 앱의 기본 특징을 설명하고, 앱의 구성 요소인 컴포넌트(액티비티, 서비스) 등을 정의한 xml 파일
2) <manifest> 태그의 package 속성: 이 앱의 고유한 식별자 역할을 하는 패키지 이름이 정의
3) <application> 태그
- 이 앱을 구성하고 있는 컴포넌트를 <application> 태그 하위에 정의
- 컴포넌트 종류에 따른 태그
* 액티비티: <activity> 요소
* 서비스: <service> 요소
* 브로드캐스트 수신기: <receiver> 요소
* 콘텐츠 제공자: <provider> 요소
4) <activity> 태그
- android: name 속성이 Activity 서브 클래스의 완전히 정규화된 클래스 이름을 나타냄
- 여기서는 이름이 Main Activity인 Activity 서브 클래스가 앱을 구성하는 유일한 컴포넌트
5) <intent-filter> 태그
- 안드로이드 컴포넌트 하위에 포함되는 태그로, 해당 컴포넌트가 수신할 수 있는 인텐트를 걸러내는 역할
- MainActivity인 액티비티 컴포넌트가 앱을 실행시키는 시작점으로써, 애플리케이션 런처에 등록되어 있음을 나타냄
# 리소스 파일
- 개념: 앱 리소스(이미지, 문자열 등)를 코틀린 코드에서 분리해 독립적으로 유지/관리할 수 있게 함으로써 다양한 환경 변화에서 코드를 변경 없이 사용할 수 있음
- 리소스 폴더
* drawable: 이미지 리소스
* layout: UI 구성에 필요한 리소스
* mipmap: 앱 아이콘 이미지
* values: 문자열 등의 값 리소스
- 주의사항
* res 하위 각 폴더명은 지정된 것만 사용해야 함
* 각 리소스 폴더의 하위 폴더는 지정할 수 없음
* 리소스 파일명에는 대문자 사용 불가
* File-based resource names must contain only lowercase a~z, 0~9, or underscore(_)
# aapt 도구
- 개념: 앱 리소스를 컴파일해 컴파일된 리소스(R클래스와 패키지된 리소스 파일)을 생성함
- R.java: aapt 도구에 의해 자동으로 생성된 파일 / R클래스는 리소스를 코틀린 프로그램에서 접근하기 위한 리소스 ID를 정의
# MainActivity.kt
- 안드로이드 프로젝트 생성 시 자동으로 만들어진 코틀린 파일
- package ~~~: MainActivity 클래스가 속한 패키지
- class Mainactivity: AppCompatActivity(): Activity의 서브 클래스 / 하위 플랫폼 버전 지원
- override fun Oncreate(): 액티비티 생성 순간에만 딱 한 번 호출되는 메소드 / 액티비티 관련 변수 초기화 및 사용자 인터페이스 설정 코드 포함
- setContentView(R.layout.activity_main): R.layout.activity_main이 가리키는 리소스를 이 액티비티의 콘텐츠뷰로 사용하겠다는 의미 / R.layout.activity_main은 res, layout 폴더에 있는 activity_main.xml을 가리키는 정적 상수
'[Android] Kotlin 활용 앱 개발' 카테고리의 다른 글
Android - 액티비티(Activity) (0) | 2024.06.20 |
---|---|
Android - Layout (0) | 2024.06.19 |
Android UI - View & Widget (0) | 2024.06.19 |
240527_1주차 온보딩 (1) (0) | 2024.05.27 |
Starter Note (1) | 2024.04.15 |