3 terribles erreurs des développeurs iOS

Le codage d'une application iOS est un travail difficile. Il est donc logique que les développeurs souhaitent réduire les coûts et trouver le moyen de mettre leur application en ligne le plus rapidement possible. Mais une application performante sera présente pendant longtemps, ce qui signifie des années de résolution de bugs, d'améliorations de fonctionnalités et de collaboration avec d'autres codeurs.. 

Dans cet article, je vais vous expliquer trois choses à éviter pendant le développement iOS, ce qui facilitera la création et la maintenance de vos applications..

1. Ne pas avoir peur des constantes

Bien qu'il semble que les variables soient plus polyvalentes que les constantes, il n'est toujours pas judicieux de passer par défaut à des variables lorsque vous pouvez utiliser une constante à la place. Alors, quel est l'avantage des constantes? Un certain nombre de choses, en fait!

Lisibilité

Une des meilleures choses à propos des constantes est leur lisibilité. Prenons un exemple: vous écrivez une application de type e-commerce. Vous voudrez peut-être ajouter un taux de taxe de vente locale de 8,75%, mais les autres développeurs ne savent pas ce que ce chiffre signifie. Regardons un exemple: 

Steven, un développeur nommé dans votre équipe, est un ninja du code, mais il vit dans un pays d'outre-mer. Dans ce pays, la taxe de vente n’existe pas (chanceux Steven), et par conséquent, il ne sait rien à ce sujet.. 

Si vous utilisiez une variable pour votre taux de taxe de vente, il pourrait la modifier en une seule ligne de code, ce qui pourrait nuire gravement à votre application. Il suffit de changer le mot clé de var à laisser le compilateur lui dirait que la valeur ne peut pas être changée et il comprendrait que vous aviez l'intention que ce soit immuable.

Référence de valeur

Une autre façon que laisser Il est utile de faire référence à une valeur dans votre code. Si vous créez une application, vous souhaiterez peut-être un certain jeu de couleurs. Au lieu de copier-coller vos couleurs là où elles sont nécessaires, vous pouvez utiliser une constante pour faire référence à cette couleur spécifique.

De cette façon, si vous deviez changer de couleur, il vous suffirait de la changer à un endroit au lieu de chercher chaque référence à la couleur et de la changer plusieurs fois..

Instanciation de classe ou de structure 

Lorsque vous créez un singleton, vous devez également créer une instance partagée de la classe. Vous le feriez généralement en déclarant un laisser statique à l'intérieur de la déclaration de classe. Ensuite, vous devez nommer la constante, l'attribuer à une instance de la classe et l'utiliser dans l'ensemble de votre application..

De plus, si vous aviez besoin d’instancier (créer une instance de) une classe régulière, peut-être dans ViewController.swift, vous créeriez une constante et l'affecteriez à une instance de la classe de votre choix, vous laissant ainsi une référence dont vous pourrez facilement tirer parti tout au long du fichier. Ceci est un autre grand usage des constantes.

Comme vous pouvez le constater, les constantes sont excellentes pour de nombreuses raisons. Ils améliorent la lisibilité du code, ils sont utiles pour stocker des valeurs immuables et, de toute évidence, ils ne sont pas aussi inutiles que vous le pensez. Faites-vous une faveur en prenant l'habitude d'utiliser des constantes chaque fois que cela est possible, et ne les changez en variables que si vous devez absolument changer leurs valeurs, cela fera de vous un meilleur programmeur..

2. Ne pas forcer les options optionnelles

Les options sont une fonctionnalité très puissante de Swift. Ce sont juste des types comme int et Chaîne, annoté par un point d'interrogation après la déclaration de type. Si vous voulez déclarer une variable en tant que chaîne facultative, vous n'avez qu'à écrire:

var someVariable: String?

Cela indique au compilateur qu'il peut y avoir une valeur ou qu'il peut ne pas y en avoir du tout.. Chaîne? et Chaîne sont considérés comme deux types différents.

Pensez aux optionnels comme un coffret cadeau. Comme je l'ai mentionné, ce coffret cadeau peut avoir ou non une valeur, et si vous souhaitez le savoir, vous devez d'abord en emballer le papier facultatif. Il y a plusieurs façons de le faire:

La mauvaise direction

Déballage forcé

Cette opération (effectuée à l'aide d'un point d'exclamation) est appelée l'opérateur Bang. Ne l'utilisez pas! Forcer le décompression de vos variables n’est jamais une bonne idée. Si la valeur de l'option que vous essayez de décompresser est nulle (rien), votre application va se bloquer, et qui le souhaite? Quoi qu'il en soit, regardons le bloc de code suivant:

var someVariable: String? var quelque choseElse: String = "hello" func setupApp () self.somethingElse = self.someVariable! 

Dans cet exemple, l'application se bloquerait, car nous n'avons jamais défini de valeur pour un peu variable, et nous essayons de l'assigner à une variable de type Chaîne. Cela va à l’encontre du but des options, qui sont là pour nous protéger des erreurs comme celle-ci.! 

Regardons quelques-unes des manières correctes de gérer cette même situation.

Le droit chemin

Reliure optionnelle 

C'est l'une des méthodes les plus populaires de traitement des optionnels. Dans cette méthode, vous affectez simplement une valeur facultative à une constante à l'aide d'un si déclaration. Si l'option est dissociée, le compilateur entre dans la fermeture et vous pouvez utiliser la constante créée. Sinon, vous tombez dans un autre déclaration et prétendre que rien ne s'est passé. Regardons un exemple de ceci:

var someVariable: String? var quelque choseElse: String = "hello" func setupApp () si laissez theThing = someVariable self.somethingElse = self.someVariable!  else print ("error")

En utilisant le même exemple que la dernière fois, mais avec une liaison facultative, nous pouvons voir qu'au lieu de planter, le compilateur saisit l'instruction else et affiche "l'erreur".

Chaînage optionnel

Le chaînage facultatif est un autre moyen courant de dérouler les options en toute sécurité. C'est un excellent moyen d'éviter les valeurs nulles proprement et dans une ligne de code. Lorsque vous utilisez cette méthode et que vous rencontrez une valeur nulle, cette ligne de code cesse simplement de s'exécuter. Voici un exemple de ceci:

var une classe: une classe? = SomeClass () var quelque chose d'Else: String? func setupApp () self.somethingElse = uneClasse? .createString ()

Fondamentalement, si une classe est nul, la ligne entière ne s'exécutera pas et la valeur de autre chose deviendra nul. S'il existe une valeur, comme dans l'exemple ci-dessus, elle sera affectée à la variable autre chose. Dans les deux cas, l'application ne plantera pas.

Nulle coalescence

Cette méthode gère les options avec une seule ligne, mais contrairement à la méthode ci-dessus, vous avoir besoin de fournir un cas par défaut ou "else" (dans le cas où l'option s'avèrerait être nulle). Regardons un exemple:

var someVariable: String? var quelque choseElse: String = "hello" func setupApp () self.somethingElse = someVariable ?? "Erreur" 

Bien que cela puisse sembler un peu cryptique, cela signifie simplement que si l’instruction de gauche a une valeur (en d’autres termes n’est pas nulle), elle sera utilisée. Si nil est défini, l'instruction par défaut sera utilisée - dans ce cas, une chaîne codée en dur. Il convient de noter que la déclaration de droite doit être de type non nul et non facultatif (sinon, le but de cette opération serait vaincu).

3. Ne pas ignorer l'architecture

Une autre erreur courante est de ne pas structurer votre code de manière à ce qu’il soit durable, maintenable et efficace. Beaucoup de gens entassent tout leur code dans leur ViewController classes, et cela peut rendre votre code difficile à changer et à déboguer.

Aussi cliché que cela puisse paraître, ceci constitue le fondement de la programmation de votre application. Disons que vous construisez une maison, la maison de vos rêves. Cette maison a cinq étages, donc si vous ne construisez pas une base solide et ne suivez pas les plans, elle basculera probablement.

Le modèle de conception que vous choisissez constitue le fondement d'une application iOS. Regardons deux des modèles les plus couramment utilisés.

MVC (Model-View-Controller)

Le modèle de conception Model-View-Controller ou MVC sépare chaque partie de votre code en trois parties: le modèle, la vue et le contrôleur.. 

  • Modèle: Le modèle est essentiellement les données de l'application. Cela gère des choses comme les structures réutilisables et les classes qui traitent seulementavec les données de l'application. Le modèle ne fait pas gérer tout ce qui concerne la vue ou la manière dont les informations seront montrées à l'utilisateur.
  • Vue: La vue est uniquement responsable de la représentation visuelle des données et gère également les interactions de l'utilisateur. Il ne fait pastraiter quoi que ce soit concernant les données, il ne traite pas des vues spécifiques. C'est simplement une classe réutilisable qui peut être utilisée plusieurs fois sans répéter le code.
  • Manette: Le contrôleur est le patron. Il apporte les données du modèle, puis les envoie à la vue pour les afficher à l'utilisateur. Ceci est typiquement dans ViewController.swift, et il écoute et modifie le modèle selon les besoins.

Il y a beaucoup de variations de ceci, telles que MVVM et MVP. Il vaut la peine de les lire,mais le principe est similaire à MVC, donc nous ne les couvrirons pas ici. Ce sont tous des modèles de conception qui rendent notre code modulaire.. 

Regardons un autre modèle qui peut compléter le modèle d'application que vous choisissez d'utiliser.

Singletons

Un singleton est une instance unique d'une classe présente à tout moment en mémoire. Alors, pourquoi nous en soucions-nous? Eh bien, disons que vous construisez une application qui se connecte à une base de données. Vous avez besoin d'un emplacement pour mettre toutes vos connexions de service de données. Ce serait un endroit parfait pour utiliser singletons. Regardez le code ci-dessous. il va vous montrer comment construire un singleton:

// Déclaration de classe DataService static var shared = DataService () func createUser ()  // Site d'appels DataService.shared.createUser ()

Si vous suivez ces simples conseils, votre application sera plus facile à gérer et les bogues plus faciles à détecter avant vos clients..

Conclusion

Dans cet article, les développeurs d'applications iOS ont commis trois erreurs qui sembleraient peut-être rendre le codage plus facile, mais coûtaient en réalité beaucoup plus de travail à long terme.. 

N'oubliez pas que la création d'une application ne représente qu'une partie du défi. Vous devez également corriger les bogues, ajouter des fonctionnalités et partager le code avec d'autres développeurs. Le respect des meilleures pratiques, telles que l’utilisation de constantes, la gestion correcte des options et l’utilisation de modèles d’architecture facilitera la création et la maintenance de votre application..

Pendant que vous êtes ici, consultez certains de nos autres articles sur le développement d'applications iOS.!