Prorammation mobile
hybride
Le framework Flutter
Par Cyrille MBIA
Sécurité systèmes numériques
Site web : [Link]
1
PLAN DU COURS
Chapitre I : Introduction à Flutter
1. Introduction au développement multiplate-forme
2. Différences entre Développement d'applications natives et
Développement multiplate-forme
3. Qu’est-ce que Flutter ?
4. Caractéristiques de Flutter
5. Débat entre Native VS. Flutter VS. Xamarin
2
01
Introduction au développement
multiplateforme
Approche de développement logiciel visant à créer des applications capables de fonctionner sur
plusieurs systèmes d'exploitation ou plateformes, telles qu'iOS, Android, Windows, et parfois même
le Web. Cette méthode de développement présente de nombreux avantages :
Réduction des coûts
Gain de temps
Possibilité de toucher un public plus large
3
01 Les principes du développement multiplateforme :
Réutilisation du code : L'objectif principal du développement multiplateforme est de
réutiliser autant de code que possible entre les différentes plateformes cibles. Cela permet
d'économiser du temps et des efforts en évitant de réécrire le même code pour chaque
plateforme.
Abstraction des fonctionnalités de la plateforme : Les frameworks multiplateformes
fournissent souvent des couches d'abstraction qui permettent aux développeurs d'accéder
aux fonctionnalités spécifiques de chaque plateforme sans avoir à connaître les détails
techniques de chaque système d'exploitation.
Interface utilisateur adaptative : Les applications multiplateformes doivent souvent
s'adapter à différentes tailles d'écran, résolutions et orientations. Il est donc essentiel de
4
concevoir des interfaces utilisateur flexibles et adaptatives qui offrent une expérience
02
Différences entre Développement d'applications
natives et Développement multiplateforme
C’est deux approches distinctes pour créer des applications logicielles destinées à être
exécutées sur des appareils mobiles ou des ordinateurs. Voici les principales différences
entre ces deux approches :
Sur le plan du langage et outils de développement :
Développement natif : Les applications natives sont développées spécifiquement pour
une plateforme donnée en utilisant les langages de programmation et les outils de
développement natifs de cette plateforme. Par exemple, Swift ou Objective-C pour iOS,
5
Java ou Kotlin pour Android, et C# pour Windows.
02
Développement multiplateforme : Les applications multiplateformes sont
généralement développées à l'aide de frameworks ou de langages de programmation qui
permettent de créer une seule base de code pouvant être déployée sur plusieurs
plateformes. Les exemples incluent Flutter (Dart), Xamarin (C#), React Native (JavaScript),
Ionic (Angular/JavaScript), et Cordova (HTML, CSS, JavaScript).
6
02
Sur le plan des performances et expérience utilisateur :
Développement natif : Les applications natives ont tendance à offrir les meilleures
performances et une expérience utilisateur fluide, car elles exploitent pleinement les
fonctionnalités et les optimisations spécifiques à chaque plateforme.
Développement multiplateforme : Bien que les frameworks multiplateformes aient
considérablement amélioré leurs performances ces dernières années, ils peuvent encore
présenter une légère surcharge par rapport aux applications natives. Cependant, la
qualité de l'expérience utilisateur peut varier en fonction de la façon dont le framework
est utilisé et des compétences du développeur.
7
02
Sur le plan des Coût et délais de développement :
Développement natif : Le développement natif peut être plus coûteux et prendre plus
de temps, car il nécessite généralement des équipes distinctes pour chaque plateforme
cible et une expertise approfondie dans les langages et les outils natifs.
Développement multiplateforme : Le développement multiplateforme est souvent
considéré comme plus rentable et plus rapide, car il permet de réutiliser une grande partie
du code entre les différentes plateformes, réduisant ainsi les coûts de développement et
les délais de mise sur le marché.
8
02
Sur le plan de la flexibilité et portabilité :
Développement natif : Les applications natives offrent généralement une meilleure
intégration avec les fonctionnalités spécifiques de chaque plateforme, ce qui peut être
nécessaire pour les applications exigeant des performances élevées ou une interaction
étroite avec le matériel.
Développement multiplateforme : Les applications multiplateformes offrent une
portabilité accrue, car une seule base de code peut être déployée sur plusieurs
plateformes. Cependant, cela peut parfois entraîner des compromis en termes de
fonctionnalités spécifiques à une plateforme ou de performances optimales.
9
03
Qu’est-ce que Flutter ?
Flutter est un SDK (Software Development Kit) ou kit de développement en français. En
d'autres mots, c'est un trousseau, une caisse à outils qui va faciliter le développement.
Important de rappeler que Google a un projet d'un nouvel OS (système d'exploitation)
maison nommé Fuchsia qui a l'ambition de remplacer à terme Android et Chrome OS.
Ce nouveau système a une visée cross-platform, ce qui signifie qu'il pourrait fonctionner
sur n'importe quel type d'appareils. La firme américaine a voulu dès le début contrôler la
chaine de production des applications qui pourraient être développées dessus. Flutter est
donc né de ces besoins. Mais l'idée va plus loin. Car si Fuchsia se veut cross-platform, il
fallait que Flutter le soit aussi.
10
04
Caractéristiques de Flutter
Voici quelques-unes de ses principales caractéristiques :
Langage de programmation Dart : Flutter utilise le langage de programmation Dart,
développé également par Google. Dart est un langage moderne et performant qui offre
une syntaxe simple et concise, ainsi que des fonctionnalités telles que le typage
statique optionnel et la compilation juste-à-temps (JIT) pour des performances élevées.
Widgets personnalisables : Flutter utilise un système de widgets riche et flexible
pour construire des interfaces utilisateur. Les widgets de Flutter sont entièrement
personnalisables et offrent un contrôle total sur l'apparence et le comportement des
11
éléments de l'interface utilisateur.
04
Voici quelques-unes de ses principales caractéristiques :
Architecture réactive : Flutter adopte une architecture réactive basée sur le modèle
de programmation réactive, qui permet de créer des interfaces utilisateur dynamiques
et réactives. Les widgets de Flutter peuvent être reconstruits de manière efficace en
réponse aux changements d'état de l'application, offrant ainsi des performances
optimales et une expérience utilisateur fluide.
Hot Reload : L'une des fonctionnalités les plus appréciées de Flutter est le Hot
Reload, qui permet aux développeurs de voir instantanément les modifications
apportées au code source reflétées dans l'application en cours d'exécution, sans avoir à
recompiler l'ensemble de l'application. Cela accélère considérablement le processus de 112
04
Voici quelques-unes de ses principales caractéristiques :
Support multiplateforme : Flutter prend en charge le développement d'applications
pour plusieurs plateformes, notamment iOS, Android, le Web et le bureau (Windows,
macOS, Linux). Avec une seule base de code, les développeurs peuvent créer des
applications qui fonctionnent de manière native sur toutes ces plateformes.
13
05
Débat entre React Native VS. Flutter VS. Xamarin
Le débat entre React Native, Flutter et Xamarin est un sujet très discuté dans le
domaine du développement d'applications mobiles multiplateformes. Chacune de ces
technologies a ses propres avantages et inconvénients, et le choix entre elles dépend
souvent des besoins spécifiques du projet, des compétences de l'équipe de
développement et des préférences personnelles.
14