0% ont trouvé ce document utile (0 vote)
5 vues44 pages

Architecture mobile et Xamarin TestFlight

Le document présente des recommandations et spécifications pour l'architecture mobile, en abordant les contraintes matérielles et les configurations des machines cibles. Il décrit également l'évolution des réseaux mobiles de la 1G à la 5G, ainsi que les systèmes d'exploitation et les plateformes de développement pour les applications mobiles. Enfin, il fournit des exemples de code pour illustrer le développement d'applications Android.

Transféré par

pascalmwimbi62
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues44 pages

Architecture mobile et Xamarin TestFlight

Le document présente des recommandations et spécifications pour l'architecture mobile, en abordant les contraintes matérielles et les configurations des machines cibles. Il décrit également l'évolution des réseaux mobiles de la 1G à la 5G, ainsi que les systèmes d'exploitation et les plateformes de développement pour les applications mobiles. Enfin, il fournit des exemples de code pour illustrer le développement d'applications Android.

Transféré par

pascalmwimbi62
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Architecture mobile

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Recommandation
• Contraintes matérielles
• limités à des affichages simplistes IPS (API en C/C++, java, Kotlin, JavaScript,…)
• Mode Console (4 couleurs avec un fond gris)
• Faible capacité mémoire et taux de transfert de données
• Nécessité d’une faible consommation électrique
• Petite/grande taille (PDA : Personnal Digital Assistant, Palmtop,….)
• Individualité et sensibilité du contexte
• Connectivité à faible/haut débit (jeu vidéo, multimédia MMS via WAP ou GPRS)
• Entrées/sortie limitées (µCPU en duo ou quarto core, clavier en dur ou soft)
• Spécifications des machines cibles
• Machine virtuelle de taille très réduite : KVM
• Bibliothèques réduites
• 2 Configurations : CDC (KVMProfesseur
< 2 Dakanshiv,
Mo) Docteur
et CLDC (KVM<512
en Ingénierie logicielle Ko)
Profil/configuraition
• CDC : Connected Device Configuration
• CLDC : Connected Limited DC
• Le profil Foundation destiné à la configuration CDC.
• Le profil MIDP est destiné à la configuration CLDC

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Réseaux mobiles (Génération)
• 1G – NMT (Nordic Mobile Téléphone) : 1981
• Radiotéléphone analogique sans fil (appel vocal) : phonie
• Taille imposante et Réseaux saturés
• Aucun secret, débit faible et qualité sonore médiocre
• 2G-GSM (Global System of Mobile Communication) : 1990
• Meilleure qualité d’écoute (sûr et efficace)
• Mauvais support MMS
• Taille réduite (très portable) et taille de données/Application réduite (CLDC)
• Confidentielle
• Cryptage de Communication, SMS et MMS
• Lenteur sur l’envoie de données
• IMEI (International Mobile Equipement Identity) visual ou masqué : *#06#
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Réseaux mobiles (Génération)
• 2.5G-GPRS (General Packet Radio Service) : 2000
• Débit instable (Théo 171Ko/s et Prat 30ko/s)
• Accès Internet incertain (WAP: allégé) avec CX permanente et facturation
• Latence ou attente élevée suite aux besoins des users (GSM saturés)
• Aucune application décisive et publique (Groupe WhatApp, …)
• 2.75G-EDGE (Enhanced Data for GSM Evolution) : 2005
• Alternative moins couteuse que 3G
• Changement des terminaux possible
• 3G-UMTS (Universal Mobile Telecommunication System) vers 2010
• Débit 8 fois plus que GPRS (384Ko/s
• Démocratisation de l’Internet mobile : haut débit 10Mo/s, surfing web
• Visiophonie, visioconference mais couteuse
• Latence élevée, consommation énergie/data,
Professeur Dakanshiv, changement des équipements
Docteur en Ingénierie logicielle
Réseaux mobiles (Génération)
• 4G-UMTS+ ou LTA (Long Term Evolution): Vers 2015
• Haut débit de +100Mo/s à 1Go/s (LTA Avancée)
• Consommation d’énergie et de données rapides
• Latence faible
• Streaming vidéo, Appel VoIP, jeux en ligne, caméra miroir
• Très couteuse (fortune pour les uns)
• 5G- NR (New Radio) : IA et IoT : vers 2020
• Débit +10Go/s : vitesse ultra rapide, latence trop faible,
• Internet d’Objets : IoT (transport, santé, e-learning, domotiques, …)
• Couverture partielle de certaines régions (Afrique : Rwanda, Maroc, SA, …)
• Exigence de la compatibilité des téléphones avec FAI (vodaNet, OrangeNet,…)
• Installation des plusieurs dispositifs (antennes, outils,…)
• Problèmes sanitaires : enProfesseur
discussion
Dakanshiv, Docteur en Ingénierie logicielle
Firmes (Technique)
• AOL • Oracle • Sony
• Bull • Palm • Sun
• Ericsson • RIM • Symbian
• Fujitsu • Samsung • Itel
• Matsushita • Sharp • Hitachi
• Motorola • Siemens • Mitsubishi
• Microsoft • Apple • Google
Professeur Dakanshiv, Docteur en Ingénierie logicielle
PLATE-FORMES : SYSTÈMES EMBARQUES

Plateforme Outils de développement SDK (SoftWare Development Kit)


Windows Mobile •Visual studio .Net (C#) • Pocket PC SDK, • Smartphone SDK
•Xamarin (VS 2015) •MS Mobile 6.x SDK, Phone 7 SDK
Symbian Performance (natif c++) •Wireless Tool Kit

MIDP java •Standards ouverts •Wireless Tool Kit

Android •ADT Plugin pour Eclipse •Androïd SDK


(Java, code natif c++)
iPhone Xcode (Objective C, java) IPhone SDK
RIM Java et C Wireless Tool Kit (RSDK)

Professeur Dakanshiv, Docteur en Ingénierie logicielle


SYSTÈMES D’EXPLOITATION (1)

- Android de Google : développé Java/C avec Eclipse comme IDE.


Personnalisable et regroupe des appli Gmail (Obligatoire), Google Maps, PlayStore,
Agenda, Talk, Youtube,…
Fait fonctionner ++ Applis sur PlayStore
- IphoneOS/iOS d’Appel (Mac OS X) : développé avec Xcode (en Objectif-C ou Swift)
Utilise l’API Cocoa.
OS unique (sécurisé) sur les iPhone, iPod touch, iPad, iTunes store
IHM repose sur un seul bouton pour toutes les actions et un écran tactile
- Windows Phone de Microsoft : utilise le C/C++ et .Net
IHM centré sur le contenu que lesDakanshiv,
Professeur applis etenfacile
Docteur Ingénierie à maitriser
logicielle
SYSTÈMES D’EXPLOITATION (2)

- BlackBerry OS Pro par excellence RIM’s (Research In Motion), développé en java


IHM sobre conçue pour les IO
Consommation faible avec clavier dur intégré (réduisant la taille de l’écran)
- Bada de Samsung : développé en C++ et java
- Symbian OS de Nokia : utilise le C++ et Qt, java
- Tecno, Itel : avec la licence d’Andoid

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Professeur Dakanshiv, Docteur en Ingénierie logicielle
EMULATEURS

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Boutiques d’Applis
iOS :
- App Store, iTunes Store :iPhones, iPads avec extension .ipa (iOS App Store Package)
- TestFlight (Apple) souvent en version beta (bien avant)
- AltStore (non officiel) : installation des applis sans passer par App Store
- Cydia (iPhone Jailbreakes uniquement et non sécurisant)
Android : avec extension .apk (Android Package) et .aab (Android App Bundle :new format)
et format secondaire : .obb (pour stocker les gros fichiers), .apks, .xapk
- Google Play Store (Officiel) : géré par Google et contrôlé par Play Protect
- Amazone AppStore : Alternative connue (ex : kindle Fire) et pour les applis standards
- Huawei AppGallery : Phone HUAWEI
- SamSung Galaxy Store : pour SS et connue pour les applis de jeux, thèmes
- Aptoide (Communautaire de création), APKPure/APKMirror (via le Site Web) : .xapk
Professeur Dakanshiv, Docteur en Ingénierie logicielle
- F-Droid : dédié aux applis opensource
ANDROID

- OS Mobile Linux complet gérant les applis :


- Avec les API des programmation : interface user, outils
- Navigateurs, courriers
- Commercialisables, évolutifs, obsolescent et rapide : syntaxe (param, Res, classe),
concept (principes, organisation)
- Avec une autoformation permanente
- Avec IHM Ergonomique et Planification (layout, contrôle, event, intentions, Interactions)
- Avec IHM multitouche, une BD intégrée (sqlite), MMS
- A Réseau EDGE, 3G, 4G, SMS, MMS

Professeur Dakanshiv, Docteur en Ingénierie logicielle


LES COMPOSITES ANDROID

Professeur Dakanshiv, Docteur en Ingénierie logicielle


CYCLE DE VIE

Professeur Dakanshiv, Docteur en Ingénierie logicielle


CYCLE DE VIE D’ANDROID

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Professeur Dakanshiv, Docteur en Ingénierie logicielle
ANDROID

- Appli Composée de :
- Sources Java (ou kotlin) compilés par la JVM Dalvit ou ART
- Fichiers appelés Ressources : RES
- Format XML : Interface, textes, …
- Format PNG : icônes, images, …
- Manifest = description du contenu du logiciel
- L’archive AVD
- Les autorisations
- Signature des fichiers, durée, etc..

Professeur Dakanshiv, Docteur en Ingénierie logicielle


SDK ANDROID
- Il contient de :
- Librairies java pour créer des logciels
- Outils de mise en boite des logiciels
- AVD : émulateur de tablettes pour tester les applications
- ADB : outil de communication avec les vraies tablettes
- Gradle : outils de compilations

SDK Manager
- Il contient de :
- Gestionnaire, une appli pour le choix de composants à installer ou Maj

Professeur Dakanshiv, Docteur en Ingénierie logicielle


IHM
- Elle possède de :
- Bibliothèques propres
- Décrit par le fichier XML
- Des activités

ACTIVITES
- Elle correspond à :
- L’affichage et les interactions des écrans
- Gére les events, lancement des codes applicatifs
- Cycle de vie (applets, midlets, EJB, …)
- L’utilisation des Intents (Intentions)
Professeur Dakanshiv, Docteur en Ingénierie logicielle
IHM
- Elle possède de :
- Classes : ensemble de composants
- Objet : composant particulier
- Famille de conteneurs et non conteneurs

Professeur Dakanshiv, Docteur en Ingénierie logicielle


MVC
- Elle possède de :
- Classe Noyau : de base [Link] ([Link] de AWT)
- Classe de base de conteneurs [Link] ([Link] de AWT)
- Utilise le layout: Linearlayout (range oriental), Relativelayout, Absolutelayout

Widgets (win Objet) ou controleur

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Contrôles
- Ils sont regroupé dans le package
[Link] venant de [Link]
:
TextView, Button, EditText, CheckBox,
RadioButton, ….

Professeur Dakanshiv, Docteur en Ingénierie logicielle


OBJETS

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Evènements
- Deux événements qui sont :
1) Création d’une auditeur d’event auprès de View
2) Spécialiser la méthode adaptée et lancée lors de l’événement
Ex : OnXXXListener et l’écouteur setOnXXXListener

Professeur Dakanshiv, Docteur en Ingénierie logicielle


ACTIVITE ANDROID-JAVA
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
Vos_Objets
Vos_Procedures()
}// void
}//class
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Intention (I
(Intent)
ntent)
- Activité préparant le lancement d’une autre activité ou interface
- Doit avoir un argument appelé Context

- Déclarer la nouvelle activité [Link] dans le manifest ([Link]

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Intention (I
(Intent)
ntent)
Intent intent = new Intent(this, [Link]);
startActivity(intent);
finish();

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Nouvelle activité

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Boite de message
- Toast :

- Message :
[Link](view, "Replace with your own detail action",Snackbar.LENGTH_LONG)
.setAction("Action", null).show();

- AlertDialog :

// import [Link];
[Link] confirm = new [Link](this);
[Link]("Suppression");
[Link]([Link].ic_dialog_alert);
[Link]("Vous confirmez la suppression ?");
Ensuite, on rajoute les boutons et leurs écouteurs.
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Boite de Dialogue
bintent=(Button)findViewById([Link]);
[Link](new [Link]() {
@Override
public void onClick(View view) {
AlertDialog bm=new [Link]([Link]).create();
[Link]("Ulizo");
[Link]("Voulez vous Fermer ?");
[Link](AlertDialog.BUTTON_NEGATIVE, "No", new [Link]() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
[Link]([Link], "Merci de Rester", Toast.LENGTH_SHORT).show();
}
});
[Link](AlertDialog.BUTTON_POSITIVE,"Yes", new [Link]() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent fermer=new Intent(Intent.CATEGORY_HOME);
startActivity(fermer);
}
});
[Link]();
}
});
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Exemple
public class MainActivity extends AppCompatActivity {
Button b1,b2,b3; EditText Z1,Z2,Z3, Liste; private String reaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
b1=(Button)findViewById([Link].Afficher1);
b2=(Button)findViewById([Link].Afficher2);
b3=(Button)findViewById([Link].Afficher3);
Z1=(EditText) findViewById([Link].Zone1);
Z2=(EditText) findViewById([Link].Zone2);
Z3=(EditText) findViewById([Link].Zone3);
Liste =(EditText) findViewById([Link]);
[Link](new [Link]() {
@Override

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Exemple
public void onClick(View v) {
int m=[Link]([Link]().toString());
int n=[Link]([Link]().toString());
Double K=(double)m*n;
[Link]([Link]());
if ([Link]([Link]().toString())>=10 &&
[Link]([Link]().toString())<100)
reaction= [Link]()+":Valeur supérieure \n";
if ([Link]([Link]().toString())>=100)
reaction=[Link]()+":Grande Valeur \n";
if ([Link]([Link]().toString())<10)
reaction=[Link]()+ ":Petite Valeur \n";
[Link](reaction);
[Link]([Link],"Le Resultat est "+
[Link](),Toast.LENGTH_LONG).show();

}
});
}
Professeur Dakanshiv, Docteur en Ingénierie logicielle
}
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Exemple calculatrice (Event)

[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]("");
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link](""+[Link]([Link]().toString())*
[Link](rese));
}
});

Professeur Dakanshiv, Docteur en Ingénierie logicielle


Exemple calculatrice (Event)
[Link](new [Link]() {
@Override
public void onClick(View v) {
rese=""+[Link]();
[Link]("");
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
if ([Link]().equals("")) [Link]([Link]());
else [Link]([Link]().toString()+ [Link]());
}
});

Professeur Dakanshiv, Docteur en Ingénierie logicielle


SQLITES
SQLiteOpenHelper
SQLiteDatabase

getWritableDatabase
getReadableDatabase
query
rawQuery
moveToNext
getString
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Professeur Dakanshiv, Docteur en Ingénierie logicielle
Professeur Dakanshiv, Docteur en Ingénierie logicielle
TP (C# ou VB)
Port Adresse IP . . . Connexion

Envoyer

Messages envoyé Date/Heure Messages Reçus Date/Heure Nom du Correspondant

Messages signalant que un client/serveur est entrain d’envoyer une information Enregistrer
Professeur Dakanshiv, Docteur en Ingénierie logicielle
TP (Android/Java)

- Faites Simuler Whatsapp ou Autre Messagerie instantanée


- Faites une application avec Toast de CRUD avec SQLite
Professeur Dakanshiv, Docteur en Ingénierie logicielle

Vous aimerez peut-être aussi