Skip to content
Tutorial

Icônes d'applications mobiles : bonnes pratiques SVG pour iOS et Android

Créez des icônes d'applications parfaites sur chaque appareil. Bonnes pratiques SVG pour iOS et Android, exigences de taille et conseils d'optimisation.

Robin Monteiro16 janvier 202610 octobre 202614 min
Use this article with an AI assistant:
.md
Icônes d'applications mobiles : bonnes pratiques SVG pour iOS et Android
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • Les icônes SVG s'adaptent parfaitement à toutes les densités d'écran — à condition de les préparer correctement pour chaque plateforme
  • iOS nécessite des assets PDF ou SVG dans les Xcode Asset Catalogs ; Android utilise les Vector Drawables (sous-ensemble SVG en XML)
  • Toujours aplatir les transformations, vectoriser les contours et supprimer les calques masqués avant l'export mobile
  • Testez les icônes à 16px, 24px, 48px et 64px pour détecter les problèmes de rendu avant la mise en production
  • Gardez les fichiers SVG sous 5 Ko par icône pour des performances mobiles optimales
  • Utilisez un SVG source unique et automatisez les exports spécifiques à chaque plateforme

Chaque développeur mobile a vécu ce moment : vous intégrez une icône magnifiquement designée dans votre app, vous compilez, lancez le simulateur — et vous voyez une forme floue, mal alignée ou complètement invisible. L'icône était parfaite dans Figma, impeccable dans le navigateur. Mais sur un vrai appareil, quelque chose a mal tourné.

L'écart entre designer une icône SVG et la livrer dans une app mobile native est plus large que la plupart des équipes ne le réalisent. iOS et Android gèrent les assets vectoriels via des pipelines entièrement différents, avec des formats, des moteurs de rendu et des pièges différents.

Processus de vectorisation d'icônes d'applications mobiles
Conversion d'icônes raster en vecteurs SVG propres pour le déploiement mobile

Pourquoi les icônes SVG comptent pour le mobile

Les écrans mobiles existent dans une variété étourdissante de tailles et densités. Un appareil Android moderne peut tourner à 1x, 1.5x, 2x, 3x, voire 4x. Les iPhones sont à 2x et 3x. Les tablettes ajoutent encore plus de combinaisons.

Les icônes SVG résolvent ce problème en définissant les formes mathématiquement. Un fichier, résolution infinie. Mais "utilisez juste des SVG" sous-estime considérablement la complexité.

Le défi principal : Ni iOS ni Android ne rendent nativement les fichiers .svg dans leurs frameworks UI standard. Les deux plateformes convertissent les SVG en formats intermédiaires spécifiques — assets PDF pour iOS et VectorDrawable XML pour Android.

Les avantages d'un pipeline bien maîtrisé :

  • Bundles d'app plus petits — un asset vectoriel remplace 4-5 exports raster
  • Rendu pixel-perfect à chaque densité d'écran
  • Maintenance simplifiée — un fichier source, toutes les cibles régénérées
  • Meilleure accessibilité — les formes vectorielles peuvent porter des métadonnées sémantiques
  • Pérennité — pas de ré-export quand de nouvelles densités apparaissent
"

Nous avons réduit notre dossier d'assets icônes de 2 400 fichiers à 380 en passant à un pipeline vector-first. Les temps de build ont chuté, les handoffs design sont devenus plus simples.

— Lead Mobile Engineer, startup fintech

Préparer les SVG pour l'export mobile

Avant de penser aux formats spécifiques, vos SVG sources doivent être propres. Les moteurs de rendu mobile sont bien moins tolérants que les navigateurs web.

La checklist SVG propre

1. Aplatir toutes les transformations. Les transforms CSS et SVG intégrées dans les éléments groupe seront parfois ignorées par les convertisseurs mobile.

2. Vectoriser tous les contours. Le format VectorDrawable d'Android a un support limité des strokes. Convertissez les contours en chemins remplis.

3. Supprimer les calques masqués et métadonnées. Les outils de design intègrent des métadonnées, calques cachés et définitions inutilisées. Supprimez-les.

4. Utiliser un viewBox cohérent. Standardisez sur 0 0 24 24 pour les icônes UI.

5. Simplifier les chemins. Moins de points = fichiers plus petits, rendu plus rapide, moins d'artefacts de conversion.

Icônes SVG dans le design UI mobile
Icônes SVG propres et bien structurées prêtes pour le déploiement mobile

Exemple d'icône SVG correctement nettoyée :

xml
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
  <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"
        fill="currentColor"/>
</svg>

Warning: Évitez les images raster embarquées dans les SVG. Certains outils de design exportent des icônes avec des PNG embarqués pour des effets complexes. Ceux-ci échoueront à la conversion ou gonfleront la taille du fichier.


iOS : Asset Catalogs et vecteurs PDF

L'approche recommandée par Apple pour les icônes vectorielles est d'utiliser des assets PDF dans les Xcode Asset Catalogs. Depuis Xcode 12, Apple supporte aussi directement les SVG, mais le PDF reste le chemin le plus éprouvé.

Configuration des assets vectoriels dans Xcode

  1. Ouvrez votre Asset Catalog (.xcassets)
  2. Créez un nouveau Image Set
  3. Dans l'inspecteur d'attributs, définissez Scales sur "Single Scale"
  4. Définissez Resizing sur "Preserve Vector Data"
  5. Déposez votre fichier PDF ou SVG
xml
<!-- Contents.json pour un asset vectoriel -->
{
  "images" : [
    {
      "filename" : "icon-settings.svg",
      "idiom" : "universal"
    }
  ],
  "properties" : {
    "preserves-vector-representation" : true
  }
}

Pro Tip: Cochez toujours "Preserve Vector Data" dans l'inspecteur d'assets de Xcode. Sans ce flag, Xcode va rasteriser votre vecteur au moment du build. Cette case à cocher est l'erreur d'icône vectorielle iOS la plus courante.

Tailles d'icônes iOS

ContexteTaille (pt)ÉchellePixels
iPhone Notification20x202x, 3x40x40, 60x60
iPhone Réglages29x292x, 3x58x58, 87x87
iPhone Spotlight40x402x, 3x80x80, 120x120
iPhone App60x602x, 3x120x120, 180x180
iPad App76x761x, 2x76x76, 152x152
iPad Pro App83.5x83.52x167x167
App Store1024x10241x1024x1024

Lors du design d'icônes SVG pour ces tailles, testez d'abord à la plus petite taille cible. Une icône superbe à 1024px mais floue à 40px a un problème de design, pas technique.


A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

Android : Vector Drawables

Android gère les icônes vectorielles via son propre format XML appelé VectorDrawable. C'est essentiellement un sous-ensemble de SVG — il supporte les chemins, groupes et remplissages basiques, mais abandonne beaucoup de fonctionnalités SVG.

Conversion SVG vers VectorDrawable

Android Studio inclut un convertisseur intégré : Vector Asset Studio (File → New → Vector Asset).

xml
<!-- res/drawable/ic_check_circle.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24"
    android:tintMode="src_in"
    android:tint="?attr/colorControlNormal">
  <path
      android:fillColor="@android:color/white"
      android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm-2,15l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z"/>
</vector>

Utilisation des Vector Drawables dans les layouts

xml
<ImageView
    android:layout_width="24dp"
    android:layout_height="24dp"
    app:srcCompat="@drawable/ic_check_circle"
    android:contentDescription="@string/check_icon_desc" />

Utilisez app:srcCompat au lieu de android:src. L'attribut srcCompat de la librairie AndroidX fournit un rendu vectoriel rétrocompatible pour les appareils sous API 21.

Référence des tailles d'icônes Android

DensitéÉchelleTailles icônes (courantes)DPI
mdpi (référence)1x24x24, 48x48~160
hdpi1.5x36x36, 72x72~240
xhdpi2x48x48, 96x96~320
xxhdpi3x72x72, 144x144~480
xxxhdpi4x96x96, 192x192~640

Avec VectorDrawable, vous définissez les icônes une fois en dp et le système gère automatiquement la mise à l'échelle.

Icônes SVG pour le web et les apps mobiles
Les icônes SVG font le pont entre web et plateformes mobiles natives

Pipeline automatisé d'icônes

Les exports manuels sont source d'incohérences. Maintenez un SVG source unique pour chaque icône et automatisez les conversions.

Étape 1 : Optimiser le SVG source

css
/* Exemple de config SVGO (svgo.config.js) */
module.exports = {
  plugins: [
    'preset-default',
    'removeDimensions',
    'removeXMLNS',
    {
      name: 'removeAttrs',
      params: {
        attrs: ['data-*', 'class']
      }
    },
    {
      name: 'addAttributesToSVGElement',
      params: {
        attributes: [
          { xmlns: 'http://www.w3.org/2000/svg' }
        ]
      }
    }
  ]
};

Étape 2 : Générer les assets par plateforme

Convertissez les SVG optimisés en :

  • PDF pour iOS (avec svgexport ou cairosvg)
  • VectorDrawable XML pour Android (avec svg2vectordrawable)
  • SVG optimisé pour le web/PWA

Étape 3 : Valider la sortie

  • Vérifier les tailles de fichiers (alerter au-dessus de 5 Ko)
  • Vérifier la cohérence du viewBox
  • Scanner les éléments non supportés (filtres, masques, images embarquées)
  • Rendre aux tailles cibles et comparer avec des captures de référence

Pro Tip: Intégrez la validation des icônes dans votre pipeline CI. Un script qui vérifie les tailles, valide la structure XML VectorDrawable et signale les éléments non supportés attrapera 90 % des problèmes d'icônes.


Erreurs courantes et corrections

1. Utiliser des contours au lieu de remplissages

Problème : Une icône utilise des tracés en contour qui semblent corrects dans le navigateur mais rendent avec une épaisseur incohérente sur mobile.

Correction : Convertissez tous les contours en remplissages avant l'export. Dans Figma : "Outline Stroke". Dans Illustrator : Objet → Tracé → Vectoriser le contour.

2. ViewBox non standard

Problème : Les icônes ont des viewBox incohérents, causant des problèmes de dimensionnement.

Correction : Standardisez sur un viewBox unique. 0 0 24 24 est la convention la plus courante.

3. Polices et texte embarqués

Problème : Une icône SVG contient un élément <text> avec une police personnalisée. La police n'est pas disponible sur l'appareil.

Correction : Convertissez tout le texte en chemins avant l'export. Toujours. Sans exception.

4. Oublier le mode sombre

Problème : Les icônes utilisent des remplissages noirs codés en dur. Elles sont invisibles sur fond sombre.

Correction : Utilisez currentColor comme valeur de remplissage. Sur iOS, utilisez le mode de rendu template. Sur Android, appliquez des teintes via android:tint.

5. Ignorer l'accessibilité

Problème : Les icônes transmettent du sens mais n'ont pas de labels d'accessibilité.

Correction : Toujours définir contentDescription sur Android et accessibilityLabel sur iOS.

Warning: Le piège "ça marche sur mon appareil" : Le rendu des icônes varie considérablement selon les appareils, versions d'OS et surcouches fabricant. Testez toujours sur au moins 3 appareils Android différents et les appareils iOS 2x et 3x.


Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

Considérations de performance

Les icônes vectorielles sont généralement plus légères que les raster, mais pas gratuites. Chaque VectorDrawable ou PDF doit être parsé et rasterisé à l'exécution.

Gardez les icônes simples. Une icône UI devrait rarement dépasser 20-30 commandes de chemin.

Mettez en cache les bitmaps rendus. iOS et Android mettent en cache les versions rasterisées, mais attention aux implications mémoire.

Mesurez l'impact réel. Utilisez le profiler GPU d'Android ou les Instruments de Xcode pour mesurer le temps de rendu.

ComplexitéCommandes cheminTaille fichierTemps rendu (est.)
Simple (check, flèche)5-10<1 Ko<0,5ms
Moyen (engrenage, utilisateur)15-301-3 Ko0,5-1ms
Complexe (illustration détaillée)50-100+3-8 Ko1-3ms
Trop complexe (envisager raster)200+10 Ko+3ms+
Icônes mobiles sur écrans d'appareils
Icônes basées sur SVG rendues nettement sur différentes tailles et densités d'appareils mobiles

Tout assembler

Le pipeline SVG-to-mobile n'est pas compliqué une fois les contraintes de chaque plateforme comprises :

  1. Designez les icônes sur une grille standardisée (24x24 recommandé) avec des chemins remplis, sans contours, sans texte, sans effets embarqués
  2. Nettoyez le SVG — aplatir les transforms, vectoriser les contours, supprimer les métadonnées, optimiser avec SVGO
  3. Convertissez aux formats plateforme — PDF/SVG pour iOS Asset Catalogs, VectorDrawable XML pour Android
  4. Validez — vérifiez les tailles, rendez aux tailles cibles, vérifiez les labels d'accessibilité
  5. Automatisez — intégrez dans votre CI/CD

Si vous travaillez avec des icônes raster existantes ou des logos complexes à convertir en vecteurs propres, VectoSolve gère le gros du travail. Notre moteur de vectorisation IA produit des SVG propres et optimisés, prêts pour les pipelines d'export mobile.

Tags:
mobile
icônes app
iOS
Android
design
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.