Mokelab Blog

#45 AndroidでToDoアプリを作る - プロジェクトを作る

AndroidでToDoアプリを作るために、まず、Android Studioでプロジェクトを作成します。

Android Studioを起動する

Android Studioをインストールし、起動すると次のようなウィンドウが表示されます。

新規のプロジェクトを作成するには、「Start a new Android project」を選びます。

プロジェクトの種類を選ぶ

次に、プロジェクトの種類を選びます。テンプレートなので、後から内容を書き換え、別の種類のプロジェクトとすることもできます。シンプルかつ使いやすい「Empty Activity」を選びます。

プロジェクトの情報を設定する

最後に、プロジェクト名などの情報を設定します。

Package NameはベースとなるJavaのパッケージ名とアプリIDになります。Javaのパッケージ名のお作法に従い、所有しているドメインを逆にしたものに任意の名前を付けます。またJavaのパッケージ名なので、先頭と.(ドット)のあとに数字は使えません。

Mininum SDKはアプリをインストールすることのできる最小のAPI Levelです。ここで指定したバージョンより新しいAndroid OSが入っている端末にインストールすることができます。この値は後から変更できます。

最後にウィンドウ右下の「Finish」をクリックすることで、プロジェクトの作成が完了します。

表示を変更する

プロジェクトの作成が完了すると、次のようなウィンドウが表示されます。

左側にはProjectウィンドウが表示されています。ここでは、プロジェクトに含まれるファイルなどが表示されます。 中央にはファイルの中身などを編集するためのエディタウィンドウが表示されます。

目線の移動を少なくするため、Projectウィンドウの右上にある歯車→Move To→Right Topを選び、右上に移動させます。

Projectウィンドウを右上に移動させたら、次は「Android」と表示されている部分をクリックし、Projectウィンドウの表示をProjectに変更します。これでファイルツリー表示になります。

これで快適なアプリ開発環境が整いました。

アプリで使用するライブラリを追加する

現代のAndroidアプリ開発では、さまざまなライブラリをアプリに追加しながら開発します。ここではアプリにライブラリを追加する方法を紹介します。

AndroidアプリのビルドはGradleというツールで行います。Android Studioでアプリの実行などを行う際、Android StudioはGradleのコマンドを裏で実行しています。Gradleによるビルドの設定ファイルはbuild.gradleファイルです。Android Studioでプロジェクトを作ると、2種類のbuild.gradleファイルが作られます。

プロジェクト直下にあるbuild.gradleは次のようになっています。

// Top-level build file where you can add configuration options common to all sub-projects/modules.
  buildscript {
      ext.kotlin_version = "1.4.0"
      repositories {
          google()
          jcenter()
      }
      dependencies {
          classpath "com.android.tools.build:gradle:4.0.1"
          classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  
          // NOTE: Do not place your application dependencies here; they belong
          // in the individual module build.gradle files
      }
  }
  
  allprojects {
      repositories {
          google()
          jcenter()
      }
  }
  
  task clean(type: Delete) {
      delete rootProject.buildDir
  }

このファイルには、プロジェクト全体で使う設定が書かれています。ライブラリはどこから取得するかといった情報や、ビルドに使うライブラリなどの情報を記述します。

一方、appフォルダの中にあるbuild.gradleは次のようになっています。

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
    
android {
    compileSdkVersion 30
    buildToolsVersion "30.0.0"

    defaultConfig {
        applicationId "com.mokelab.mytodo"
        minSdkVersion 26
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

こちらには、アプリに関する情報などを記述します。androidブロックの中には、アプリ名やアプリのバージョンなどの情報などを記述します。

そして、dependenciesブロックにはアプリで使用するライブラリを記述します。Gradleはこのブロックの内容から、必要なライブラリをダウンロードしアプリに追加してくれます。デフォルトで、最低限必要なライブラリが既に追加されていることがわかります。

例えば、androidx.navigation:navigation-fragment-ktx:2.2.2というライブラリを追加するには、dependenciesに次のように追加します。

dependencies {
  implementation fileTree(dir: "libs", include: ["*.jar"])
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  implementation 'androidx.core:core-ktx:1.3.1'
  implementation 'androidx.appcompat:appcompat:1.2.0'
  implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'androidx.test.ext:junit:1.1.2'
  androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
  // ライブラリを追加した
  implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2'
}

本シリーズでは、各記事で必要となるライブラリを次のように表記することにします。デフォルトで記述されているものを抜いてしまわないよう注意してください。

dependencies {
  implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2'
}

まとめ

Androidアプリプロジェクトの作成から、ライブラリの追加方法までを紹介しました。今後、何度も行うことになると思うので、基本をおさえておきましょう。

本サイトではサービス向上のため、Google Analyticsを導入しています。分析にはCookieを利用しています。