feat(android): establish Jetpack Compose foundation with navigation and shared theme

- Set up project namespace to com.shieldai.android
- Add navigation-compose dependency
- Create ShieldAI brand color palette (Color.kt) with light/dark tokens
- Add Material3 Typography scale (Type.kt) with all text styles
- Create Shape.kt with small/medium/large rounded corners
- Implement ShieldAITheme with light/dark color schemes and optional dynamic color
- Define Screen sealed class with all destinations (Dashboard, Services, Alerts, Settings, Account, Login, Signup, Onboarding, ServiceDetail)
- Create NavGraph with composable routes and placeholder screens
- Implement BottomNavBar with 5 navigation items with icons
- Create AppNavigation with Scaffold, NavHost, and bottom nav visibility logic
- Add ShieldAIApp Application class and updated MainActivity
- Create vector drawables for bottom nav icons
- Add test files under new package
- Remove old template package (com.mikefreno.shieldai)
This commit is contained in:
2026-05-25 20:08:42 -04:00
parent 78c63f018c
commit 35bc5f4af1
28 changed files with 520 additions and 249 deletions

View File

@@ -4,7 +4,7 @@ plugins {
}
android {
namespace = "com.mikefreno.shieldai"
namespace = "com.shieldai.android"
compileSdk {
version = release(36) {
minorApiLevel = 1
@@ -12,7 +12,7 @@ android {
}
defaultConfig {
applicationId = "com.mikefreno.shieldai"
applicationId = "com.shieldai.android"
minSdk = 26
targetSdk = 36
versionCode = 1
@@ -43,6 +43,7 @@ dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.navigation.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.graphics)
@@ -56,4 +57,4 @@ dependencies {
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)
}
}