Objective-C et l'arrivée de Swift
Objective-C est un langage de programmation orienté objet, qui est une extension du langage C¹. De 1997 jusqu’en 2014, Objective-C était le langage principalement utilisé pour développer des applications sur macOS et, plus tard aussi, sur iOS².
Avec l’arrivée de Swift en 2014, Objective-C est de nos jours en train de se faire progressivement remplacer par son successeur. Son successeur, étant un langage plus moderne, offre plusieurs avantages aux développeurs, le rendant ainsi plus attrayant qu’Objective-C. L’un des avantages les plus évidents est le fait que Swift offre une syntaxe beaucoup plus simple et intuitive, rendant celui-ci plus facile à apprendre et utiliser qu’Objective-C³.
Claire comparaison de la syntaxe des deux langages tirée de AppCoda³ :
Objective-C :
const int count = 10;
double price = 23.55;
Swift :
let count = 10 <br>
var price = 23.55
Abordons d’abord la déclaration des types, pour des constantes ou variables. Chez Objective-C, contrairement à Swift, il n’y a pas d’inférence de type, ce qu’il veut dire qu’il est nécessaire de déclarer le type de manière explicite. Avec Swift, déclarer une variable sans mentionner le type n’est pas nécessaire, puisque le compilateur va automatiquement déterminer celui-ci. Cela ne veut pas dire que Swift n’offre pas la sécurité de type. En effet, il n’est pas possible de passer, par exemple, une valeur Int à une variable qui a un type String⁴.
Objective-C :
NSString *swift = @"Swift vs";
NSString *objectivec = @"Objective-C";
NSString *message = [NSString stringWithFormat:@"%@%@", swift, objectivec];
NSLog(@"%@", message);
Swift :
let swift = "Swift vs"
let objectivec = "Objective-C"
var message = swift + objectivec
print(message)
Ensuite, parlons de l’éléphant qui se trouve dans la comparaison précédente : la syntaxe d’Objective-C. Celle-ci est simplement trop complexe si l’on compare avec Swift, qui lui offre une syntaxe beaucoup plus facile à lire et à apprendre. Un développeur, comme vous et moi, qui voudrait pouvoir développer sur iOS serait plus incité à utiliser un langage moderne, facilement lisible et utilisable, offrant une syntaxe très simple, comme d’autres langages, tels que Kotlin ou Python⁵.
SwiftUI vs UIKit
UIKit est arrivé en 2008, développé avec et fait pour être initialement utilisé avec Objective-C, mais peut aussi être utilisé avec Swift. Ce framework d’interface utilisateur, étant beaucoup plus vieux que SwiftUI, est ainsi plus stable, offre plus de fonctionnalités et a une documentation plus complète et approfondie⁶. En effet, UIKit offre plus de support d’API externes et de composants UI et est compatible avec plus de plateformes, spécifiquement plus vieilles. UIKit offre aussi un éditeur nommé Interface Builder permettant de créer des interfaces utilisateur sans écrire du code, de manière simple et intuitive⁷ ⁸.
SwiftUI reste tout de même plus simple à apprendre et permet une prévisualisation en direct des modifications apportées sur l’interface⁸. Dans le prochain blogue de la semaine prochaine, où l’on va créer une application simple iOS, nous allons utiliser fort probablement SwiftUI, puisqu’il est plus facile à utiliser et à comprendre. Cependant, il est toujours possible que d’autres blogues qui suivront puissent porter sur UIKit, puisqu’il reste très pertinent, même aujourd’hui suite à la popularisation de SwiftUI.
1 : Tietalent, « Qu'est-ce que l'Objective-C ? », s.d., https://tietalent.com/fr/skills/objective-c
2 : Wikipédia, « Objective-C », s.d., https://en.wikipedia.org/wiki/Objective-C
3 : AppCoda, « Your First Taste of Swift with Playgrounds », s.d., https://www.appcoda.com/learnuikit/playgrounds.html
4 : Swift, « Type Safety and Type Inference », s.d., https://docs.swift.org/swift-book/documentation/the-swift-programming-language/thebasics/#Type-Safety-and-Type-Inference
5 : Aleksander POPKO, « Objective-C vs Swift: iOS Comparison [2024 Update] », dans Netguru, 27 novembre 2024, https://www.netguru.com/blog/objective-c-vs-swift
6 : Dedan NDUNGU, « SwiftUI vs. UIKit: What is the best choice for building an iOS user interface in 2024? », dans Sendbird, 2024, https://sendbird.com/developer/tutorials/swiftui-vs-uikit
7 : Bryan (sans nom), « SwiftUI ou UIKit : lequel choisir ? », dans Ambient IT, 15 mai 2024, https://www.ambient-it.net/swiftui-vs-uikit/
8 : Noéline PAGESY, « UIKit et SwiftUI : quel est le meilleur choix pour développer ses interfaces sur iOS ? », dans Inside App, s.d., https://www.insideapp.fr/publications/uikit-swiftui.html
Commentaires