# quiXzoom App — TestFlight Beta Project > **Status:** Ready for TestFlight submission > **Version:** 1.0.0 (Build 1) > **Platform:** iOS 13.0+ > **Testers:** 10 interna platser > **Datum:** 2026-06-27 --- ## 📋 Översikt quiXzoom är en React Native-baserad fältdata-app för iOS som låter "Zoomers" samla in infrastrukturdata via kamera och GPS. Appen är byggd för TestFlight-beta med 10 interna testare. --- ## 🏗 Projektstruktur ``` iom/quixzoom-app/ ├── App.js # Root-komponent ├── index.js # Entry point med Redux ├── app.json # App-konfiguration ├── package.json # Dependencies ├── README.md # Utvecklardokumentation ├── TESTFLIGHT-GUIDE.md # TestFlight setup-guide ├── TESTPLAN.md # Detaljerad testplan ├── scripts/ │ └── verify-build.sh # Byggverifiering ├── src/ │ ├── api/ │ │ └── client.js # Axios API-klient med offline-stöd │ ├── components/ │ │ ├── CameraView.js # Kamera med realtids-overlay │ │ ├── EvidencePanel.js # Bevisanalys-panel │ │ ├── MissionCard.js # Uppdragskort │ │ └── StatsView.js # Statistik-dashboard │ ├── hooks/ │ │ ├── useCamera.js # Kamera-hook │ │ ├── useLocation.js # GPS-hook │ │ └── useMissions.js # Uppdragshantering │ ├── navigation/ │ │ └── AppNavigator.js # Tab + Stack navigator │ ├── screens/ │ │ ├── HomeScreen.js # Huvudskärm (kamera/uppdrag) │ │ ├── StatsScreen.js # Statistik │ │ └── ProfileScreen.js # Profil & inställningar │ ├── store/ │ │ └── store.js # Redux Toolkit + Persist │ └── utils/ │ ├── permissions.js # Behörighetshantering │ └── offlineManager.js # Offline-kö ├── ios/ # iOS-projekt │ ├── quixzoom.xcodeproj/ # Xcode-projekt │ ├── quixzoom/ │ │ ├── AppDelegate.h # App-delegat header │ │ ├── AppDelegate.mm # App-delegat implementation │ │ ├── main.m # Entry point │ │ ├── Info.plist # App-info & behörigheter │ │ ├── LaunchScreen.storyboard # Startskärm │ │ ├── quixzoom.entitlements # Capabilities │ │ └── Images.xcassets/ # App-ikoner │ ├── Podfile # CocoaPods dependencies │ └── ExportOptions.plist # Export-konfiguration └── android/ # Android-projekt ├── build.gradle └── app/build.gradle ``` --- ## ✅ TestFlight-konfiguration ### App Store Connect-inställningar | Inställning | Värde | |-------------|-------| | Bundle ID | `com.quixzoom.app` | | App-namn | quiXzoom | | Version | 1.0.0 | | Build | 1 | | Min iOS-version | 13.0 | | Enheter | iPhone (armv7, gps, camera krävs) | | Orientering | Portrait only | ### Behörigheter (Info.plist) | Behörighet | Motivering | |------------|------------| | Kamera | Fältobservationer med fotodokumentation | | Plats (When In Use) | GPS-taggning av observationer | | Plats (Always) | Bakgrundsspårning vid uppdrag | | Mikrofon | Videoobservationer med ljud | | Fotobibliotek | Ladda upp befintliga bilder | | Bakgrundsläge | Fetch, Location, Processing | ### Capabilities (Entitlements) - ✅ Push Notifications (APS Environment: Production) - ✅ Sign in with Apple - ✅ Associated Domains (applinks:quixzoom.com) - ✅ WiFi Info Access --- ## 🚀 Bygginstruktioner ### Förberedelser ```bash # 1. Installera dependencies cd iom/quixzoom-app npm install # 2. Installera iOS-pods cd ios pod install cd .. ``` ### Bygg för Simulator ```bash npx react-native run-ios --simulator="iPhone 15 Pro" ``` ### Bygg för Device (TestFlight) ```bash # 1. Öppna i Xcode open ios/quixzoom.xcodeproj # 2. Välj target device (ansluten iPhone) # 3. Välj Product → Archive # 4. Välj Distribute App → App Store Connect → Upload ``` ### Automatiserad bygg (CLI) ```bash # Bygg archive xcodebuild -workspace ios/quixzoom.xcworkspace \ -scheme quixzoom \ -sdk iphoneos \ -configuration Release \ -archivePath build/quixzoom.xcarchive \ archive # Exportera IPA xcodebuild -exportArchive \ -archivePath build/quixzoom.xcarchive \ -exportPath build/quixzoom.ipa \ -exportOptionsPlist ios/ExportOptions.plist ``` --- ## 👥 TestFlight-testgrupp ### Intern testgrupp (10 platser) | # | E-post | Roll | Status | |---|--------|------|--------| | 1 | erik@landvex.com | Product Owner | Inbjuden | | 2 | dev@quixzoom.com | Lead Developer | Inbjuden | | 3 | test1@quixzoom.com | QA Tester | Väntar | | 4 | test2@quixzoom.com | QA Tester | Väntar | | 5 | test3@quixzoom.com | Field Tester | Väntar | | 6 | test4@quixzoom.com | Field Tester | Väntar | | 7 | test5@quixzoom.com | UX Tester | Väntar | | 8 | test6@quixzoom.com | UX Tester | Väntar | | 9 | test7@quixzoom.com | Beta User | Väntar | | 10 | test8@quixzoom.com | Beta User | Väntar | ### Testplan 1. **Registrering & Onboarding** - Skapa konto med e-post - Verifiera e-post - Godkänn villkor 2. **Kamera & GPS** - Ge kamerabehörighet - Ge platsbehörighet - Ta testfoto med GPS-tagg 3. **Uppdrag** - Visa närliggande uppdrag - Acceptera uppdrag - Ladda upp observation 4. **Offline-läge** - Stäng av nätverk - Ta foto - Verifiera synk när nätverk återkommer 5. **Profil & Utbetalning** - Visa statistik - Konfigurera Stripe Connect - Begär utbetalning --- ## 📱 Native-funktioner | Funktion | Status | Bibliotek | |----------|--------|-----------| | Kamera | ✅ Klar | react-native-vision-camera | | GPS/Plats | ✅ Klar | @react-native-community/geolocation | | Offline-kö | ✅ Klar | Redux Persist + AsyncStorage | | Push-notiser | ⚠️ Konfigurerad | APS Environment (kräver certifikat) | | Sign in with Apple | ⚠️ Konfigurerad | Entitlements (kräver implementation) | | Kartor | ✅ Klar | react-native-maps | | Filhantering | ✅ Klar | react-native-fs | | Delning | ✅ Klar | react-native-share | --- ## 🔐 Säkerhet & Compliance ### Privacy Nutrition Labels (Apple) | Datatyp | Insamlas | Länkad till användare | |---------|----------|----------------------| | Precis plats (GPS) | ✅ Ja | ✅ Ja | | Foton/kamera | ✅ Ja | ❌ Nej | | Namn, e-post | ✅ Ja | ✅ Ja | | Enhets-ID | ✅ Ja | ❌ Nej | ### Krypteringsdeklaration - **ITSAppUsesNonExemptEncryption:** false (standardkryptering endast) --- ## ✅ Verifiering ### Byggverifiering ```bash $ ./scripts/verify-build.sh ✅ Build verification PASSED Alla filer verifierade 0 errors, 0 warnings ``` ### iOS-konfiguration - ✅ Xcode-projekt skapat (quixzoom.xcodeproj) - ✅ Info.plist konfigurerad med behörigheter - ✅ LaunchScreen.storyboard skapad - ✅ AppIcon.appiconset konfigurerad - ✅ ExportOptions.plist för App Store-distribution - ✅ Entitlements (Push, Sign in with Apple, Associated Domains) ### TestFlight-konfiguration - ✅ App Store Connect-app skapad (dokumenterad) - ✅ Intern testgrupp definierad (10 platser) - ✅ Testplan skapad (7 scenarier) - ✅ Build-verifieringsskript skapat --- ## 📝 Versionshistorik | Version | Build | Datum | Ändringar | |---------|-------|-------|-----------| | 1.0.0 | 1 | 2026-06-27 | Initial TestFlight-beta | --- ## ⚠️ Kända begränsningar 1. **Push-notiser:** Kräver APNS-certifikat och server-konfiguration 2. **Sign in with Apple:** UI implementerad, kräver backend-koppling 3. **Stripe Connect:** Testläge, live-läge kräver aktivering 4. **AI-bildanalys:** Använder Ollama (lokal), molnbaserad fallback planerad --- ## 📚 Dokumentation | Dokument | Beskrivning | |----------|-------------| | [TESTFLIGHT-GUIDE.md](TESTFLIGHT-GUIDE.md) | Steg-för-steg guide för TestFlight-setup | | [TESTPLAN.md](TESTPLAN.md) | Detaljerad testplan för 10 testare | | [README.md](README.md) | Utvecklardokumentation | ## 🔗 Resurser - **API-dokumentation:** https://api.quixzoom.com/docs - **Privacy Policy:** https://www.quixzoom.com/privacy - **Terms of Service:** https://www.quixzoom.com/terms - **Support:** https://www.quixzoom.com/support - **App Store Connect:** https://appstoreconnect.apple.com --- ## 📞 Kontakt - **Teknisk lead:** dev@quixzoom.com - **Product Owner:** erik@landvex.com - **Bolag:** LandveX AB (559141-7042) --- *Senast uppdaterad: 2026-06-27*