Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
développement mobile
Stéphane Huet
1er février 2021
Qu’est-ce qu’un smartphone ?
• Un baladeur numérique
• Un téléphone
• Un navigateur Internet
• Une boussole
• Une télé
• Un dictaphone
• Un ordinateur...
• Un baladeur numérique
• Un téléphone
• Un navigateur Internet
• Une boussole
• Une télé
• Un dictaphone
• Un ordinateur...
Public methods
void addContentView(View view, ViewGroup.LayoutParams params)
Add an additional content view to the activity.
void closeContextMenu()
Programmatically closes the most recently opened context menu, if showing.
void closeOptionsMenu()
Progammatically closes the options menu.
PendingIntent createPendingResult(int requestCode, Intent data, int flags)
Create a new PendingIntent object which you can hand to others for them to use to send result data back to your onActivi-
tyResult(int, int, Intent) callback.
final void dismissDialog(int id)
This method was deprecated in API level 13. Use the new DialogFragment class with FragmentManager instead ; this is also
available on older platforms through the Android compatibility package.
final void dismissKeyboardShortcutsHelper()
Dismiss the Keyboard Shortcuts screen.
boolean dispatchGenericMotionEvent(MotionEvent ev)
Called to process generic motion events.
boolean dispatchKeyEvent(KeyEvent event)
Called to process key events.
boolean dispatchKeyShortcutEvent(KeyEvent event)
Called to process a key shortcut event.
boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event)
Called to process population of AccessibilityEvents.
boolean dispatchTouchEvent(MotionEvent ev)
Called to process touch screen events.
boolean dispatchTrackballEvent(MotionEvent ev)
Called to process trackball events.
Panorama des solutions de développement mobile S. Huet 4/40
Plan du cours
CM TD TP
9h 24 h
Enseignants :
• Stéphane HUET (CM et TP)
• Nejat ARINIK (TP)
• Teva MERLIN (TP)
Épreuves Coefficients
Examen écrit (1h) 40 %
Épreuves pratiques
– Rendus de TP (4 séances) 20 %
– Projet (4 séances) 40 %
2 Applications natives
3 Applications web
4 Applications hybrides
Arrêt du développement de
Plus que 2 dominants
• Symbian (Nokia) en 2014
• Bada (Samsung) en 2014
• BlackBerry 10 en 2015 (support
jusqu’en décembre 2019)
• Windows 10 Mobile (Microsoft) en
2017 (support jusqu’en janvier 2020)
http://www.bestpsdtohtml.com/wp-content/uploads/2013/03/new-flexibility.png
https://11m5ki43y82budjol1gjvv5s-wpengine.netdna-ssl.com/wp-content/uploads/2015/05/hybrid-app.jpg
http://ventureaviator.com/wp-content/uploads/2017/12/Cross-platform-development.jpg
2 Applications natives
3 Applications web
4 Applications hybrides
• Objective-C
• Bonne compatiblité avec C et C++
• Fichiers header
• Instructions toutes terminées par des ;
• Manipulation explicite des pointeurs
• Utilisation d’un ramasse-miette seulement depuis Objective-C
2.0
• Swift
• Inférence de type
• Support des tuples
• Manipulation + facile des chaines de caractères, support de
l’unicode
• Programmation fonctionnelle (ex : map, filter)
• Fonction définie comme un objet
2 Applications natives
3 Applications web
4 Applications hybrides
2 Applications natives
3 Applications web
4 Applications hybrides
• Anciennement PhoneGap
• Un outil en ligne de commande pour créer des
projets et compiler du code HTML/CSS/JavaScript
vers des plateformes mobiles
• Un accès au matériel (état de la batterie, caméra,
contacts, nom de l’appareil et de l’OS, vibrations,
orientation de l’écran, géolocaisation, état de la
connexion réseau...)
• L’intégration possible de plugins pour intégrer du
code source exploitant de nouvelles possibiltés de
la plateforme et couplée avec une bibliothèque
JavaScript
• Développement de l’IU avec des frameworks Web
(ex : Bootstrap) mais pas de frameworks spécifiques
2 Applications natives
3 Applications web
4 Applications hybrides
1 import 'package:flutter/material.dart';
2
3 void main() => runApp(MyApp());
4
5 class MyApp extends StatelessWidget {
6 @override
7 Widget build(BuildContext context) {
8 return MaterialApp(
9 title: 'Welcome to Flutter',
10 home: Scaffold(
11 appBar: AppBar(
12 title: const Text('Welcome to Flutter'),
13 ),
14 body: const Center(
15 child: const Text('Hello World'),
16 ),
17 ),
18 );
19 }
20 }
Panorama des solutions de développement mobile S. Huet 39/40
Flutter : avantages et inconvénients
• Avantages
• Compilation rapide grâce au Hot reload : injection de mise à
jour du code source dans la Dart Virtual Machine pour voir
rapidement les effets
• Multiplateforme : rapide de faire un prototype puis de
développer et maintenir sur Android et IoS
• Documentation et communauté disponibles grâce à la
puissance de Google
• Inconvénients
• Bibliothèques limitées : SDK récent avec quelques fonctionnalités
manquantes, peu de widgets développées par des tiers
• Intégration : pas de plateforme d’intégration continue aussi
développée qu’en Android/iOS (comme Travis Jenkins), scripts
nécessaires pour automatiser la compilation, le test, le
déploiement