Retour aux articles
  • 23.03.2021

Développement iOS : Swift vs Objective-C

Développement iOS : Swift vs Objective-C

Quand tu commences à développer une application mobile pour les systèmes d'exploitation d'Apple, tu te demandes probablement si tu dois utiliser Swift ou Objective-C. 

 

Objective-C est utilisé par Apple depuis les années 90, alors que Swift est un langage de programmation créé par Apple en 2014 spécifiquement conçu pour développer des logiciels sur les systèmes d'exploitation d'Apple. 

 

Objective-C et Swift sont tous deux pris en charge par Apple. Ces deux langages de programmation orientés objet permettent de créer des applications iOS natives. 

 

 

Qu'est-ce que Objective-C ?

Objective-C est un langage de programmation orienté objet utilisé par Apple depuis les années 90. Il combine les avantages de deux langages antérieurs - C et Smalltalk.

En 1996, Apple a dépassé NeXT, dont les outils de développement utilisaient Objective-C. Ces outils ont ensuite été inclus dans Xcode. C'est ainsi qu'Apple a commencé à utiliser Objective-C pour le développement de Mac OS X. Objective-C est devenu le langage de premier choix pour tous ceux qui voulaient créer une application pour OS X et iOS.

Objective-C est né dans les années 80. Le langage développé par l'Américain Brad Cox s'inspirait d'un autre langage orienté objet des années 70 : Smalltalk.

Objective-C est du C avec de nombreuses fonctionnalités, dont la programmation orientée objet (OOP). Tout comme le C ++ développé en 1979 par Bjarne Stroustrup. Ce langage hérite donc de la syntaxe de son prédécesseur, le C. Étant une stricte superposition de ce dernier, tout code écrit dans ce même langage peut donc être compilé par le compilateur Objective-C.

Qu'est-ce que Swift ?

Prédestiné à devenir un concurrent sérieux de l'Objective-C, Swift a été présenté pour la première fois lors de la conférence d'ouverture de la WWDC 2014 (Worldwide Developers Conference) d'Apple. Son développement a commencé en 2010 après la WWDC. La nouvelle version de Clang, le compilateur d'Apple, venait d'être présentée aux développeurs. 

Les langages C, C ++, et donc Objective-C, ne disposaient pas de protection mémoire. Les développeurs devaient donc se charger d'ajuster cet état de fait lorsqu'ils lisent ou envoient des données en écriture. Il n'était donc pas rare de constater une instabilité dans les applications ou une fuite de mémoire en cas d'erreur dans le code. 

Cette fonction du compilateur vérifie la bonne utilisation de la mémoire dans le code, mais elle est toujours basée sur le langage C. En avril 2011, Apple a finalement mis en place une équipe pour le développement de son nouveau langage iOS App Development. Plusieurs lignes de code et de documentation réalisées au cours du développement, pour donner plus tard naissance à Swift.

Swift vs Objective-C

Swift vs Objective-C : Environnement de développement

L'environnement de développement est l'endroit où la magie opère. Il est important de savoir s'il existe un environnement facile à utiliser, quel est son coût et s'il existe des solutions alternatives sur le marché.

Si tu utilises Objective-C pour développer une application iOS ou OS X, tu utiliseras très probablement l'IDE Xcode. Il existe d'autres environnements disponibles comme AppCode ou Visual Studio Code de Microsoft, mais ils ont besoin de Xcode en dessous pour fonctionner correctement.

Xcode fournit des kits de développement logiciel qui offrent pratiquement tout ce dont on a besoin pour développer des applications iOS. Outils, compilateurs, API et frameworks. Il existe des éléments personnalisés pré-construits à utiliser dans le développement de l’application.

Ce n'est cependant pas la seule différence concernant l'environnement de développement. Il existe également un outil appelé Swift Playgrounds. Cet outil peut être utilisé pour apprendre à coder en Swift, mais aussi comme un environnement permettant de tester de petites parties de code sans avoir à compiler tout le code et à créer une application complète. 

Avec Swift, il est possible de travailler dans le même environnement que l'Objective-C mais tu as également accès à des solutions plus récentes qui augmentent les possibilités de développement. 

Swift vs Objective-C : Interface utilisateur de l'APP

La grande différence réside dans la compatibilité avec iOS et la facilité de développement de l'interface utilisateur.

Objective-C est assez vieux, de sorte que ton application fonctionnera sur toutes les versions d'iOS disponibles. Swift, en revanche, nécessite au moins iOS 7. Cela signifie qu’une analyse des appareils des utilisateurs doit être faite avant de décider si on veut se limiter aux iPhones et iPads sortis après 2013. 

En ce qui concerne la facilité de développement de l'interface utilisateur, Apple a introduit SwiftUI. Il permet de créer très facilement des interfaces utilisateur natives pour toutes les plateformes Apple. Tu peux assembler l’UI en écrivant le code ou en ajustant l'aperçu. Les modifications sont visibles à la fois dans le code et dans l'aperçu.

Swift vs Objective-C : Performance

Apple affirme que Swift est 2,6 fois plus rapide qu'Objective-C. 

Même si Apple a équipé l'Objective-C d'un ramasse-miettes, il n'est toujours pas aussi efficace qu'un code Swift bien écrit. Une syntaxe plus simple et une vérification des types au moment de la compilation permettent à Swift de surpasser l'Objective-C. Pour optimiser la gestion de la mémoire, Swift utilise l'ARC (Automatic Reference Counting). Swift prend en charge les bibliothèques dynamiques, qui améliorent également les performances des applications.

Swift vs Objective-C : Vitesse de codage

La vitesse de codage influe sur le coût global de la création d'une application et raccourcit les délais de mise sur le marché. Bien qu'Objective-C et Swift soient tous deux des langages natifs d'iOS, ils ne se ressemblent pas. Swift est un langage beaucoup plus moderne. Il est également plus convivial grâce à une syntaxe plus simple. Cela signifie qu'il est également plus facile à apprendre.

La réduction du nombre de lignes de code permet non seulement d'accélérer le processus de développement, mais aussi de réduire le nombre d'erreurs et de réaliser des tests plus rapides et moins coûteux.

Swift vs Objective-C : Boîtes à outils

L'environnement de développement standard n'est généralement pas suffisant pour un développement complexe. Pour assurer un confort suffisant, les développeurs utilisent des boîtes à outils supplémentaires. 

En raison de la longue histoire de l'Objective-C, on peut trouver de nombreux outils fournis par Apple et quelques sociétés tierces. 

Swift étant un langage open-source, il est extrêmement facile de trouver des outils fournis par des sociétés tierces et des contributeurs pour ce langage. En outre, Apple met à disposition un large éventail d'outils pour améliorer les performances de développement. Récemment, la société a annoncé des outils tels que PencilKit, qui prend en charge Apple Pencil, SiriKit, qui prend en charge les applications tierces avec l'assistant d'Apple, ou MapKit, qui accroît les possibilités d'ajustement de l'interface utilisateur.

Swift vs Objective-C : Documentation

L'importance de la documentation ne peut être surestimée. 

Les deux langages disposent d'une vaste documentation. Objective-C principalement parce qu'il existe depuis plus de 30 ans maintenant. 

La documentation de Swift est constamment mise à jour. Tu trouveras davantage de nouvelles ressources pour ce langage. 

Swift vs Objective-C : Communauté

Bien qu'Objective-C soit toujours soutenu par Apple, il n'a jamais été un langage open-source. Swift, au contraire, est open-source, ce qui te permet de voir en détail comment il fonctionne et d'en comprendre les rudiments de manière plus approfondie. 

Alors qu'Objective-C a une communauté vieille de plus de 30 ans, sa population va diminuer. Les débutants ont tendance à apprendre Swift à la place et chaque année. La communauté des développeurs Swift est très importante.

Apple a tendance à pousser ses derniers produits et innovations. Si Objective-C est toujours pris en charge par Apple, la société promeut et encourage l'utilisation de Swift. Si l'utilisation de l'Objective-C pour le développement d’applications présente encore quelques avantages, ceux-ci continueront de s'amenuiser avec le temps, Swift devenant le langage dominant et le plus populaire pour les applications Apple.