summaryrefslogtreecommitdiff
path: root/android-app/app/build.gradle
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-03-15 05:49:51 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-03-15 05:49:51 +0000
commitc3f1178d30de7f1c5c536d0863d547299f2ab54e (patch)
treed1defece328408d165757be34070decb44101893 /android-app/app/build.gradle
parent418f6ae8c8ccb968c2674548139dab36e2ab1905 (diff)
parent0923c55af5c63539055933509302233ee3f4b26a (diff)
merge: integrate weather/forecast feature from local remote
Merges wind/current overlay and weather forecast implementation: - Weather feature: WeatherRepository, MainViewModel, MapFragment, ForecastFragment, ForecastAdapter - Data models: WindArrow, ForecastItem, WeatherResponse, MarineResponse - API services: WeatherApiService, MarineApiService (Open-Meteo, no key required) - Layouts: activity_weather.xml, fragment_map.xml, fragment_forecast.xml, item_forecast.xml - Resources: merged colors (wind_slow/medium/strong), strings, themes (Theme.NavApp added) - Manifest: added ACCESS_COARSE_LOCATION - build.gradle: merged deps — kept Firebase+MapLibre 11.5.1, added kotlin-kapt, retrofit, moshi, turbine - Fix: re-packaged com.example.androidapp → org.terst.nav; weather MainActivity uses ActivityWeatherBinding Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'android-app/app/build.gradle')
-rw-r--r--android-app/app/build.gradle38
1 files changed, 36 insertions, 2 deletions
diff --git a/android-app/app/build.gradle b/android-app/app/build.gradle
index d466e95..d587376 100644
--- a/android-app/app/build.gradle
+++ b/android-app/app/build.gradle
@@ -3,6 +3,7 @@ plugins {
id 'org.jetbrains.kotlin.android'
id 'com.google.gms.google-services'
id 'com.google.firebase.appdistribution'
+ id 'kotlin-kapt'
}
android {
@@ -35,6 +36,10 @@ android {
jvmTarget = '1.8'
}
+ buildFeatures {
+ viewBinding true
+ }
+
sourceSets {
main {
kotlin.srcDirs = ['src/main/kotlin', 'src/main/java']
@@ -49,18 +54,47 @@ android {
}
dependencies {
+ // Firebase
implementation platform('com.google.firebase:firebase-bom:32.7.2')
implementation 'com.google.firebase:firebase-analytics-ktx'
- implementation 'org.maplibre.gl:android-sdk:11.5.1'
+
+ // AndroidX core
implementation 'androidx.core:core-ktx:1.12.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
- implementation 'com.google.android.gms:play-services-location:21.0.1' // Added for FusedLocationProviderClient
+ implementation 'androidx.fragment:fragment-ktx:1.6.2'
+ implementation 'androidx.recyclerview:recyclerview:1.3.2'
+
+ // Lifecycle / ViewModel / Coroutines
+ implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.7.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2'
+ // Networking
+ implementation 'com.squareup.retrofit2:retrofit:2.9.0'
+ implementation 'com.squareup.retrofit2:converter-moshi:2.9.0'
+ implementation 'com.squareup.okhttp3:okhttp:4.12.0'
+ implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
+
+ // JSON parsing
+ implementation 'com.squareup.moshi:moshi-kotlin:1.15.0'
+ kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.15.0'
+
+ // Location
+ implementation 'com.google.android.gms:play-services-location:21.2.0'
+
+ // Map
+ implementation 'org.maplibre.gl:android-sdk:11.5.1'
+
+ // Testing
testImplementation 'junit:junit:4.13.2'
+ testImplementation 'io.mockk:mockk:1.13.9'
+ testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3'
+ testImplementation 'app.cash.turbine:turbine:1.1.0'
+ testImplementation 'com.squareup.okhttp3:mockwebserver:4.12.0'
+
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}