ANDROID Course

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 15

17/10/2021

Institut Supérieur des Etudes Technologiques de Béja

DÉVELOPPEMENT MOBILE
Enseignante: Mme Haïfa Chorfi

Département : Technologies de l’informatique


Niveau : SEM2/DSI3
Volume Horaire : 22.5h
Coefficient :2
Année Universitaire : 2020 / 2021

1 Mme. HAIFA CHORFI

Plan du cours

CHAPITRE 1 : Initiation à la programmation mobile-Android


CHAPITRE 2 : Concepts de base
CHAPITRE 3 : Interfaces graphiques
CHAPITRE 4 : Communication entre applications : Intent
CHAPITRE 5 : Interfaces graphiques avancées
CHAPITRE 6 : Persistance des données

2 Mme. HAIFA CHORFI

Mme Haifa Chorfi 1


17/10/2021

Institut Supérieur des Etudes Technologiques de Béja

DÉVELOPPEMENT MOBILE
Enseignante: Mme. Haïfa Chorfi

CHAPITRE 1 : INITIATION À LA PROGRAMMATION MOBILE


Niveau : SEM2/DSI3

3 Mme. HAIFA CHORFI

Introduction

4 Mme. HAIFA CHORFI

Mme Haifa Chorfi 2


17/10/2021

Systèmes d’exploitation mobile


Les appareils mobiles possèdent un système d’exploitation mobile qui est un ensemble de
programmes qui gère l'utilisation des capacités de l’appareil.
2 principaux systèmes, représentant la quasi-totalité des parts de marché
Android (Google)
iOS (Apple)
Autres
Windows phone (Microsoft)
Blackberry (RIM)
Bada de Samsung
Firefox OS
MeeGo
Tizen
Palm WebOS
Symbian OS de Nokia
Ubuntu touch

5 Mme. HAIFA CHORFI

Systèmes d’exploitation mobile


OS Société Langage de Environnement de
développement développement intégré IDE
Android Google Java et Android SDK Android Studio
Kotlin
C++ et Android NDK

IOS Apple Swift(remplace Objective-C) Xcode


iPhoneSDK

Windows Microsoft C#,VB.NET Visual Studio 2010 et Expression


Phone Phone SDK Blend.

6 Mme. HAIFA CHORFI

Mme Haifa Chorfi 3


17/10/2021

Systèmes d’exploitation mobile

7 Mme. HAIFA CHORFI

Pourquoi l’OS de Google?

Au niveau des ventes de Smartphones, Android est l’écosystème n°1 sur le


segment des smartphones depuis la fin de l’année 2010 mais aussi depuis
début 2012 sur le segment des tablettes.

Pourquoi Android ?
Android laisse le choix du terminal : Lorsque l’on souhaite utiliser iOS,
on est obligé de faire l’acquisition d’un iPhone contrairement à Android qui
permet de choisir le smartphone parmi des dizaines disponibles sur le marché.
Une mémoire extensible : Lors de l’achat d’un appareil sous iOS, il faut
choisir sa capacité de mémoire définitive. De 8 Go à 32 Go, elle est
inextensible. Android fait fi de ce blocage matériel en proposant un port
microSDHC sur les appareils qu’il anime.

8 Mme. HAIFA CHORFI

Mme Haifa Chorfi 4


17/10/2021

Pourquoi l’OS de Google?

Android est le plus ouvert de tous : Basé sur une plateforme


Linux, le système de Google est ouvert et libre.

Services intégrés : Les services Google sont parfaitement intégrés


à les terminaux équipés de son OS mobile.

Le Google Play, riche en applications gratuites : Si l’App


Store d’Apple et le Google Play ont maintenant un nombre similaire
d’applications, les versions gratuites sont plus nombreuses sur le
système mobile de Google.

9 Mme. HAIFA CHORFI

Types d’application mobile

Webapp

Application native

Application hybride

Cross-platform
10 Mme. HAIFA CHORFI

10

Mme Haifa Chorfi 5


17/10/2021

WebApp
Application mobile exécutable via le navigateur internet via tous les
appareils mobiles quelque soit leur marque et leur système
d'exploitation.
Cette application est développée avec les technologies web
classique, comme HTML5, CSS3 ou javascript.

App.ft.com walgreens.com

11 Mme. HAIFA CHORFI

11

WebApp
Avantages :
Un seul et unique code pour les différentes plateformes
Coût de développement moins important
Compatible avec tous les navigateurs
Inconvénients :
Non accessible en mode hors connexion (sauf s’il y a une mise
en cache du site)
Ne peut pas accéder aux applications natives du mobile (GPS,
appareil photo…)
Pas adapté aux traitements lourds (réalité augmentée, 3D, etc.)
Difficulté d'intégrer un module de payement pour les services
offerts

12 Mme. HAIFA CHORFI

12

Mme Haifa Chorfi 6


17/10/2021

Application native
Application que l'on télécharge et que l'on installe sur son
Smartphone ou sur sa tablette via des magasins d'applications.
Cette application est développée pour un des systèmes
d'exploitation utilisé par les Smartphones ou tablettes.
Elle est développée avec un langage spécifiques aux différents
systèmes d'exploitation : Java ou Kotlin, pour android, Objective-
C ou Swift pour ios.

13 Mme. HAIFA CHORFI

13

Application hybride
Mélange d’application native et de Web App, vous bénéficiez des
avantages des applications natives sans développer l’intégralité du
produit dans le langage de chaque plateforme.
Elle combine des éléments HTML5 sous forme de webApp et des
éléments de l'application native.
Le développement d'application hybride repose des plugins comme
Apache Cordova ou Ionic's Capacitor. Le système de plugin permet
aux développeurs d'accéder aux fonctionnalités natives des
plateformes.

14 Mme. HAIFA CHORFI

14

Mme Haifa Chorfi 7


17/10/2021

Application Cross-Platform
Des frameworks multiplateformes fonctionnent pour développer
un code partageable et réutilisable pour différents systèmes
d'exploitation
Beaucoup de gens confondent hybride et multiplateforme: la
seule similitude entre les deux types d'applications est la
« partage du code »
Écrire le code une seule fois et le réutiliser sur plusieurs plates-
formes aide à minimiser les coûts et les efforts de
développement.

15 Mme. HAIFA CHORFI

15

Comparaison
Type d’application Native Hybride Cross-platform

Code codes distincts code unique avec des code unique avec des
capacités potentielles capacités potentielles
spécifiques à la plate- spécifiques à la plate-
forme forme

Débogage Outils de débogage Outils de débogage Dépend du


natifs de développement framework
Web et natifs

Outils XCode Ionic React Native


Android Studio Apache Cordova Xamarin
Visual Studio Flutter

16 Mme. HAIFA CHORFI

16

Mme Haifa Chorfi 8


17/10/2021

Comparaison
Type d’application Native Hybride Cross-platform

– Accès complet aux


fonctionnalités de
– Coûts de
l'appareil/du système - Prise en charge de
développement réduits
d'exploitation différents systèmes
– Prise en charge de
– Performances d'exploitation
différents systèmes
puissantes - L'interface utilisateur
d'exploitation
Avantages – Interface utilisateur est presque aussi rapide
– Réutilisation du code
native (mise à jour avec que native.
– Développement
le système – Réutilisation du code
rentable
d'exploitation) – Développement à
– Grandes capacités de
– Fonctionnalité hors faible coût
personnalisation
ligne

17 Mme. HAIFA CHORFI

17

Comparaison
Type d’application Native Hybride Cross-platform

– Pas de prise en charge


multiplateforme
– Performances plus
– Coûts de – Performances plus
lentes
développement élevés lentes
– Les
– Pas de réutilisation de – Accès limité à la
fonctionnalités du
code fonctionnalité du
Inconvénients système d'exploitation
– Problème de système d'exploitation
sont restreintes
compatibilité après les – Mauvaise interaction
– Aucune interaction
mises à jour. avec d'autres
avec d'autres
– coûts de maintenance applications natives
applications natives
élevés

18 Mme. HAIFA CHORFI

18

Mme Haifa Chorfi 9


17/10/2021

Native vs hybride vs cross-platform : lequel choisir ?

Performances : Développement d'applications natives


Délai de commercialisation : Développement hybride et cross-
platform
Coûts de développement: Développement d'applications cross-
platform
Sécurité des applications : Développement d'applications natives
Personnalisation & UX: Développement d'applications natives

19 Mme. HAIFA CHORFI

19

Qu’est-ce qu’Android ?

Android est un système d’exploitation mobile:


orienté dispositif mobiles : il s’agit donc d’un
ensemble de logiciels qui sert d’interface entre le
matériel (Tablette, smartphone, netbook,
télévision, embarqué) et les logiciels applicatifs.
open source : disponibilité du code, importante
communauté d’utilisateurs.
basé sur le noyau Linux

20 Mme. HAIFA CHORFI

20

Mme Haifa Chorfi 10


17/10/2021

Versions d’Android
Les versions se succèdent rapidement et les changements qui les
accompagnent sont souvent conséquents en termes de nouvelles
fonctionnalités et d’améliorations
Dernière version 12.0 (publiée le 18 mai 2021)

Red Velvet Cake 11.0 Snow Cone: 12.0


Queen Cake
21 Mme. HAIFA CHORFI

21

22 Mme. HAIFA CHORFI

22

Mme Haifa Chorfi 11


17/10/2021

Contraintes
Pour vos développements, on doit garder à l'esprit que les
appareils mobiles ont :
Une puissance processeur plus faible
Une RAM limitée
Des capacités de stockage permanent limitées
De petits écrans avec de faibles résolutions
Des coûts élevés de transfert de données
Des taux de transfert plus lents avec une latence élevée
Des connexions réseau moins fiables
Des batteries à autonomie limitée

23 Mme. HAIFA CHORFI

23

Architecture d’Android

24 Mme. HAIFA CHORFI

24

Mme Haifa Chorfi 12


17/10/2021

Architecture d’Android
Offre les fonctionnalités de la bibliothèque Java
Android Runime standard et la machine virtuelle ART (Android
RunTime, remplaçant Dalvik officiellement depuis la
version 50 en 2014)

fournit des interfaces standard qui exposent les


HAL fonctionnalités matérielles du périphérique au
framework API Java de niveau supérieur.

Offre les services systèmes : gestion de la


mémoire , gestion processus, sécurité, réseau,
Linux Kernel pilotes de matériel
25 Mme. HAIFA CHORFI

25

Architecture d’Android
le courrier électronique, la messagerie SMS, les
calendriers, la navigation sur Internet, les contacts et ...
Applications Les applications fonctionnent à la fois comme des
applications pour les utilisateurs et pour fournir des
fonctionnalités clés auxquelles les développeurs peuvent
accéder depuis leur propre application

fournit des classes qui seront utilisées pour la création


API Java d’applications Android (gestion des fenêtre, téléphonie, ..).

fournissent un accès direct aux ressources du système.


•SurfaceManager: permet l'accès au sous-système d'affichage.
•Media Framework : lecture audio /vidéo
Bibliothèques natives •SQLite. Base de données légère et puissante.
C/C++ •OpenGL et SGL : Bibliothèques graphiques 3D et 2D.
•FreeType : Rendu des polices de caractères.
•SSL & WebKit : Moteur de rendu de pages Internet.

26 Mme. HAIFA CHORFI

26

Mme Haifa Chorfi 13


17/10/2021

Développement de l’application
1. Obtention des .class
2. Conversion des .class en .dex (du bytecode en DVM code)
3. Génération de l'apk (Packaging), Android Package file : Les applications
doivent être signées pour être déployées (pas nécessaire en
développement)
4. Téléchargement vers émulateur ou mobile pour l’exécution : il suffit
de redémarrer l’application via Android Studio pour qu’elle se recharge
dans le terminal.

27 Mme. HAIFA CHORFI

27

Développement de l’application

28 Mme. HAIFA CHORFI

28

Mme Haifa Chorfi 14


17/10/2021

Emulateur

29 Mme. HAIFA CHORFI

29

Mme Haifa Chorfi 15

Vous aimerez peut-être aussi