Les fonctionnalités basées sur la localisation sont devenues essentielles pour les applications mobiles modernes—du suivi des livraisons à la découverte des entreprises locales. MapKit fournit la base de ces expériences sur iOS, mais son implémentation traditionnelle nécessite des connaissances importantes en Swift ou Objective-C. Pour les équipes sans développeurs iOS dédiés, Adalo—un créateur d'applications sans code pour les applications web pilotées par une base de données et les applications iOS et Android natives publiées sur l'App Store Apple et Google Play—offre une alternative : des composants de carte glisser-déposer qui se compilent en code natif, Magic Start générant des fondations d'applications complètes incluant des fonctionnalités de localisation à partir d'une description simple.
Créer et publier avec Générateur d'applications iPhone d'Adalo.
Voici comment intégrer MapKit étape par étape si vous travaillez dans Xcode :
- Ajouter le framework MapKit: Activez la capacité « Cartes » dans Xcode ou liez manuellement
MapKit.frameworkdans votre projet. - Créer une vue de carte: Utilisez Interface Builder pour faire glisser une vue MapKit ou créer par programme un objet
MKMapView. - Définir les autorisations de localisation: Mettez à jour votre
Info.plistavec des clés commeNSLocationWhenInUseUsageDescriptionet configurez unCLLocationManagerpour demander l'accès. - Personnaliser la carte: Définissez une région avec
MKCoordinateRegion, ajoutez des annotations avecMKPointAnnotationet utilisez des superpositions pour les trajets ou les formes. - Tester sur les appareils: Les simulateurs sont utiles, mais les appareils physiques sont nécessaires pour vérifier les fonctionnalités comme le GPS et les cartes 3D.
MapKit simplifie l'ajout d'outils de cartographie puissants à votre application, mais une configuration appropriée, des autorisations et des tests sont essentiels pour un fonctionnement fluide et l' App Store approbation.
Pourquoi MapKit est important pour les créateurs d'applications
Les fonctionnalités basées sur la localisation sont devenues essentielles pour les applications mobiles modernes—du suivi des livraisons à la découverte des entreprises locales. MapKit fournit la base de ces expériences sur iOS, mais son implémentation traditionnelle nécessite des connaissances importantes en Swift ou Objective-C. Pour les équipes sans développeurs iOS dédiés, des plateformes comme Adalo offrent une alternative : des composants de carte glisser-déposer qui se compilent en code natif, Magic Start générant des fondations d'applications complètes incluant des fonctionnalités de localisation à partir d'une description simple.
Que vous codiez MapKit directement ou que vous utilisiez une plateforme assistée par l'IA, comprendre les concepts fondamentaux du framework vous aide à créer de meilleures expériences de localisation.
Configuration de MapKit dans votre projet

Ajouter le framework MapKit
Pour intégrer MapKit, ouvrez Xcode et accédez à l'onglet Signature et capacités de votre cible. Cliquez sur le bouton « + Capacité » et activez « Cartes » pour ajouter le framework automatiquement. Si vous préférez une configuration manuelle, accédez à Phases de compilation, développez Lier le binaire avec les bibliothèques, cliquez sur « + » et sélectionnez MapKit.framework dans la liste. Ensuite, incluez import MapKit en haut de vos fichiers Swift .
Créer une vue de carte
Il existe deux façons d'ajouter une vue de carte : via Interface Builder ou par programme.
- Utilisation d'Interface Builder : Faites glisser une vue MapKit dans votre storyboard ou fichier XIB. Ensuite, créez un
@IBOutletdans votre contrôleur de vue pour le lier. - Utilisation du code : Instanciez un objet
MKMapView, définissez sontranslatesAutoresizingMaskIntoConstraintspropriété àfalseet ajoutez-le en tant que sous-vue avec les contraintes de bord appropriées. AttribuezmapView.delegate = selfet assurez-vous que votre contrôleur de vue se conforme au protocoleMKMapViewDelegate.
Remarque : Apple déconseille de créer des sous-classes MKMapView. Au lieu de cela, intégrez-le directement dans votre hiérarchie de vues. Cela garantit la compatibilité avec les futures mises à jour et évite les problèmes potentiels.
Vérification de la compatibilité
Avant de commencer, assurez-vous que la cible de déploiement de votre app prend en charge les fonctionnalités de MapKit. Les fonctionnalités de base nécessitent iOS 7 ou une version ultérieure, mais les options avancées comme les contrôles 3D peuvent nécessiter des versions plus récentes. Vous pouvez vérifier cela sous General > Deployment Info. De plus, incluez la NSLocationWhenInUseUsageDescription clé dans le fichier Info.plist de votre app pour éviter les plantages lors de la demande d'accès à la localisation.
Pour les vérifications à l'exécution, utilisez la pitchEnabled propriété pour vérifier si l'appareil actuel et la configuration de la carte prennent en charge les vues 3D. Bien que vous puissiez tester le rendu de base de la carte dans le simulateur Xcode, utilisez toujours des appareils réels pour les fonctionnalités basées sur la localisation afin de garantir un comportement précis.
Une fois que tout est configuré, définissez les autorisations de localisation pour exploiter pleinement le potentiel de MapKit.
Prise en main de MapKit avec UIKit | Near Me | Initialisation des cartes | Partie 1

Configuration des autorisations de localisation
Pour utiliser les fonctionnalités de MapKit comme le suivi des utilisateurs et les clôtures géographiques, votre app doit avoir des autorisations de localisation explicites. Sans elles, ces fonctionnalités ne fonctionneront pas et pourraient même faire planter votre app.
Mise à jour d'Info.plist
Commencez par mettre à jour votre fichier Info.plist avec les clés appropriées. Pour les fonctionnalités de localisation avancées, incluez NSLocationAlwaysAndWhenInUseUsageDescription et, pour iOS 14 et ultérieur, ajoutez NSLocationTemporaryUsageDescriptionDictionary. Ces clés fournissent le texte affiché dans l'invite de permission du système, alors assurez-vous que vos descriptions sont claires et axées sur l'utilisateur. Par exemple, si votre app utilise les clôtures géographiques, vous pourriez écrire : « Nous utilisons votre localisation pour afficher les points d'intérêt à proximité sur la carte. »
Si votre app doit suivre la localisation en arrière-plan, vous devrez également inclure la location valeur dans la clé UIBackgroundModes . Pour garantir que votre app n'est installée que sur les appareils avec matériel GPS, ajoutez location-services ou gps vers le UIRequiredDeviceCapabilities clé.
Gestion des états d'autorisation
Votre app doit tenir compte de cinq états d'autorisation possibles :
.notDetermined: L'utilisateur n'a pas encore été invité..restricted: Les contrôles parentaux ou les restrictions système sont en place..denied: L'utilisateur a explicitement refusé l'accès..authorizedWhenInUse: L'accès à la localisation est accordé tandis que l'app est en cours d'utilisation..authorizedAlways: L'accès à la localisation est accordé à tout moment.
Pour gérer ces états, implémentez le CLLocationManagerDelegate protocole pour gérer les mises à jour lorsque les utilisateurs modifient leurs paramètres. Utilisez une switch instruction pour évaluer CLAuthorizationStatus et définir des actions spécifiques pour chaque état. Par exemple, si le statut est .denied ou .restricted, vous pourriez afficher une alerte expliquant la limitation et inclure un lien vers les Paramètres système. Pour .authorizedWhenInUse ou .authorizedAlways, vous pouvez commencer le suivi en appelant startUpdatingLocation() ou en définissant mapView.showsUserLocation = true.
Depuis iOS 14, les utilisateurs peuvent opter pour une précision réduite. Vérifiez la accuracyAuthorization propriété pour déterminer si vous avez .fullAccuracy ou .reducedAccuracy. Ceci est particulièrement important pour les fonctionnalités comme la navigation virage par virage, qui nécessitent des coordonnées précises.
Demande d'accès à la localisation
Avant d'inviter l'utilisateur, confirmez que les services de localisation sont activés en appelant CLLocationManager.locationServicesEnabled(). Cela évite les invites inutiles lorsque les services sont désactivés. Une fois vérifié, créez une CLLocationManager instance et appelez soit requestWhenInUseAuthorization() ou requestAlwaysAuthorization(), selon les besoins de votre app.
Apple recommande d'attendre que l'utilisateur initie une tâche qui nécessite des données de localisation avant de demander l'accès. Comme l'explique la documentation d'Apple : « Attendre que l'utilisateur effectue une tâche qui nécessite réellement ces services aide à établir la confiance que votre app les utilise de manière appropriée ».
Pour surveiller les modifications des autorisations pendant que l'app s'exécute, utilisez locationManagerDidChangeAuthorization(_:). Si un utilisateur accorde initialement une précision réduite mais que votre app nécessite des données précises pour une tâche spécifique, vous pouvez demander une précision complète temporaire avec requestTemporaryFullAccuracyAuthorization(withPurposeKey:), en utilisant une clé de purpose définie dans votre NSLocationTemporaryUsageDescriptionDictionary.
Personnalisation de la vue de carte
Une fois que vous avez configuré votre carte et défini les permissions, l'étape suivante consiste à personnaliser l'affichage de la carte pour la rendre plus attrayante pour les utilisateurs. La zone visible de la carte est contrôlée par la region propriété de la MKMapView classe, qui utilise la MKCoordinateRegion structure.
Définir la région initiale
Un MKCoordinateRegion est composée de deux composants clés : la center (une CLLocationCoordinate2D contenant la latitude et la longitude) et la span (une MKCoordinateSpan qui définit le niveau de zoom). L'étendue détermine la quantité de carte visible, mesurée en degrés de latitude et de longitude. À titre de référence, un degré de latitude représente environ 69 miles, tandis que les distances de longitude varient selon la latitude.
Pour appliquer une région à votre carte, utilisez la setRegion(_:animated:) méthode. Si vous configurez la carte avant qu'elle n'apparaisse à l'écran (par exemple, dans viewDidLoad), définissez animated à false. Si la carte est déjà affichée, la définition de animated à true assure une transition fluide. Pour ceux qui préfèrent définir le niveau de zoom en mètres plutôt qu'en degrés, la MKCoordinateRegionMakeWithDistance fonction offre une alternative pratique. N'oubliez pas que les valeurs négatives représentent la latitude sud et la longitude ouest — par exemple, les coordonnées de San Francisco sont 37.7833, -122.4167.
Une fois que vous avez défini la région, vous pouvez améliorer la fonctionnalité de la carte en mettant en évidence les points d'intérêt.
Ajouter des annotations
Les annotations sont utilisées pour localiser des emplacements spécifiques sur votre carte. Ces objets conforment au MKAnnotation protocole, stockant des données comme les coordonnées, le titre et le sous-titre. Leur représentation visuelle est gérée par MKAnnotationView. Pour une solution rapide et simple, vous pouvez utiliser MKPointAnnotation pour marquer un emplacement avec un titre et un sous-titre.
Pour personnaliser l'apparence des annotations, implémentez la mapView(_:viewFor:) méthode de délégué. Tout comme les cellules de vue de tableau sont réutilisées, les vues d'annotation doivent également être défilées avec un identifiant de réutilisation pour améliorer les performances. Si vous personnalisez les annotations mais souhaitez conserver le point bleu par défaut pour la localisation de l'utilisateur, retournez nil pour les annotations de localisation de l'utilisateur.
Vous pouvez également activer une bulle de légende pour les annotations en définissant canShowCallout à true. Cette bulle peut inclure des boutons ou des images personnalisés de chaque côté, la rendant plus interactive. De plus, le redimensionnement des images par programmation assure que les icônes d'annotation personnalisées s'affichent correctement.
Tandis que les annotations mettent en évidence des points spécifiques, les superpositions sont idéales pour ajouter des éléments visuels plus larges comme des itinéraires ou des formes.
Afficher les superpositions
Les superpositions vous permettent d'ajouter des formes, des itinéraires ou d'autres éléments visuels à votre carte. Elles nécessitent deux composants : un MKOverlay objet, qui définit la zone géographique et les coordonnées, et une MKOverlayRenderer, qui détermine le style visuel (par exemple, couleur, largeur de ligne).
Pour afficher les superpositions, utilisez la mapView(_:rendererFor:) méthode de délégué. Cela garantit que le moteur de rendu approprié est retourné uniquement lorsque la superposition se trouve dans la région de carte visible. Les superpositions peuvent être superposées à différents niveaux : .aboveRoads place la superposition au-dessus des routes mais en dessous des étiquettes, tandis que .aboveLabels assure que la superposition apparaît au-dessus des routes et des étiquettes.
Pour la visualisation d'itinéraires, utilisez MKDirections.Request pour calculer un itinéraire, puis rendez le MKRoute résultant sous forme de polyline. Si vous créez des polygones, assurez-vous de lister la latitude avant la longitude pour un positionnement précis.
Test et débogage des fonctionnalités MapKit
Une fois que vous avez personnalisé votre implémentation de MapKit, il est temps de vous assurer que tout fonctionne comme prévu et respecte les exigences réglementaires. Les tests dans des conditions réelles sont cruciaux — les simulateurs ne peuvent vous mener que jusqu'à un certain point. Ils ne peuvent pas reproduire complètement des problèmes tels que les interférences de signal GPS, la consommation de batterie ou le comportement des services de localisation lorsqu'un utilisateur est en déplacement.
Test sur des appareils physiques
Les tests sur des appareils réels révèlent des problèmes que les simulateurs ne peuvent tout simplement pas détecter. Par exemple, vous pouvez vérifier si le service de localisation « Significant-Change » réveille correctement votre app lorsqu'elle a été suspendue ou fermée. Une fois que l'app se réveille en arrière-plan, confirmez qu'elle traite les données de localisation dans la fenêtre de 10 secondes requise. De plus, vérifiez que les cartes 3D et les fonctionnalités « Look Around » s'affichent correctement. Prêtez une attention particulière aux conversions de coordonnées — les données invalides peuvent apparaître lorsque la caméra bascule vers le haut pour montrer le ciel.
Affinez les paramètres comme desiredAccuracy en fonction des besoins de votre app. Pour la navigation, utilisez kCLLocationAccuracyBest, mais optez pour kCLLocationAccuracyKilometer pour économiser la batterie pour les tâches moins exigeantes. Pour éviter les mises à jour de localisation fréquentes dues à des mouvements mineurs, définissez une distanceFilter— par exemple, 500 mètres. Activez également pausesLocationUpdatesAutomatically et définissez-la sur YES pour que l'appareil puisse désactiver le matériel de localisation lorsque l'utilisateur est immobile.
Simulation des emplacements dans Xcode

Les outils de simulation d'emplacement de Xcode sont le meilleur allié d'un développeur lors des tests initiaux. Vous pouvez simuler divers scénarios géographiques sans avoir à quitter votre bureau. Par exemple, réglez showsUserLocation à true sur votre MKMapView pour afficher l'emplacement simulé sous la forme d'un point bleu. Testez les cas limites comme le mode Avion, l'actualisation des applications en arrière-plan désactivée ou les autorisations d'emplacement refusées. Si votre application nécessite des mises à jour d'emplacement en arrière-plan, assurez-vous d'activer les « Mises à jour de localisation » sous la capacité « Modes d'arrière-plan » dans les paramètres de votre projet.
Une fois que vous avez vérifié les fonctionnalités par le biais de tests simulés, passez aux tests en conditions réelles et assurez-vous que votre application respecte toutes les directives de l'App Store.
Assurer la conformité aux directives de l'App Store

Pour réussir l'examen de l'App Store, incluez les NSLocationWhenInUseUsageDescription ou NSLocationAlwaysUsageDescription clés dans votre Info.plist. Sans eux, le système ne traitera pas les demandes d'autorisation. De plus, activez la capacité « Cartes » dans Xcode pour ajouter les droits nécessaires à votre ID d'application. Gardez à l'esprit que les applications MapKit ne peuvent être distribuées que par l'intermédiaire de l'App Store. Si votre application nécessite une précision au niveau du GPS, spécifiez la gps exigence dans la UIRequiredDeviceCapabilities section.
Pour les équipes qui créent des applications basées sur la localisation sans expertise native iOS, la plateforme assistée par l'IA d'Adalo gère automatiquement la complexité de la soumission à l'App Store. La plateforme compile en vrai code iOS natif, et non en wrapper web, et gère le processus de publication sur l'App Store Apple et Google Play Store à partir d'une seule base de code.
Approches alternatives pour les non-développeurs
Toutes les équipes n'ont pas de développeurs iOS qui peuvent implémenter MapKit à partir de zéro. Pour les entreprises qui ont besoin d'applications basées sur la localisation sans les frais de développement traditionnels, plusieurs approches existent.
Générateurs d'applications visuels avec composants de carte
Le générateur visuel d'Adalo inclut des composants de carte prédéfinis qui gèrent automatiquement l'intégration MapKit sous-jacente. Décrivez votre application basée sur la localisation à Magic Start, et il génère la structure de la base de données, les écrans et les flux utilisateur, y compris les vues de carte configurées avec les autorisations appropriées. Ce qui nécessitait traditionnellement des jours de développement Swift se fait en quelques minutes.
L'infrastructure modulaire de la plateforme s'adapte pour servir les applications avec plus d'un million d'utilisateurs actifs mensuels, sans limite supérieure. Contrairement aux wrappers web qui rencontrent des contraintes de performance sous charge, l'architecture spécialement conçue d'Adalo maintient la vitesse à l'échelle. Les plans payants incluent des enregistrements de base de données illimités et aucun frais basés sur l'utilisation, ce qui est un avantage significatif par rapport à des plateformes comme Bubble, qui imposent des unités de charge qui créent une facturation imprévisible.
Comparaison des options de plateforme
Lors de l'évaluation des alternatives au développement natif MapKit, tenez compte de ces facteurs :
| Plateforme | Prix de départ | Applications iOS natives | Limites de base de données | Publication sur l'App Store |
|---|---|---|---|---|
| Adalo | 36 $/mois | Oui (vrai natif) | Illimité sur les forfaits payants | Incluse |
| Bubble | 69 $/mois | Non (enveloppe web) | Limité par unités de charge de travail | Nécessite un wrapper |
| FlutterFlow | 70 $/mois par utilisateur | Oui | Base de données externe requise | Configuration supplémentaire |
| Glide | 60 $/mois | Non | Les limites de lignes s'appliquent | Non pris en charge |
FlutterFlow cible les utilisateurs techniques à l'aise avec le développement bas code et la gestion des bases de données externes, une courbe d'apprentissage importante lors de l'optimisation pour l'échelle. Glide excelle dans les applications basées sur des feuilles de calcul, mais restreint la liberté créative avec des formats axés sur les modèles et ne supporte pas la publication sur l'App Store.
Pour les équipes qui privilégient les performances iOS natives avec des fonctionnalités de localisation, Adalo offre le chemin le plus direct : décrivez votre application, laissez Magic Start générer les fondations, puis affinez avec Magic Add pour inclure une fonctionnalité de carte spécifique.
Conclusion
Vous avez maintenant parcouru la configuration de MapKit, la gestion des autorisations et la personnalisation de la vue de carte, les étapes clés pour préparer votre application à l'intégration et aux tests finals. Récapitulons les éléments essentiels pour une implémentation MapKit en douceur.
Commencez par activer la Cartes capacité dans Xcode. Cette étape garantit que votre application obtient les droits requis pour utiliser les fonctionnalités MapKit, ce qui est obligatoire pour distribuer votre application sur l'iOS ou le Mac App Store. Ensuite, ajoutez le framework MapKit à votre projet, placez un MKMapView dans votre interface, et attribuez un délégué (par exemple, mapView.delegate = self) pour gérer les événements liés à la carte.
Pour les autorisations de localisation, importez CoreLocation, initialisez un CLLocationManager, et appelez requestWhenInUseAuthorization(). N'oubliez pas d'inclure les clés d'utilisation de localisation nécessaires dans votre Info.plist fichier, car leur absence peut entraîner des rejets de l'App Store.
Pour rendre votre vue de carte plus fonctionnelle et attrayante, définissez sa région avec MKCoordinateRegion et améliorez-la en ajoutant des annotations à l'aide de MKPointAnnotation. Ces touches peuvent grandement améliorer l'expérience utilisateur.
Enfin, les tests sur des appareils physiques sont essentiels. Des fonctionnalités comme les perspectives 3D ne se comportent souvent pas de la même manière dans les simulateurs. Vérifiez la pitchEnabled propriété avant d'ajuster la caméra de carte 3D pour confirmer que l'appareil supporte cette fonctionnalité.
Pour les équipes sans expertise native iOS, les plateformes assistées par l'IA offrent maintenant des alternatives viables qui gèrent l'intégration MapKit automatiquement tout en compilant vers du code natif pour la distribution sur l'App Store.
FAQ
Pourquoi choisir Adalo plutôt que d'autres solutions de création d'applications ?
Adalo est un créateur d'applications alimenté par l'IA qui crée de véritables applications natives iOS et Android. Contrairement aux wrappers web, il se compile en code natif et se publie directement à la fois sur l'Apple App Store et Google Play Store à partir d'une seule base de code, ce qui facilite la partie la plus difficile du lancement d'une application.
Quel est le moyen le plus rapide de créer et de publier une application sur l'App Store ?
L'interface glisser-déposer d'Adalo combinée à la construction assistée par l'IA via Magic Start et Magic Add vous permet de créer des applications complètes en heures plutôt qu'en mois. La plateforme gère l'ensemble du processus de soumission à l'App Store, y compris la signature du code et les exigences de conformité.
Comment puis-je gérer les modifications apportées aux autorisations de localisation dans mon application iOS ?
Gardez un œil sur le statut d'autorisation de l'utilisateur et ajustez le fonctionnement de votre application en temps réel. Utilisez les méthodes de délégué ou les notifications système pour détecter les mises à jour, par exemple quand un utilisateur bascule entre les paramètres de localisation précis et approximatifs ou révoque complètement l'accès. Expliquez clairement dans le fichier Info.plist de votre application pourquoi l'accès à la localisation est nécessaire.
Comment puis-je tester efficacement les fonctionnalités de MapKit sur un appareil physique ?
Activez la capacité Cartes dans Xcode, testez comment votre application demande et traite les autorisations de localisation dans tous les états d'autorisation, et explorez les fonctionnalités telles que le zoom, le panoramique et le suivi de la localisation de l'utilisateur. Simulez différents scénarios, y compris les conditions de réseau médiocres, pour assurer des performances fiables dans le monde réel.
Comment puis-je changer l'apparence des annotations de carte dans mon application iOS ?
Personnalisez les annotations de carte en incorporant des images personnalisées, en ajustant les couleurs ou en modifiant les styles de légende. Les annotations peuvent être positionnées au-dessus ou au-dessous d'autres éléments de carte à l'aide des options de superposition de MapKit. Implémentez la méthode de délégué mapView(_:viewFor:) pour personnaliser complètement l'apparence des annotations.
Ai-je besoin d'une expérience en codage pour créer une application basée sur la localisation ?
Pas nécessairement. Bien que l'implémentation native de MapKit nécessite des connaissances en Swift ou Objective-C, les plateformes alimentées par l'IA comme Adalo vous permettent de créer des applications basées sur la localisation visuellement. Décrivez ce que vous voulez, et Magic Start génère les fondations, y compris les composants de carte et les autorisations de localisation.
Combien coûte la création d'une application iOS basée sur une carte ?
Le développement iOS traditionnel peut coûter 50 000 $ à 150 000 $ ou plus pour une application basée sur la localisation personnalisée. Adalo commence à 36 $/mois avec des enregistrements de base de données illimités et aucun frais basés sur l'utilisation, ce qui la rend beaucoup plus accessible pour les entreprises testant des concepts basés sur la localisation.
Puis-je publier mon application de carte sur iOS et Android ?
Avec le développement natif, vous auriez besoin de bases de code distinctes pour iOS (MapKit) et Android (SDK Google Maps). Adalo compile une seule base de code pour les deux plates-formes, en publiant simultanément sur l'App Store d'Apple et sur Google Play Store.
Quelles fonctionnalités de localisation une application de livraison ou de service devrait-elle avoir ?
Les fonctionnalités essentielles incluent le suivi de localisation en temps réel, la visualisation d'itinéraires avec des superpositions, la recherche d'adresses et le géocodage, la géolocalisation pour les notifications d'arrivée et les mises à jour de localisation en arrière-plan. MapKit prend en charge toutes ces fonctionnalités via les API MKDirections, MKOverlay et CLLocationManager.
Pourquoi certaines applications cartographiques fonctionnent-elles mal sous une charge utilisateur importante ?
Les wrappers d'applications basées sur le Web ont souvent du mal avec les fonctionnalités de localisation à grande échelle car ils ajoutent une surcharge de traitement entre le framework cartographique et l'interface utilisateur. La compilation native — qu'elle soit réalisée par implémentation directe de MapKit ou par des plates-formes comme Adalo qui compilent en code natif — maintient les performances à mesure que le nombre d'utilisateurs augmente.
Créez votre application rapidement avec l'un de nos modèles d'application prédéfinis
Commencez à créer sans code