iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0

開頭

Googel 現在把所有的安卓組件都做成套件的形式,讓你想裝什麼就裝什麼,統稱 Android Jetpack,如果是以前的話是不用特別教套件怎麼安裝,可是到 Gradle 7.0 後,有些套件的存放位置和之前比起來有些不同,所以為了之後方便教學,先用這篇把 safeargs.kotlin 和 kotlinx.serialization 的套件裝好,還有一些簡單的設定。

至於什麼是 safeargs.kotlin 和 kotlinx.serialization

  • safeargs.kotlin:使用 Navigation 時,在兩個頁面之間傳遞資料時型別會比較安全
  • kotlinx.serialization:使用網路傳遞資料時用

build.gradle(Project: 你的應用程式名稱)

除了原本的 android.application、android.library、jetbrains.kotlin.android 外,還要安裝 safeargs.kotlin 和 kotlinx.serialization,可以把下面的程式碼全選複製貼上到 build.gradle(Project: 你的應用程式名稱)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '7.1.3' apply false
    id 'com.android.library' version '7.1.3' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.20' apply false
    
    id 'androidx.navigation.safeargs.kotlin' version '2.4.2' apply false
    id 'org.jetbrains.kotlin.plugin.serialization' version '1.6.21'
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle(Module: 你的應用程式名稱)

這個就分成很多區塊,分別是

  • plugins
  • android
  • dependencies

plugins

還要新增三個套件,分別是

  • androidx.navigation.safeargs.kotlin
  • org.jetbrains.kotlin.plugin.serialization
  • org.jetbrains.kotlin.kapt
plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    
    id 'androidx.navigation.safeargs.kotlin'
    id 'org.jetbrains.kotlin.plugin.serialization'    
    id 'org.jetbrains.kotlin.kapt'
}

android

因為我習慣語意化版本號,所以「versionName "1.0"」改成「versionName "0.0.1"」
還有之後要用資料綁定功能,所以額外新增「dataBinding true」的設定

android {
    defaultConfig {
        versionName "0.0.1"
    }

    buildFeatures {
        dataBinding true
    }
}

dependencies

從網路上找到的套件就會放在這邊,例如我們要安裝資料庫套件「Room」,就會像下面這樣

dependencies {
    kapt "androidx.room:room-compiler:2.4.3"
    implementation "androidx.room:room-runtime:2.4.3"
    implementation "androidx.room:room-ktx:2.4.3"
    testImplementation "androidx.room:room-testing:2.4.3"
}

settings.gradle

複製 buildscript 的內容貼到 dependencyResolutionManagement 裡面就好

dependencyResolutionManagement {

    buildscript {
        dependencies {
            classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.6.0-alpha01"
            classpath "org.jetbrains.kotlin:kotlin-serialization:1.6.21"
        }
    }
}

這樣基本的設定就完成囉


上一篇
111/03 - 介紹(3/3) - 關於程式碼風格
下一篇
111/05 - 畫面(1/2) - Navigation
系列文
聽說 HackMD 開放 API 串接,那麼用 Kotlin 寫個筆記 App 吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言