Set up project skeleton (milestone 1)
- Architecture and feature overview in docs/ARCHITECTURE.md - Gradle 9.8 / AGP 9.4 / Kotlin 2.4 with version catalog and convention plugins - Modules :app, :core:*, :device-profiles, :feature:* (placeholder screens) - Flavors core (no INTERNET, enforced by a build check) and full - Material You theme, navigation, expert mode and dry-run settings (DataStore) - Pixel 8-10 device detection, unit tests, GPLv3 license, English README with Obtainium badge Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
plugins {
|
||||
alias(libs.plugins.pixelwall.android.application)
|
||||
alias(libs.plugins.pixelwall.android.compose)
|
||||
alias(libs.plugins.pixelwall.android.hilt)
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "org.pixelwall.app"
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "org.pixelwall.app"
|
||||
versionCode = 1
|
||||
versionName = "0.1.0"
|
||||
}
|
||||
|
||||
flavorDimensions += "network"
|
||||
productFlavors {
|
||||
// Ohne INTERNET-Berechtigung. Firewall nur als Sperre pro App.
|
||||
create("core") {
|
||||
dimension = "network"
|
||||
isDefault = true
|
||||
}
|
||||
// Mit INTERNET: DNS-Filter, Blocklisten, optionale Regelwerk-Updates.
|
||||
create("full") {
|
||||
dimension = "network"
|
||||
applicationIdSuffix = ".full"
|
||||
versionNameSuffix = "-full"
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = true
|
||||
isShrinkResources = true
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||
}
|
||||
}
|
||||
|
||||
// F-Droid / reproducible builds: keine verschlüsselten Abhängigkeits-Metadaten im APK.
|
||||
dependenciesInfo {
|
||||
includeInApk = false
|
||||
includeInBundle = false
|
||||
}
|
||||
|
||||
androidResources {
|
||||
localeFilters += listOf("en", "de")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":core:model"))
|
||||
implementation(project(":core:domain"))
|
||||
implementation(project(":core:data"))
|
||||
implementation(project(":core:system"))
|
||||
implementation(project(":core:privileged"))
|
||||
implementation(project(":core:ui"))
|
||||
implementation(project(":device-profiles"))
|
||||
implementation(project(":feature:dashboard"))
|
||||
implementation(project(":feature:permissions"))
|
||||
implementation(project(":feature:network"))
|
||||
implementation(project(":feature:system"))
|
||||
implementation(project(":feature:profiles"))
|
||||
implementation(project(":feature:trackers"))
|
||||
implementation(project(":feature:monitor"))
|
||||
implementation(project(":feature:changelog"))
|
||||
implementation(project(":feature:onboarding"))
|
||||
|
||||
implementation(libs.androidx.core.ktx)
|
||||
implementation(libs.androidx.activity.compose)
|
||||
implementation(libs.androidx.lifecycle.runtime.compose)
|
||||
implementation(libs.androidx.lifecycle.viewmodel.compose)
|
||||
implementation(libs.androidx.navigation.compose)
|
||||
implementation(libs.androidx.hilt.navigation.compose)
|
||||
|
||||
testImplementation(project(":core:testing"))
|
||||
testImplementation(libs.truth)
|
||||
testImplementation(libs.turbine)
|
||||
|
||||
androidTestImplementation(libs.androidx.test.ext.junit)
|
||||
androidTestImplementation(libs.androidx.test.runner)
|
||||
}
|
||||
Reference in New Issue
Block a user