Guia de Setup — Pasta Federal-App (Cliente)

Comandos corrigidos para Prompt de Comando (CMD) e PowerShell sem erros de sintaxe.

1. Opção A: Prompt de Comando Padrão (CMD do Windows)

Use este bloco caso esteja utilizando o terminal CMD tradicional (Prompt de Comando):

if not exist "Federal-App" mkdir "Federal-App"
cd "Federal-App"

echo 1. Atualizando CLI do Expo e EAS...
npm install -g expo-cli eas-cli

echo 2. Instalando nucleo Expo SDK 57...
npx expo install expo@~57.0.0 react@18.3.1 react-native@0.76.7

echo 3. Instalando componentes de Navegacao e UI...
npx expo install expo-router react-native-safe-area-context react-native-screens expo-linking expo-constants expo-status-bar react-native-gesture-handler react-native-reanimated

echo 4. Instalando utilitarios visuais e suporte a Web...
npx expo install expo-font expo-image expo-splash-screen expo-system-ui expo-web-browser expo-build-properties

echo 5. Instalando modulos do cliente (Localizacao, Notificacoes, Camera e Auth)...
npx expo install expo-location expo-notifications react-native-webview expo-image-picker expo-local-authentication

echo 6. Instalando armazenamento de sessao e credenciais...
npx expo install @react-native-async-storage/async-storage expo-secure-store

echo 7. Instalando tipos do TypeScript...
npm install -D typescript @types/react @types/react-native

echo 8. Executando verificacao de compatibilidade...
npx expo install --fix

2. Opção B: PowerShell do Windows

Use este bloco apenas se tiver aberto o terminal do PowerShell:

if (!(Test-Path -Path "Federal-App")) { New-Item -ItemType Directory -Path "Federal-App" }
Set-Location -Path "Federal-App"

Write-Host "1. Atualizando CLI do Expo e EAS..." -ForegroundColor Cyan
npm install -g expo-cli eas-cli

Write-Host "2. Instalando nucleo Expo SDK 57..." -ForegroundColor Cyan
npx expo install expo@~57.0.0 react@18.3.1 react-native@0.76.7

Write-Host "3. Instalando componentes de Navegacao e UI..." -ForegroundColor Cyan
npx expo install expo-router react-native-safe-area-context react-native-screens expo-linking expo-constants expo-status-bar react-native-gesture-handler react-native-reanimated

Write-Host "4. Instalando utilitarios visuais e suporte a Web..." -ForegroundColor Cyan
npx expo install expo-font expo-image expo-splash-screen expo-system-ui expo-web-browser expo-build-properties

Write-Host "5. Instalando modulos do cliente..." -ForegroundColor Cyan
npx expo install expo-location expo-notifications react-native-webview expo-image-picker expo-local-authentication

Write-Host "6. Instalando armazenamento local..." -ForegroundColor Cyan
npx expo install @react-native-async-storage/async-storage expo-secure-store

Write-Host "7. Instalando tipos do TypeScript..." -ForegroundColor Cyan
npm install -D typescript @types/react @types/react-native

Write-Host "8. Executando verificacao de compatibilidade..." -ForegroundColor Cyan
npx expo install --fix

3. Configuração em `Federal-App/app.config.ts`

Crie este arquivo dentro da pasta Federal-App/app.config.ts:

import type { ExpoConfig } from 'expo/config';

const GOOGLE_REST_API_KEY = 'AIzaSyDZfT08g1v-fF2LeWD7uf8EsfmIUBqGMQE';

const config: ExpoConfig = {
  name: 'Federal App',
  slug: 'federal-app',
  version: '1.0.0',
  orientation: 'portrait',
  icon: './assets/images/icon.png',
  scheme: 'federalapp',
  userInterfaceStyle: 'light',
  primaryColor: '#208AEF',
  newArchEnabled: true,
  assetBundlePatterns: ['**/*'],

  ios: {
    bundleIdentifier: 'com.federalpro.appcliente',
    supportsTablet: false,
    infoPlist: {
      NSLocationWhenInUseUsageDescription:
        'O Federal App utiliza sua localização para definir o ponto de partida das viagens e entregas.',
      NSPhotoLibraryUsageDescription:
        'O Federal App acessa suas fotos para alteração da foto de perfil.',
      NSCameraUsageDescription:
        'O Federal App utiliza a câmera para leitura de QR Codes e foto de perfil.',
      NSFaceIDUsageDescription:
        'O Federal App utiliza o Face ID para acesso seguro à sua conta.',
      ITSAppUsesNonExemptEncryption: false,
    },
  },

  android: {
    package: 'com.federalpro.appcliente',
    adaptiveIcon: {
      backgroundColor: '#0F172A',
      foregroundImage: './assets/images/android-icon-foreground.png',
      backgroundImage: './assets/images/android-icon-background.png',
    },
    permissions: [
      'ACCESS_FINE_LOCATION',
      'ACCESS_COARSE_LOCATION',
      'READ_MEDIA_IMAGES',
      'USE_BIOMETRIC',
      'USE_FINGERPRINT',
      'POST_NOTIFICATIONS',
      'INTERNET',
    ],
  },

  plugins: [
    'expo-router',
    [
      'expo-splash-screen',
      {
        backgroundColor: '#208AEF',
        image: './assets/images/splash-icon.png',
        imageWidth: 80,
        resizeMode: 'contain',
      },
    ],
    'expo-font',
    'expo-secure-store',
    [
      'expo-location',
      {
        locationWhenInUsePermission:
          'O Federal App utiliza sua localização para definir o ponto de partida das suas corridas e entregas.',
      },
    ],
    [
      'expo-image-picker',
      {
        photosPermission:
          'O Federal App acessa suas fotos para alterar a foto do seu perfil.',
      },
    ],
    'expo-notifications',
  ],

  experiments: {
    typedRoutes: true,
    reactCompiler: true,
  },

  extra: {
    google: {
      restApiKey: GOOGLE_REST_API_KEY,
      restBaseUrl: 'https://maps.googleapis.com/maps/api',
    },
    apiBase: 'https://federalpro.com.br/backend/api',
    eas: {
      projectId: 'SUBSTITUA_PELO_SEU_EAS_PROJECT_ID',
    },
  },
};

export default config;