본문 바로가기
모바일 APP/Android with Kotlin

모듈 구성 요소

by 살길바라냐 2021. 12. 5.
반응형

그래들 빌드 설정 파일 (build.gradle) :

그래들은 안드로이드 앱의 빌드 도구로
앱을 빌드하는 데 필요한 설정을 등록한다. 

그래들 파일은 2개가 있다
- Project: AndroidLab

- Module: Android.app

대부분의 빌드 설정은 모듈 그래들 파일에 작성한다.

// 플러그인 선언 필요에 따라 추가 가능
plugins {
id 'com.android.application'
id 'kotlin-android'
}

// 컴파일 및 빌드 버전 설정
compiledSdkVersion 30
buildToolsVersion "30.0.2"

// 앱의 식별자를 설정
// 고유한 문자열로 지정해야 한다.
// 만약 구글플레이 스토어에 똑같은 식별자가 있다면 플레이 스토어에 등록되지 않는다.

applicationId "com.example.androidlab"

// SDK 버전 설정
// targetSdkVersion은 개발할 때 적용 되는 sdk 버전
// minSdkVersion은 이 앱을 설치 할 수 있는 기기의 최소 sdk 버전

minSdkVersion 16
targetSdkVersion 30

// 앱 버전 설정
// 초기 1에서 업데이트 될때 이 버전을 올려서 다시 배포한다. 
versionCode 1
versionName "1.0"

// 컴파일 옵션
// 자바 버전 선언을 생략하면 기본 1.6이 적용

compileOptions {
	sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
KotlinOptions {
 jvmTarget = '1.8'
 }
 
 
 // 라이브러리 설정
 // 개발자가 추가하는 오픈소스 라이브러리나 구글의 androidx 라이브러리등
 // sdk 라이브러가 아닌 것들은 모두 dependencies에 선언해야 한다. 
 dependencies {
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  implementation "androidx.core:core-ktx:1.3.2"
  implementation "androidx.appcompat:appcompat:1.2.0"
 }

 

메인 환경 파일 (AndroidManifest.xml) :

안드로이드 앱의 메인 환경 파일
개발부터 실행까지 중요한 역할을 하는 파일이다. 

컴포넌트는 매니페스트 파일에 등록해야 시스템이 인지를 한다. 

// 매니페스트 파일의 루트 태그
// xmlns는 XML의 네임 스페이스 선언
// package는 매니페스트 파일에 선언한 컴포넌트 클래스의 기본 패키지명

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidlab">


// 앱 전체를 대상으로 하는 설정
// icon 지정한 이미지가 앱을 설치한 사용자에게 보이는 실행 아이콘
// label 앱의 이름을 등록
// theme 앱에서 적용해야 하는 테마를 설정
// @ 로 시작하면 리소스를 의미한다.

<application
	android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon-"@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.AndroidLab">
</application>

 

// 액티비티 <activity> 태그
// 서비스 <service> 태그
// 브로드캐스트 리시버 <receiver>태그
// 콘텐츠 프로파이더 <provider>태그
// 컴포넌트 하나당 태그 하나로 등록하며 만약 10개라면 10개의 태그를 선언해야 한다.


 // MainActivity를 클래스를 액티비티로 등록
 // .은 해당 클래스가 <manifest>태그에 등록한 package 경로에 있다는 의미
 <activity andorid:name = ".MainActivity"> 

 <intent-filter> // 생략 가능
 	<action android:name="android.intent.action.MAIN"/> 
    // 앱 아이콘을 클릭시 실행되는 액티비티 
    <category android:name="android.intent.category.LAUNCHER"/>
 </intent-filter>
 </activity>

 

리소스 폴더

 

 

res 폴더는 앱의 리소스를 등록하는 목적으로 사용하며
모듈이 생성되면 res 폴더 아래 여러 폴더들이 생성된다.

- drawable: 이미지 리소스
- layout: UI 구성에 필요한 XML 리소스
- mipmap: 앱 아이콘 이미지
- values: 문자열 등의 값으로 이용되는 리소스

res 폴더 아래 리소스를 만들면 자도응로 R.java파일에 상수 변수로리소스가 등록된다.

예를 들어 아래와 같이

res폴더 안
drawable 안에 a, b png 파일 만들고 

-res
\-drawable
  - a.png
  - b.png

사용하려면 R.drawable.a, R.drawable.b 로 식별이 가능하다. 

따라서 몇가지 규칙이 필요하다

1. res 하위 폴더명은 지정된 폴더명을 사용해야 한다 

2. 각 리소스 폴더에 다시 하위 폴더를 정의 할수 없다

3. 리소스 파일명은 자바의 이름 규칙을 위배 할수 없다.
(a1.png 가능, 1a.png 불가능)

4. 리소스 파일명에는 알파벳 대문자를 이용할수 없다.
(aU.xml 불가능, a_U.xml 가능)

 

레이아웃 XML 파일

 

res/layout 폴더 아래 기보능로 만들어지는 activity_main.xml 파일로

화면을 구성하는 레이아웃 XML 파일이다 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main_parent_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true"
    tools:context="com.themoin.remit.MainActivity">
    
</androidx.constraintlayout.widget.ConstraintLayout>

 

메인 액티비티 파일

앱 아이콘을 터치하면 MainActivity.kt 파일이 실행된다.

MainActivity 클래스가 실행되면 onCreate() 함수가 자동으로 호출되며
onCreate() 함수 안의 구문을 실행한다.

setContentView() 함수는 매개변수에 지정한 내용을 액티비티 화면에 출력한다.

728x90

'모바일 APP > Android with Kotlin' 카테고리의 다른 글

초기화 미루기  (0) 2021.12.13
코틀린 이란?  (0) 2021.12.13
컴포넌트  (0) 2021.12.02
안드로이드 운영체제의 구조  (0) 2021.11.30
안드로이드 특징  (0) 2021.11.30