Le langage de programmation Swift et le framework d'interface SwiftUI représentent une part de plus en plus importante d'iOS 15, mais ils sont encore très loin d'être majoritaires. Objective-C occupe toujours la part du lion et ce n'est pas près de changer avec iOS 16… ni même 17 ou 18 !
Le développeur Timac a livré son analyse annuelle des langages utilisés dans les binaires du système d'exploitation de l'iPhone. Il en ressort que dans iOS 15, 607 binaires ont été développées avec Swift (deux fois plus que dans iOS 14) et 114 l'ont été avec SwiftUI (quasiment trois fois plus que dans iOS 14).
Les applications pré-installées qui utilisent désormais SwiftUI sont donc plus nombreuses et surtout, ce ne sont pas d'obscures apps : Livres, Plans, Notes, Météo, Musique, Podcasts ainsi que certaines portions de FaceTime et des réglages s'appuient sur le framework d'interface. Ces logiciels s'ajoutent à Traduire, Raccourcis, Téléphone et à des parties de l'écran verrouillé et de l'assistant de connexion des AirPods qui utilisaient déjà SwiftUI.
Au vu de l'importance et de la popularité des applications ajoutées au tableau de chasse de SwiftUI, ce résultat est donc significatif et il démontre la souplesse et la puissance du framework. Le reste des binaires SwiftUI présents dans iOS 15 sont des widgets ou d'autres frameworks.
Tout cela est bel et bon, mais ces chiffres ne pèsent pas lourds face à Objective-C : 4 195 binaires ont été développés avec ce langage (soit 89%), pour 802 en C++ (17%) et 365 en C (8%). 13% des binaires reposent sur Swift, 2% sur SwiftUI. Le chemin sera donc très long avant que Swift renverse la vapeur et devienne le langage dominant dans iOS, ce d'autant que la part des binaires Objective-C progresse d'une année sur l'autre : ils étaient 88% dans iOS 14.
Toutefois, Swift poursuit son bonhomme de chemin en gagnant 5 points d'une année sur l'autre. Et si le langage lancé en 2014 a dépassé C en 2020, il est tout prêt d'en faire autant avec C++. C et C++ sont généralement utilisés dans des binaires liés à des fonctions bas niveau pour la téléphonie, l'audio, la vidéo, le web.