R.swift pour Swift : guide complet avec exemples
1. Qu'est-ce que R.swift et pourquoi l'utiliser ?
R.swift est une bibliothèque puissante pour le langage Swift qui offre un accès type-safe (sécurisé par le typage) aux ressources de vos applications iOS/macOS/tvOS/watchOS. Au lieu d'utiliser des chaînes de caractères littérales pour accéder aux images, polices, couleurs, chaînes localisées et autres ressources, R.swift génère des structures fortement typées pour celles-ci. Cela signifie que le compilateur peut vérifier la validité du nom de la ressource dès la compilation, et non pas seulement lors de l'exécution de l'application.
Pourquoi est-ce important ? Dans le développement Apple standard, vous écrivez souvent du code comme UIImage(named: "myImage") ou NSLocalizedString("hello_key", comment: ""). Si vous faites une faute de frappe dans le nom du fichier ou la clé de localisation, l'application plantera uniquement lors de l'exécution. R.swift résout ce problème de manière radicale : après la génération du code, vous accédez aux ressources comme à des propriétés de structures générées. Par exemple : R.image.myImage ou R.string.localizable.helloKey(). Le compilateur vous signalera immédiatement une ressource inexistante, et Xcode vous proposera l'autocomplétion.
De plus, R.swift gère automatiquement les catalogues d'actifs (Asset Catalogs), les fichiers .strings, .storyboard, .xib, .json, .plist, les polices, les couleurs et même les fichiers de données (Data). Cela rend le code plus propre, plus sûr et accélère considérablement le développement grâce à l'autocomplétion dans Xcode. La bibliothèque est activement maintenue par la communauté et utilisée dans des milliers de projets à travers le monde.
2. Installation
R.swift s'installe via Swift Package Manager (SPM) ou CocoaPods. Nous recommandons SPM, car c'est la norme moderne pour les projets Swift.
Installation via Swift Package Manager (SPM)
Ajoutez le paquet à votre projet via Xcode :
- Ouvrez votre projet dans Xcode.
- Allez dans File > Add Packages....
- Collez l'URL :
https://github.com/mac-cain13/R.swift - Sélectionnez la version (la dernière version stable est recommandée) et cliquez sur Add Package.
- Assurez-vous que le paquet est ajouté à votre cible principale.
Vous pouvez également l'ajouter manuellement dans Package.swift :
// swift-tools-version:5.7
import PackageDescription
let package = Package(
name: "YourProject",
dependencies: [
.package(url: "https://github.com/mac-cain13/R.swift", from: "7.0.0")
],
targets: [
.target(
name: "YourTarget",
dependencies: [
.product(name: "RswiftLibrary", package: "R.swift")
]
)
]
)
Installation via CocoaPods
Si vous utilisez CocoaPods, ajoutez ceci dans votre Podfile :
platform :ios, '13.0'
use_frameworks!
target 'YourApp' do
pod 'R.swift', '~> 7.0'
end
Exécutez ensuite la commande :
pod install
Configuration de la phase de build (obligatoire !)
Après l'installation, vous devez ajouter une Run Script Phase dans les Build Phases de votre cible :
- Allez dans Build Phases de votre cible.
- Cliquez sur + et sélectionnez New Run Script Phase.
- Déplacez cette phase pour qu'elle s'exécute avant la phase Compile Sources.
- Dans le champ du script, collez :
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift"
Si vous utilisez SPM, le script sera :
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/R.swift/rswift" generate "$SRCROOT/R.generated.swift"
Après la compilation du projet, le fichier R.generated.swift sera généré. Ajoutez-le à votre projet (n'oubliez pas de le glisser-déposer dans le navigateur de projets Xcode).