Analyse des Types de Données avec ParseSwift sur iOS
Lors de l'enregistrement de données sur une base de données Back4App, chaque entité est stockée sous forme de paires clé-valeur. Le type de données pour le champ valeur va des fondamentaux (tels que String, Int, Double, Float, et Bool) à des structures plus complexes. La principale exigence pour stocker des données sur une base de données Back4App est que l'entité doit se conformer au ParseSwift protocole. À son tour, ce protocole fournit un ensemble de méthodes pour stocker, mettre à jour et supprimer toute instance d'une entité.
Dans ce guide, vous apprendrez comment créer et configurer une entité pour l'enregistrer sur votre base de données Back4App. Dans l'exemple de projet, l'entité que nous stockons contient des informations sur une recette.
Ce tutoriel utilise une application de base créée dans Xcode 12 et iOS 14.
À tout moment, vous pouvez accéder au projet complet via nos dépôts GitHub.
Pour comprendre comment les objets sont analysés et stockés dans une base de données Back4App.
Pour compléter ce guide rapide, vous avez besoin de :
- Xcode.
- Une application créée sur Back4App.
- Suivez le tutoriel de nouvelle application Parse pour apprendre à créer une application Parse sur Back4App.
- Remarque : Suivez le tutoriel d'installation du SDK Parse (Swift) pour créer un projet Xcode connecté à Back4App.
La fonctionnalité de l'application est basée sur un formulaire où l'on peut entrer des informations sur une recette. En fonction des informations, le type de données peut varier. Dans notre exemple, la recette a les caractéristiques suivantes :
Champ | Type de données | Description |
---|---|---|
Nom | Chaîne | Nom de la recette |
Portions | Int | Nombre de portions |
Disponible | Bool | Détermine si la recette est disponible ou non |
Catégorie | Catégorie | Une énumération personnalisée qui classe une recette en trois catégories : Petit-déjeuner, Déjeuner et Dîner |
Ingrédients | [Ingrédients] | L'ensemble des ingrédients contenus dans une structure customIngredient** ** |
Options latérales | [Chaîne] | Noms des options supplémentaires avec lesquelles la recette est fournie |
Informations nutritionnelles | [Chaîne:Chaîne] | Un dictionnaire contenant des informations sur le contenu nutritionnel de la recette |
Date de sortie | Date | Une date indiquant quand la recette était disponible |
De plus, il existe d'autres types de données qui sont utilisés pour implémenter des fonctionnalités de base de données comme la relation entre les objets. Ces types de données ne sont pas couverts dans ce tutoriel.
Étant donné un objet, disons Recette, si vous souhaitez l'enregistrer dans une base de données Back4App, vous devez d'abord faire en sorte que cet objet soit conforme au protocole ParseSwift (disponible via le SDK ParseSwift).
Avant de stocker des instances de cet objet dans une base de données Back4App, toutes ses propriétés doivent être conformes aux protocoles Codable et Hashable.
Nous utilisons les méthodes suivantes pour gérer ces objets sur la base de données Back4App :
Nous commençons par créer un nouveau projet XCode. Dans ce tutoriel, le projet devrait ressembler à ceci

À tout moment, vous pouvez accéder au projet complet via nos dépôts GitHub.
Allez dans Xcode et trouvez le fichier SceneDelegate.swift. Afin d'ajouter une barre de navigation en haut de l'application, nous configurons un UINavigationController comme contrôleur de vue racine de la manière suivante.
La classe du contrôleur de vue racine (RecipesController) pour le contrôleur de navigation est une sous-classe de UIViewController dans laquelle nous allons disposer un formulaire pour créer et mettre à jour des objets Recipe dans la base de données Back4App.
Les objets que vous souhaitez enregistrer dans votre base de données Back4App doivent se conformer au protocole ParseObject. Dans notre application Recipes, cet objet est Recipe. Par conséquent, vous devez d'abord créer cet objet. Créez un nouveau fichier Recipe.swift et ajoutez ce qui suit.
où nous avons déjà ajouté toutes les propriétés nécessaires à Recipe selon le tableau des caractéristiques des recettes.
Le type de données Ingredient est une structure contenant la quantité et la description de l'ingrédient. Comme mentionné précédemment, ce type de données doit se conformer aux protocoles Codable et Hashable pour faire partie des propriétés de la recette.
De plus, la propriété category dans Recipe a une énumération (Category) comme type de données qui se conforme également aux protocoles correspondants.
Dans RecipesController, nous devrions mettre en œuvre toute la configuration nécessaire pour la navigationBar et le formulaire utilisé pour capturer toutes les propriétés de la recette. Ce tutoriel ne couvre pas comment mettre en œuvre la mise en page du formulaire. Nous nous concentrons ensuite sur la logique liée à la gestion des types de données en utilisant le SDK ParseSwift. Ci-dessous, nous soulignons les points clés dans RecipesController qui nous permettent de comprendre comment nous mettons en œuvre la connexion entre l'interface utilisateur et les données provenant de votre base de données Back4App.
Dans un fichier séparé (appelé RecipesController+ParseSwiftLogic.swift), en utilisant une extension, nous implémentons maintenant les méthodes handleSaveRecipe(), handleUpdateRecipe() et handleUpdateRecipe() pour gérer les données d'entrée.
Avant d'appuyer sur le bouton exécuter dans XCode, n'oubliez pas de configurer votre application Back4App dans la classe AppDelegate !
La première fois que vous exécutez le projet, vous devriez voir quelque chose comme ça dans le simulateur (avec tous les champs vides)

Maintenant, vous pouvez commencer à entrer une recette pour ensuite l'enregistrer dans votre base de données Back4App. Une fois que vous avez enregistré une recette, allez sur votre tableau de bord Back4App et allez dans votre application, dans la section Base de données, vous trouverez la classe Recette où toutes les recettes créées par l'application iOS.
En particulier, il convient de noter comment des types de données non fondamentaux comme Ingrédient, Recette.Catégorie ou les dictionnaires sont stockés. Si vous naviguez à travers les données enregistrées sous la classe Recette, vous constaterez que
- Le dictionnaire nutritionalInformation est stocké en tant qu'objet JSON.
- Le tableau [Ingrédients] est stocké en tant que tableau d'objets JSON.
- L'énumération Recette.Catégorie, puisqu'elle a un type de données entier comme RawValue, est transformée en un type de valeur Numérique.
- La propriété releaseDate, une valeur de type Date en Swift, est également stockée en tant que valeur de type Date.
Pour conclure, lors de la récupération des données de votre base de données Back4App, vous n'avez pas besoin de décoder tous ces champs manuellement, le SDK ParseSwift les décode automatiquement. Cela signifie que, lors de la création d'une requête (Query<Recette> dans ce cas) pour récupérer des données, la méthode query.find() analysera tous les types de données et objets JSON pour renvoyer un tableau de Recettes, il n'y a pas de procédure d'analyse supplémentaire à mettre en œuvre.