Les Paradigmes de Développement Mobile
Il existe trois grandes stratégies pour cibler iOS et Android :| Paradigme | Description | Langages | Avantages | Inconvénients |
|---|---|---|---|---|
| Natif | Utilisation des SDK et langages natifs de l’OS. | Swift/Kotlin (iOS/Android) ou Java. | Performance et fluidité maximales, accès complet aux API du système. | Deux bases de code distinctes (coût et temps élevés). |
| Hybride | L’application est une webview encapsulée dans un conteneur natif (ex: Apache Cordova, Ionic). | HTML, CSS, JavaScript. | Une seule base de code pour toutes les plateformes. | Performances limitées, sensation moins “native”. |
| Cross-Platform (Rendu Natif) | Utilisation d’une base de code unique (souvent JS) pour générer des composants d’interface natifs. | JavaScript/TypeScript (React Native, Flutter). | Équilibre entre code unique et rendu natif (performance). | Accès limité à certaines API spécifiques sans code natif (Bridge). |
React Native (Cross-Platform Rendu Natif)
React Native est le framework de choix pour les développeurs web qui souhaitent construire des applications mobiles performantes. Il utilise le même modèle de programmation déclarative que React, mais au lieu de manipuler le DOM du navigateur, il interagit avec les composants UI natifs du mobile. Mécanismes Clés- Le Bridge (Pont) : Le moteur JavaScript (où votre code tourne) communique de manière asynchrone avec les threads UI natifs (iOS/Android) via un pont sérialisé. C’est ce qui permet au code JS de commander l’affichage de composants natifs.
- Composants Natifs : Au lieu d’utiliser des balises HTML (
<div>,<span>), React Native utilise des composants qui se mappent directement sur leurs équivalents natifs :<View>(équivalent deUIViewsur iOS,android.viewsur Android).<Text>(pour du texte stylisé).
- Style (Flexbox) : Le style est défini en JavaScript (ou TypeScript) et utilise le modèle Flexbox pour la mise en page. Il n’utilise pas de CSS ni de sélecteurs classiques.
View, Text et de l’objet StyleSheet pour le style en JS.
Autres Frameworks Cross-Platform
| Framework | Langage | Philosophie | Avantages Spécifiques |
|---|---|---|---|
| Flutter | Dart (Langage de Google) | Rend sa propre UI via le moteur Skia. Ne repose pas sur les composants natifs de l’OS. | Performance très élevée (rendu direct), grande cohérence UI/UX sur toutes les plateformes. |
| Kotlin Multiplatform Mobile (KMM) | Kotlin | Permet de partager la logique métier (code) entre iOS et Android, mais requiert une UI native séparée. | Offre le meilleur des deux mondes (partage de la logique sans sacrifier la performance UI native). |
Le Style et la Mise en Page Mobile
Contrairement au développement web où le CSS offre de nombreux modèles (Flexbox, Grid), le mobile se concentre principalement sur le modèle Flexbox.| Concept | Mobile (React Native) | Web (CSS) | Rôle |
|---|---|---|---|
| Mise en Page | Flexbox (implémentation JavaScript du modèle) | Flexbox et CSS Grid | Organisation des éléments dans une seule dimension. |
| Unités | Pixels Indépendants de la Densité (DP/DIP) | Pixels (px), Rem, Em, % | Garantir que les éléments apparaissent de la même taille physique sur des écrans de résolutions différentes. |
| Style | Objets JavaScript (StyleSheet.create) | Fichiers CSS (purs, SASS, Tailwind) | Définit l’apparence. Les propriétés sont en camelCase (ex: marginHorizontal). |
