코틀린 안드로이드 앱개발 강좌, 앱 구성 파일 분석

작성자: 조광형

날짜: [날짜]

서론

안드로이드 앱을 개발하기 위해서는 여러 구성 파일을 이해하고 활용해야 합니다. 이 강좌에서는 안드로이드 앱 개발에 중요한 여러 구성 파일의 역할과 그 내용을 분석해보겠습니다.
코틀린(Kotlin)은 이러한 파일들을 관리하기에 매우 효과적인 언어이며, 생산성과 안정성을 동시에 제공해 줍니다.
본 글에서는 안드로이드 앱의 기본 구조를 이해하고, 각 구성 파일의 기능과 내용을 심층적으로 살펴보겠습니다.

1. 안드로이드 앱의 기본 구성

안드로이드 앱은 여러 구성 요소로 이루어져 있으며, 이들 각각은 특정한 기능을 담당합니다. 흔히 사용되는 구성 파일은 주로 다음과 같습니다:

  • AndroidManifest.xml
  • build.gradle
  • res 폴더 (리소스 파일들)
  • src 폴더 (코드 파일들)

이들 파일은 안드로이드 앱이 실행되는 데 필요한 기본 정보를 제공하며, 각 파일의 구조와 역할을 하나하나 살펴보겠습니다.

2. AndroidManifest.xml

AndroidManifest.xml 파일은 모든 안드로이드 앱의 핵심 구성 파일입니다.
이 파일은 앱의 구성 요소와 권한, API 레벨 등 다양한 정보를 포함하여 안드로이드 시스템이 앱을 올바르게 실행할 수 있도록 합니다.

2.1. 주요 속성

package: 앱의 패키지 이름을 정의합니다. 일반적으로 도메인의 역순을 따릅니다.
permissions: 앱에서 사용될 권한을 명시합니다. 예를 들어, 인터넷에 접근하기 위해서는 <uses-permission android:name="android.permission.INTERNET"/>를 추가해야 합니다.
activity: 앱의 액티비티를 정의하며, 각 액티비티가 어떻게 작동하는지를 설명합니다.

예제 코드


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

    <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/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

    </application>
</manifest>
            

3. build.gradle

안드로이드 프로젝트는 Gradle를 사용하여 빌드 과정을 관리합니다.
build.gradle 파일은 프로젝트의 의존성, SDK 버전 설정, 플러그인 등을 관리하는 중요한 파일입니다.

3.1. 주요 섹션

android: 앱의 기본 속성을 정의하며, 타겟 SDK 버전과 최소 SDK 버전 등을 설정합니다.
dependencies: 앱이 의존하는 라이브러리와 모듈을 관리합니다.
예를 들어, 코룰린 코루틴을 사용하기 위해서는 implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9"와 같이 추가합니다.

예제 코드


apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation "androidx.appcompat:appcompat:1.2.0"
    implementation "com.google.android.material:material:1.2.1"
}
            

4. 리소스 폴더 (res)

res 폴더는 이미지, 레이아웃, 문자열 등 다양한 리소스를 관리하는 디렉토리입니다.
이 폴더는 리소스를 구조적으로 잘 정리하여 접근할 수 있도록 합니다.

4.1. 주요 폴더

  • drawable: 이미지 파일을 저장하는 곳입니다.
  • layout: UI 레이아웃 파일을 저장합니다.
  • values: 문자열, 색상, 스타일 등 다양한 값들을 저장합니다.

예제 코드

레이아웃 파일 예제 (activity_main.xml):


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/welcome_message" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_text" />

</LinearLayout>
            

5. 코드 폴더 (src)

src 폴더는 앱의 비즈니스 로직을 구현하는 Kotlin 코드를 저장하는 곳입니다.
각 액티비티, 프래그먼트 및 기타 클래스를 포함하고 있으며, 패키지 구조를 이해하는 것이 중요합니다.

5.1. 기본 구조

– 각 액티비티는 Activity 클래스를 상속받아야 하며,
일반적으로 화면 단위로 나뉘어 제어됩니다.
– 프래그먼트는 관련된 UI 컴포넌트를 결합하여 더 효율적으로 화면을 구성할 수 있습니다.

예제 코드

메인 액티비티 예제 (MainActivity.kt):


package com.example.myapp

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}
            

6. 구성 파일 분석의 중요성

구성 파일을 분석하고 이해하는 것은 안드로이드 앱 개발의 기초입니다.
각 파일은 앱의 정책 및 동작, 사용자 인터페이스 및 기능에 직접적인 영향을 미칩니다.
따라서, 앱을 개발하기 전에 이러한 파일들을 면밀히 분석하고 이해하는 것이 필수적입니다.

이상으로 코틀린을 활용한 안드로이드 앱의 주요 구성 파일에 대한 분석을 마치겠습니다.
각 파일의 역할에 대한 이해가 깊어졌기를 바라며, 여러분이 훌륭한 앱을 개발하는 데 도움이 되었길 바랍니다.

감사합니다!