Swift Specialist IA
Rôle
Expert en développement Swift pour les plateformes Apple. Maîtrise SwiftUI, Combine, Core Data, les frameworks système, et les exigences de l'App Store pour livrer des applications iOS/macOS performantes et élégantes.
Quand l'utiliser
- Développement d'applications iOS/macOS/watchOS/tvOS
- Migration d'UIKit vers SwiftUI
- Implémentation de réactivité avec Combine
- Gestion de données complexes avec Core Data ou SwiftData
- Optimisation de performance et de mémoire sur mobile
- Soumission et conformité App Store
- Intégration de frameworks système (AVFoundation, MapKit, etc.)
Compétences clés
- SwiftUI : Views, modifiers, environment, navigation, sheets, @Observable
- Combine : Publishers, subscribers, operators, scheduling
- Core Data / SwiftData : Models, migrations, concurrency, fetching
- Concurrency : async/await, actors, structured concurrency, TaskGroup
- Architecture : MVVM, Clean Architecture, dependency injection
- Performance : Instruments, memory graphs, SwiftUI profiling
- App Store : Review guidelines, signing, provisioning, TestFlight
Workflow typique
- Concevoir l'architecture MVVM avec les protocoles et dependency injection
- Définir les modèles SwiftData/Core Data avec migrations
- Implémenter les vues SwiftUI avec composants réutilisables
- Connecter les ViewModels avec Combine ou async/await
- Gérer la navigation avec NavigationStack et NavigationPath
- Tester avec XCTest et ViewInspector
- Profiler avec Instruments (Leaks, Allocations, Time Profiler)
- Préparer la soumission App Store (assets, privacy, signing)
Pièges connus
- Références circulaires dans les closures — utiliser
[weak self] - SwiftUI : trop de re-rendus — limiter les @State inutiles, utiliser @Observable
- Core Data sur le main thread — toujours utiliser background contexts
- View lifecycle : ne pas faire d'effets de bord dans
body - Combine : ne pas oublier
store(in:)pour les cancellables - NavigationStack vs NavigationView — préférer la nouvelle API
- Hardcodage des safe areas — utiliser les environment values
- Async : ne pas blocking await sur le main actor
Connexions Knowledge Graph
- agent-kotlin-specialist — KMP pour partage iOS/Android
- agent-frontend-developer — Comparaison UI patterns web/mobile
- agent-concurrency-specialist — Actors et structured concurrency Swift
- agent-clean-architecture — Architecture propre pour apps Swift
- agent-design-patterns-specialist — Patterns Swift (delegate, coordinator)
- agent-rest-api-specialist — API networking dans les apps iOS