iOS-quickstart
Binnen een paar minuten leest je iOS-app een echte feature flag — met caching, offline-fallback en de apparaatidentiteit voor je geregeld.
Vereist iOS 17, macOS 14 of visionOS 1. De SDK heeft zelf geen dependencies.
1. Installeren
Section titled “1. Installeren”De SDK is pre-release en zijn repository is nog niet publiek. Heeft je team toegang gekregen, installeer hem dan als Swift Package; de coördinaten hieronder zijn waar hij leeft.
Voeg het package toe in Xcode (File → Add Package Dependencies…) of in
Package.swift:
.package(url: "https://github.com/FortressFlag/FortressFlag_SDK_ios.git", from: "0.1.0")2. Start de SDK
Section titled “2. Start de SDK”Eén keer, bij het opstarten — voor SwiftUI is de init van je App de natuurlijke plek:
import FortressFlag
FortressFlag.start( Configuration( sdkKey: "ffc_prod_…", // van het SDK-sleutelscherm van je project environment: .production, keychainAccessGroup: "com.acme.fortressflag" // dezelfde string in elke app die je uitbrengt ))start keert terug zodra gecachte waarden zijn geladen, en de SDK polt vanaf dan op de
achtergrond naar wijzigingen. De sleutel is een clientsleutel — hij
gaat by design mee in je app.
3. Lees een flag
Section titled “3. Lees een flag”Overal, ook binnen een SwiftUI-body:
if FortressFlag.isEnabled("new-checkout") { NewCheckoutView()} else { LegacyCheckoutView()}String- en number-flags lees je op dezelfde manier —
FortressFlag.stringValue("checkout-cta", default: "buy-now") — en met
FortressFlag.onChange kun je op wijzigingen letten.
Dat is het — je flag is live. Zet hem om in het dashboard en de app volgt binnen zijn volgende poll.
Als FortressFlag plat ligt, ligt jouw app dat niet
Section titled “Als FortressFlag plat ligt, ligt jouw app dat niet”Geen enkele aanroep in deze API throwt, blokkeert of kan je app laten crashen. Elke read resolvet via een cascade — de laatst ontvangen waarden, dan de duurzame cache van vorige runs, dan je standaard op de aanroepplek — zodat een storing, een dood netwerk of een ingetrokken sleutel je gebruikers nooit bereikt.
Stel keychain-deling in — het kost je geld om het niet te doen
Section titled “Stel keychain-deling in — het kost je geld om het niet te doen”FortressFlag factureert per apparaat, niet per app. Eén telefoon met drie van je apps is één seat — maar alleen als alle drie het eens zijn over één apparaatidentiteit, en dat betekent op iOS een gedeelde keychain access group:
- In elk app-target: Signing & Capabilities → + Capability → Keychain Sharing.
- Voeg dezelfde groep toe aan elk van je apps — bijvoorbeeld
com.acme.fortressflag. - Geef die string (zonder het teamvoorvoegsel) mee als
keychainAccessGroup.
Sla je dit over, dan werkt alles nog steeds, maar bewaart elke app zijn eigen identiteit: één apparaat telt als drie factureerbare apparaten. De SDK logt eenmalig een waarschuwing wanneer dat gebeurt.
Eén platformnotitie: de identiteit leeft in de keychain, dus op iOS overleeft hij het verwijderen van de app — en hij wordt nooit naar iCloud gesynchroniseerd, dus hij rijdt nooit via een back-up mee naar een tweede apparaat.
Een integratie debuggen
Section titled “Een integratie debuggen”Het package levert een tweede library, FortressFlagDebugUI, met FlagListView — een
SwiftUI-scherm dat elke flag toont die dit apparaat heeft, zijn waarde, en waar die vandaan
kwam, live. Het is het snelste antwoord op “praat de SDK überhaupt met de server?”.
Waar nu heen?
Section titled “Waar nu heen?”- Hoe flags je app bereiken — wat die achtergrondpoll doet
- Apparaatidentiteit en facturering — de identiteit die je zojuist configureerde
- Stel een percentage-rollout in — verscheep eerst naar 10%