Rogrammation Obile: Miloud LAHMAIM Rssp2 2023-2024
Rogrammation Obile: Miloud LAHMAIM Rssp2 2023-2024
Rogrammation Obile: Miloud LAHMAIM Rssp2 2023-2024
Miloud LAHMAIM
RSSP2
2023-2024
Avant propos
Objectifs : Ce module vise à faire acquérir à l’ingénieur
RSSP, les technologies de développement mobile tel que
Android et connaître les spécificités du développement mobile.
Pré-requis : POO & SQL
Modes d’évaluation :
2 Contrôles continus : 65%
Travaux & Activités pratiques : 30%
Présence, Participation…. : 5%
N.B : La programmation et un métier, alors il faut :
S’auto-former
Pratiquer
Prendre des notes
2
Plan
Introduction
Kotlin
Application mobile
3
Plan
Introduction
KOTLIN
Application mobile
4
Les appareils mobiles
5
Définition du SE mobile.
Un appareil mobile (smartphone, tablette, tv, …) nécessite un
système d’exploitation mobile et ce pour piloter tous les
dispositifs matériels et logiciels qui le composent.
Un système d'exploitation, ou OS pour Operating System,
définit un ensemble de programmes chargé d'établir une
relation entre les différentes ressources matérielles, les
applications et l'utilisateur.
Ce type de système d'exploitation se concentre sur la gestion
de la connectivité sans fil et celle des différents types
d'interface.
Il contrôle toutes les opérations de base du téléphone mobile
comme:
Option d’écran tactile, cellulaires, Bluetooth, Wifi, Appareil photo,
Lecteur de musique, D’autres fonctionnalités.
6
Les principaux SEs mobiles.
Android de Google
• Développé en 2007
• Il est devenu plateforme ouverte en 2008
• OS gratuit et complètement ouvert.
• Utilisé par des grands fabricants (Sumsung, Oppo, Xiaomi, …)
iOS d’Apple
• Dérivé de Mac OS
• Développé par Apple en 2007
• Utilisé seulement par le fabriquant Apple
• Dernière version : IOS 13 (2022)
https://www.youtube.com/watch?v=3GzB_ED9CSU
8
Le SE choisi
9
Architecture Android
10
Architecture Android : Linux Kernel
16
Versions Android
17
Applications mobiles
Une application mobile est un programme téléchargeable de façon gratuite ou
payante et exécutable à partir du système d’exploitation d’un Smartphone ou
d’une tablette ou autres.
Cette application a pour la plupart du temps, une utilité bien précise pour
l’utilisateur final.
on peut retrouver des applications mobiles pour
• Jouer.
• Réserver des services.
• Acheter des produits.
• Prendre des photos.
• Communiquer.
• Consulter ses comptes bancaires.
• Les champs d’application sont infinis….
L’essentiel du temps passé sur les Smartphones est consacré à des applications
mobiles.
18
Types d’applications mobiles
19
Application NATIVE
Installée sur un Smartphone ou une tablette, elle est sur-
mesure et doit être adaptée à chaque système
d’exploitation (OS), en somme une version différente pour
chaque type de téléphone.
21
Application HYBRIDE
Kotlin swift
23
Kotlin ou Java
24
Kotlin
Kotlin est un langage de programmation orienté objet, fonctionnel, avec un
typage statique qui permet de compiler sur la machine virtuelle Java et
JavaScript.
Son développement provient principalement d'une équipe de programmeurs chez
JetBrains basée à Saint-Pétersbourg en Russie. Le nom de ce langage vient de
l'île de Kotline situé en mer Baltique, à 25 km de St. Pétersbourg.
Google annonce pendant la conférence Google I/O 2017 que Kotlin devient le
second langage de programmation officiellement pris en charge par Android
après Java.
Au cours de cette même conférence en 2019, la société Google communique que le
développement d'applications Android deviendra de plus en plus "Kotlin-first".
Google annonce que près de 60 % des applications Android du Top 1000
embarquent du code écrit en Kotlin
Google annonce le nouveau Android 9 Pie SDK plus convivial pour Kotlin.
25
10 raisons de choisir Kotlin
1. Typage statique
2. Concis
3. Sécurisé
4. Explicite
5. Facile à apprendre
6. Capacités fonctionnelles et orientées objet
7. Entièrement interopérable avec Java
8. Construire des applications pour Serveur, Android, Navigateur et Desktop
9. Gratuit et Open Source
10. Excellent outillage
26
Kotlin : Typage statique
29
Kotlin : Explicite
Kotlin est explicite. Il fera ou permettra des choses seulement si vous lui
dites de le faire. L’explicite est considéré comme une bonne chose.
Être explicite signifie être précis sur vos choix de conception et ne rien
cacher aux lecteurs ou aux consommateurs de votre code.
Voici quelques exemples d’explicités à Kotlin :
Kotlin n’autorise pas les conversions de types implicites, par exemple, int en long ou
float pour double. Il fournit des méthodes comme toLong() et toDouble() pour le faire
explicitement.
Toutes les classes de Kotlin sont finales (non héritables) par défaut. Vous devez
explicitement marquer une classe comme étant ouverte pour permettre à d’autres
classes d’en hériter. De même, toutes les propriétés et fonctions membres d’une classe
sont finales par défaut. Vous devez explicitement marquer une fonction ou une
propriété comme étant ouverte pour permettre aux classes enfant de la remplacer.
Si vous substituez une fonction ou une propriété de classe parent, vous devez l’annoter
explicitement à l’aide du modificateur override.
30
Kotlin : Facile à apprendre
31
Kotlin : POO & Fonctionnelle
32
Kotlin : interopérable avec Java
33
Kotlin : large gamme de plates-formes
Vous pouvez utiliser Koltin pour créer des applications
pour une large gamme de plates-formes, notamment
Serveur, Android, navigateurs et Desktop.
Android dispose d’un support officiel pour Kotlin.
34
Kotlin : Gratuit et open source
Le langage de programmation Kotlin, y compris le
compilateur, les bibliothèques et tous les outils, sont
entièrement gratuits et open source. Il est disponible
sous licence Apache 2 et le projet complet est hébergé
sur Github.
35
Kotlin : Excellent outillage
36
Plan
Introduction
KOTLIN
Application mobile
37
Les commentaires
38
La fonction principale
39
Types de variables
Numbers :
Integer :
Byte : 1o : de -27 à 27-1
Short : 2o : de -215 à 215-1
Int : 4o : de -231 à 231-1
Long : 8o : de -263 à 263-1
Floating-point :
Float : 4o : Significant bits = 24 Exponent bits = 8 Decimal digits = 7
Double : 8o : Significant bits = 53 Exponent bits = 11 Decimal digits = 16
Booleans : Boolean
Characters : Char Les caractères
Strings : String Les chaînes de caractères
Arrays : Array Les tableaux
40
Les constantes
Numbers :
Integer :
Decimals: 123
Longs are tagged by a capital L: 123L
Hexadecimals: 0x0F
Binaries: 0b00001011
Floating-point :
Doubles by default: 123.5 123.5e10
Floats are tagged by f or F: 123.5f
Booleans : true and false
Characters : entre simples quotes ‘c’ \t \b \n \r \‘ \” \\ \$
Strings : “Text\n”+Variable “Text\n$Variable” (Sauf si variable est Char)
Arrays : 1..5 {1,2,3,4,5}
41
Les opérateurs
Opérateurs arithmétiques : + - / * %
Opérateurs relationnels : > < >= <= == !=
Opérateurs d’affectation : = += -= *= /= %=
Opérateurs unaires : + - ++ -- !
Opérateurs logiques : && ||
42
Déclaration des variables
Nous pouvons déclarer en Kotlin une variable grâce aux mots-
clés val et var :
val (pour valeur) : La référence de votre variable sera immuable, c’est-à-dire
que vous ne pourrez pas la modifier une fois que vous l’aurez initialisée.
En fait, c’est tout simplement l’équivalent du mot-clé final en Java ! Votre
variable pointera donc toujours vers la même référence en mémoire.
var (pour variable) : La référence de votre variable sera muable, c’est-à-dire
que vous pourrez modifier le contenu de votre variable
même après son initialisation. C’est l’état par défaut de toutes les variables
en Java. Votre variable pointera donc vers une référence en mémoire, mais
celle-ci pourra être remplacée par une autre si nécessaire.
43
La conversion de type
Les types plus petits ne sont PAS implicitement
convertis en types plus grands. Cela signifie l’obligation
d’une conversion explicite en utilisant les fonctions :
toByte() toShort() toInt() toLong() toFloat() toDouble()
=>
44
Null Safety
Par défaut, les variables en Kotlin ne supportent pas la contenance d’une
valeur nulle, à moins que vous ne l’ayez explicitement autorisée.
Ainsi, pour réaliser cela en Kotlin, nous allons simplement utiliser le point
d'interrogation ? , juste après le type de la variable.
Lors d’un appel à une fonction pour une variable Null Safety, on doit suffixer la variable par
? (c-à-d que cette fonction sera appeler uniquement si la variable est # de null
45
const
Le mot-clé const précédant le mot-clé val nous permet
de définir une constante (globale) dont la valeur sera
connue au moment de la compilation. Celle-ci ne
pourra bien évidemment pas être modifiée lors de
l’exécution de votre programme (et c’est tout l’intérêt !).
46
lateinit
Si vous ne souhaitiez pas initialiser votre variable globale avec un type non-
premitif (Classe et non pas Objet) immédiatement après sa déclaration, mais le
faire un peu plus tard dans votre code (quand par exemple une page ou un écran
a terminé de charger), et si vous écrivez la ligne suivante, Kotlin refusera de
compiler :
47