- App.tsx: full navigation (Auth stack + Main tabs with 5 screens) - Auth: LoginScreen, RegisterScreen, ForgotPasswordScreen - HomeScreen: dashboard with IoT metrics, weather widget, alerts, quick actions, sensors - MapScreen: interactive map with layer toggles (6 layers) - MarketplaceScreen: categories (6), products (5), search - ChatScreen: AI chat with quick prompts (4), bot responses - ProfileScreen: user info, stats, menu (9 items), logout - AlertsScreen: alert list with severity, acknowledge - SensorsScreen: sensor list with type filters (6 types), search - ZonesScreen: zone cards with stats - SettingsScreen: language picker (FR/EN/ES/DE), privacy, about - Stores: iotStore (sensors, zones, alerts), notificationStore, uiStore + i18n - Hooks: useSensors, useAlerts, useNotifications, useLocation - Components: Card, Button, LoadingSpinner, ErrorBoundary, Header - Services: iotService, notificationService (with axios API client) - Utils: formatters (temp, AQI, noise, dates), validators (email, password, IBAN) - Theme: colors.ts with full design system (Blue Ocean palette) - Ditto: fixed MongoDB connection, new JWT secrets, official gateway image
100 lines
2.8 KiB
Groovy
100 lines
2.8 KiB
Groovy
apply plugin: 'com.android.library'
|
|
|
|
// Import autolinking script
|
|
apply from: "../scripts/autolinking.gradle"
|
|
|
|
def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
|
|
apply from: expoModulesCorePlugin
|
|
applyKotlinExpoModulesCorePlugin()
|
|
useDefaultAndroidSdkVersions()
|
|
useExpoPublishing()
|
|
|
|
static def versionToNumber(major, minor, patch) {
|
|
return patch * 100 + minor * 10000 + major * 1000000
|
|
}
|
|
|
|
def getRNVersion() {
|
|
def nodeModulesVersion = providers.exec {
|
|
workingDir(projectDir)
|
|
commandLine("node", "-e", "console.log(require('react-native/package.json').version);")
|
|
}.standardOutput.asText.get().trim()
|
|
|
|
def version = safeExtGet("reactNativeVersion", nodeModulesVersion)
|
|
def coreVersion = version.split("-")[0]
|
|
def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() }
|
|
|
|
return versionToNumber(
|
|
major,
|
|
minor,
|
|
patch
|
|
)
|
|
}
|
|
|
|
ensureDependeciesWereEvaluated(project)
|
|
|
|
group = 'host.exp.exponent'
|
|
version = '51.0.39'
|
|
|
|
buildscript {
|
|
// Simple helper that allows the root project to override versions declared by this library.
|
|
ext.safeExtGet = { prop, fallback ->
|
|
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
}
|
|
}
|
|
|
|
android {
|
|
namespace "expo.core"
|
|
defaultConfig {
|
|
versionCode 1
|
|
versionName "51.0.39"
|
|
consumerProguardFiles("proguard-rules.pro")
|
|
}
|
|
testOptions {
|
|
unitTests.includeAndroidResources = true
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDirs += new File(project.buildDir, generatedFilesSrcDir)
|
|
|
|
def rnVersion = getRNVersion()
|
|
if (rnVersion >= versionToNumber(0, 74, 0)) {
|
|
srcDirs += "src/reactWrappers"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies { dependencyHandler ->
|
|
implementation 'com.facebook.react:react-android'
|
|
|
|
testImplementation 'junit:junit:4.13.2'
|
|
testImplementation 'androidx.test:core:1.5.0'
|
|
testImplementation "com.google.truth:truth:1.1.2"
|
|
testImplementation 'io.mockk:mockk:1.13.5'
|
|
|
|
// Link expo modules as dependencies of the adapter. It uses `api` configuration so they all will be visible for the app as well.
|
|
// A collection of the dependencies depends on the options passed to `useExpoModules` in your project's `settings.gradle`.
|
|
addExpoModulesDependencies(dependencyHandler, project)
|
|
}
|
|
|
|
// A task generating a package list of expo modules.
|
|
task generateExpoModulesPackageListTask {
|
|
def modulesConfig = getModulesConfig()
|
|
def outputPath = getGenerateExpoModulesPackagesListPath()
|
|
if (modulesConfig) {
|
|
outputs.file(file(outputPath))
|
|
inputs.property("modulesConfig", modulesConfig)
|
|
}
|
|
|
|
// TOOD(@lukmccall): fix not working with configuration cache enabled
|
|
doLast {
|
|
generateExpoModulesPackageList()
|
|
}
|
|
}
|
|
|
|
// Run that task during prebuilding phase.
|
|
preBuild.dependsOn "generateExpoModulesPackageListTask"
|