Académique Documents
Professionnel Documents
Culture Documents
Développement
d’applications
mobiles
Evaris Fomekong
http://www.uy1.uninet.cm/
Programme
01 Objectifs du cours
Agenda 02 Appareils mobiles et
apps
03 Environnements et
plateformes de
développement mobile
04 Analyse des besoins,
requis et
fonctionnalités
05 Conception UI/UX
06 Utilisation des ressources
Objectifs du cours
85 GIT 85
Concepts Logiciel
Application %
IDE
GIMP
%
Mobile
Github
HTML
CSS 65 VCS
Framework
65
JAVASCRIPT %
%
TypeScript
Angular
Ionic 40%
Algorithmique
90%
Appareils
mobiles et apps
une vue
d'ensemble
Chapitre II, III
01 Appariel Mobile
Agenda ❖ Materiel
❖ Systeme d’exploitation
❖ Android
❖ IOS
❖ Autres
02 Application Mobile
❖ Concept
❖ Native
❖ Hybride
❖ Web
❖ Language
❖ Java
❖ Swift
❖ Javascript
❖ Framework
❖ React Native
❖ Cordova
❖ Ionic
A- Appariel Mobile
Synopsis
Ces dernières années ont été passionnantes dans le développement des technologies
mobiles. Il semble que chaque jour, il y a quelque chose de nouveau qui se passe sur
nos téléphones et tablettes pour rendre l'expérience encore plus intense et cette
tendance ne montre aucun signe de ralentissement.
Alors, que pouvons-nous attendre dans un avenir proche? Voici cinq tendances mobiles
sur lesquelles nous devons garder un oeil.
Tendances mobiles
3. Outils de travail
1. Evolution des tailles Les appareils mobiles ont longtemps été considérés
comme outils de communication avec une utilité
Pendant un certain temps, il semblait que les limitée pour le travail. Cela change, grâce à
appareils mobiles devaient seulement continuer l'introduction de nouveaux appareils comme l'iPad Pro
à devenir plus petits. Ensuite, l'introduction de et Surface Pro. On commence à rechercher des
l'iPhone 6 Plus a incité les constructeurs a appareils qui offrent plus d'outils et de fonctionnalités,
proposer des nouveautés plus grandes jusqu'à telles que des applications multi-écrans, des
l'introduction de l'expression "Phablet" pour applications plus avancées, une autonomie et un
décrire ces appareils surdimensionnés. stockage accrus..
2. Performance Web
Le Web mobile poursuit son ascension régulière. En 4. Autonomie de la batterie
2015, un rapport de Morgan Stanley a montré que Les fabricants sont à l'écoute et à la
plus de gens utilisaient le Web mobile que les recherche de nouvelles solutions pour
applications et que la plupart des gens sont plus augmenter la vie de la batterie sans
susceptibles de consulter un site Web sur leur compromis sur la taille et le poids des
appareil avant de télécharger une application. En appareils. Déjà, la durée de vie d'une
outre, il y a une perte importante de l'engagement batterie standard a augmenté d'environ
parmi les utilisateurs qui téléchargent des 25% au cours des cinq dernières années.
applications; il semble qu'une majorité de personnes
qui télécharge et installe une application la supprime
après.
Evolution des Appariels Mobiles
le Siemens S10 a donné vie aux Les smartphones sont devenus de
En 1983, le monde a écrans de téléphones portables plus en plus au cœur de la vie
obtenu le tout premier pour la première fois en 1997. La moderne, offrant bien plus que de
téléphone mobile portable même année, Hagenuk a lancé le simples fonctionnalités de
sous la forme du Motorola GlobalHandy, le premier appareil communication. Le premier service
DynaTAC 8000X. Cela sans antenne externe. La 4G du Royaume-Uni a été lancé
coûtait 4000 $ USD et était personnalisation a également dans 11 villes par EE en 2012, avec
un énorme symbole de démarré de façon spectaculaire des vitesses de téléchargement
statut à l'époque. . avec Ericcson offrant des panneaux pouvant atteindre 12 Mbps.
de clavier avant de couleur
interchangeables.
1983 1998 2010
2020
Le Royaume-Uni et les
États-Unis
commencent à
déployer le réseau 5G,
1994 2003 les premières
Le GSM a été lancé pour la La mise en œuvre de la 3G a permis à indications indiquent
première fois en Europe en des vitesses de téléchargement allant des vitesses de
1991 avec l'Orbitel TPU jusqu'à 2MBS en mars 2003, "3" étant transfert de données
900 sur le marché, mais ce le premier à offrir le service au réelles 10 fois plus
n'est qu'en 1992 que les Royaume-Uni. RIM a apporté le rapides que la 4G.
téléphones portables n'ont courrier électronique mobile aux
plus été limités à une masses avec sa gamme de terminaux
utilisation professionnelle. BlackBerry populaires comme le 8100
Pearl. L'avènement des caméras
B- Application Mobile
Synopsis
Le marché du mobile connaît une extension folle ces dernières années. Depuis 2015, les
utilisateurs surfent plus sur un smartphone ou une tablette que sur leur ordinateur. Nous
n'utilisons plus notre smartphone uniquement pour téléphoner, et ça, les géants du
mobile l'ont bien compris.
Qui dit smartphone ou tablette dit bien sûr application mobile. Vous savez ces petites
pastilles qu'on retrouve chez tout le monde, qui permettent de jouer, consulter ses mails,
naviguer sur les réseaux sociaux, etc. Environ 170 milliards d’applications mobiles ont
été téléchargées dans le monde entier.
Il existe deux types principaux d'applications mobiles : les applications natives et les
applications cross-platforms.
Application
Mobile
Types d’applications mobiles
Application Native
ou Plateformes
Android.
IOS
Natives Apps Windows Phone
BlackBerry
Laganges
Java/Kotlin.
C-objective/Swift
C#
C++
Natives Apps
les applications natives ou « Natives Apps »
Celles-ci correspondent à des logiciels créés uniquement pour
une plateforme mobile spécifique. Le développement de ces
logiciels se fait au travers du SDK ou software développent kit de
la plateforme mobile en question. Le nom de ces applications
vient du fait qu’elles sont développées exclusivement avec le
langage « natifs », par exemple le langage JAVA ou le langage
Objective-C. Les natives App sont téléchargées à partir d’une
plateforme de téléchargement qui est souvent un Store applicatif.
C’est par exemple le cas pour l’Apple store ou encore Google
Play.
60% 50%
Natives Apps
Ionic.
Monaca
Web Apps Onsen UI
Framework7
Laganges
Javascript
CSS
Html
Types d’applications mobiles
les applications Web ou « Web Apps »
Elles correspondent à des sites Web qui sont conçus
spécialement pour un affichage optimisé pour mobile. Pour
accéder à ces sites Web, on utilise le navigateur Internet qui est
sur le mobile. Ces applications mobiles sont développées
principalement à partir de technologies Web comme le HTML5 ou
encore CSS3. Grâce au support HTML5, il est dès lors, possible
d’accéder à environ 80 % des fonctions présentes sur le mobile.
❖ Un de taille, elles n’ont pas accès à ❖ Leur code unifié permet la comptabilité avec
toutes les fonctions présentes sur le tous les navigateurs, cela permet aux
mobile. Par exemple, il leur est applications Web d’être développées plus
impossible d’accéder au répertoire du rapidement et donc d’obtenir une réduction
mobile. conséquente des coûts du projet.
❖ Elles sont pas deployables sur les ❖ De plus, les Web App sont simples à
stores des differents platformes natives développer sur ces plateformes, puisque
reduisant les canaux d’acces à celles-ci ne les soumettent pas au test de
l’application validation..
Application Hybride
ou Plateformes
Ionic.
Langages
Javascript
CSS
Html
TypeScript
Frameworks
Angular
React
Vue
Types d’applications mobiles
les applications de type hybride ou « hybrid Apps »
Ces dernières sont considérées comme un mix, entre les Web
Apps et les Nativ Apps. En effet, elles sont compatibles avec
toutes les plateformes mobiles. Mais ces applications sont
principalement développées à l’aide d’HTML5, aujourd’hui, qui
est très performant mais qui utilisent aussi d’autres langages
Web comme le CSS et le JavaScript.
60%
30%
Natives Apps
Javascript(Angular,Re
Ionic Ionic Visual Studio
act, ES6, Vue)
Html.
CSS
SCSS
Metier
Javascript
TypeScript
Angular
Ionic
Resources
Config
Build
Ionic Avance
Resource Native
Appels API
Deploiement
0%
Progression
Ionic est un framework open source qui permet de créer des applications mobiles grâce aux
technologie simple du web à savoir HTML / CSS / Javascript / Cordova. On appelle cela des
applications Hybride.
Theorie Pratique
Le fonctionnement théorique d’Ionic En pratique Ionic est très simple
n’est pas très compliqué. C’est une d’utilisation pour toutes personnes
jonction subtile entre Angular ayant déjà fait du développement web.
(Javascript) / HTML / CSS et D’autant plus si vous avez déjà
Cordova.. travaillé avec Angular.
Cordova/Capacitor UI/UX
Il permet de crée des applications En effet, pour tout ce qui va être le «
natives mobiles en agissant comme theming » donc faire une jolie
un container qui va permettre d’utiliser application Ionic embarque déjà dans
les fonctions natives des téléphones sa documentation énormément de
(par exemple le GPS, l’accéléromètre, composants.
les fonctions de partage intégré,
l’appareil photo …)
Road Map
RESOURCE NATIVE
APPELS API
HTML/CSS ANGULAR DEPLOIEMENT SUR STORE
1 3 5
2 4
METIER IONIC
JAVASCRIPT/TYPESCRIPT RESOURCE
CONFIG
UI COMPONENT
BUILD
HTML/CSS
HTML
Language Exemple
Le HTML est donc un langage de
balisage, c’est-à-dire un langage qui va
nous permettre de définir les différents
contenus d’une page.
CSS
Role
Historique
Le CSS vient résoudre un problème bien différent
Le CSS a été créé en 1996, soit 5 ans
du HTML : en effet, le HTML sert à définir les
après le HTML. Les sigles « CSS » sont
différents éléments d’une page, à leur donner du
l’abréviation de « Cascading
sens. Le CSS, lui, va servir à mettre en forme les
StyleSheets » ou « feuilles de styles en
différents contenus définis par le HTML en leur
cascade » en français.
appliquant des styles.
css
Language Exemple
Le HTML va donc créer la structure des pages
tandis que le CSS va nous permettre de
modifier l’apparence des contenus de la page.
On va ainsi par exemple pouvoir définir la
taille, la couleur ou l’alignement de certains
contenus HTML et notamment en l’occurrence
de certains textes dans notre page.
HTML
Les bases.
✓ Le langage HTML tout entier repose sur l’utilisation d’éléments. Si vous comprenez bien ce qu’est
un élément (balise), vous comprenez le HTML..
✓ Les éléments HTML vont nous permettre de créer la structure d’une page HTML, de définir chaque
contenu de notre page et également de passer certaines informations utiles au navigateur pour
afficher la page.
✓ Dans une page, nous allons utiliser les éléments en HTML pour marquer du contenu, c’est-à-dire
pour lui donner du sens aux yeux des navigateurs et des moteurs de recherche.
✓ Aujourd’hui, il existe plus de 120 éléments HTML différents aux rôles très variés et qui font la
richesse de ce langage.
.
HTML
Les balises.
✓ Un élément HTML peut être soit constitué d’une paire de balises (ouvrante et fermante) et d’un
contenu, soit d’une balise unique qu’on dit alors « orpheline ».
✓ L’élément p (qui sert à définir un paragraphe) est par exemple constitué d’une balise ouvrante,
d’une balise fermante et d’un contenu textuel entre les balises. L’idée ici est que le texte contenu
entre les deux balises va être le texte considéré par le navigateur comme étant un paragraphe.
✓ Comme vous pouvez le constater, la balise ouvrante de l’élément est constituée d’un chevron
ouvrant <, du nom de l’élément en question et d’un chevron fermant >.
✓ . Certains éléments en HTML ne vont être constitués que d’une balise qu’on appelle alors orpheline.
Cela va être le cas pour certains éléments qui ne possèdent pas de contenu textuel comme
l’élément br par exemple qui sert simplement à créer un retour à la ligne en HTML et qui va s’écrire
comme ceci
Exemple
HTML
Les attributs.
✓ les éléments vont également pouvoir contenir des attributs qu’on va alors placer au sein de la balise
ouvrante de ceux-ci.
✓ Pour certains éléments, les attributs vont être facultatifs tandis que pour d’autres ils vont être
obligatoires pour garantir le bon fonctionnement du code HTML.
✓ Les attributs vont en effet venir compléter les éléments en les définissant plus précisément ou en
apportant des informations supplémentaires sur le comportement d’un élément.
✓ . Un attribut contient toujours une valeur, qu’on peut cependant parfois omettre dans le cas des
attributs ne possédant qu’une seule valeur (car la valeur est alors considérée comme évidente).
Exemple
La structure minimale
d’une page HTML
✓ Le DOCTYPE: sert à indiquer le type du document.
Standards Structure
✓ L’élément HTML: L’élément html va représenter notre page en
Le W3C, en définissant des standards Le schéma de base d’une page HTML
soi. On va insérer tout le contenu de notre page (et donc les
de développement, a véritablement va donc toujours être le même. C’est
autres éléments) à l’intérieur de celui-ci.
simplifié la tâche aux développeurs.. ce que nous appellerons la « structure
minimale d’une page HTML valide ».
✓ Les éléments head et body: L’élément head est un élément
d’en-tête. Il va contenir des éléments qui vont servir à fournir
des informations sur la page au navigateur. L’élément body va Etat de l’art Variantes
lui contenir tous les éléments définissant les contenus « En effet aujourd’hui, tous les Cependant, cela n’est possible que
visibles » de la page, c’est-à-dire les contenus à destination de navigateurs sérieux suivent les parce que les développeurs eux-
l’utilisateur. standards proposés par le W3C, ce mêmes suivent certains schémas de
qui n’était pas forcément le cas dans construction de leur page qui sont
✓ L’élément meta : sert lui à transmettre des meta informations le passé. anticipables et attendus par les
sur la page au navigateur. Cet élément possède de nombreux navigateurs.
attributs différents.
HTML
Les entités.
✓ Le HTML possède des caractères réservés. Par exemple, vous ne pouvez pas écrire les signes «
< » et « > » tels quels dans vos pages web, tout simplement car le navigateur pensera que vous
venez d’ouvrir une balise d’élément.
✓ Pour remédier à ce problème, nous allons devoir « échapper » ces caractères réservés en utilisant
ce qu’on appelle des entités HTML. Les entités vont être des suites de caractères représentant un
caractère réservé en HTML.
Exemple
CSS
Les bases (les selecteurs).
✓ Le CSS est un langage qui a été inventé pour styliser les contenus de nos pages en leur appliquant
des styles.
✓ Pour pouvoir appliquer un style à un contenu, il va déjà falloir le cibler, c’est-à-dire trouver un moyen
d’indiquer qu’on souhaite appliquer tel style à un contenu en particulier.
✓ Pour cela, nous allons utiliser des sélecteurs. Les sélecteurs sont l’un des éléments fondamentaux
du CSS.
✓ De manière très schématique et très simplifiée, nous allons utiliser nos sélecteurs en CSS pour
cibler des contenus HTML et leur appliquer des styles.
✓ Il existe différents types de sélecteurs en CSS : certains sélecteurs vont s’appuyer sur le nom des
éléments, comme le sélecteur CSS p par exemple qui va servir à cibler tous les éléments p d’une
page. Ce type de sélecteurs est appelé « sélecteur d’éléments » tout simplement car ils vont être
identiques aux éléments HTML sélectionnés ou encore « sélecteurs simples ».
✓ D’autres sélecteurs, en revanche, vont être plus complexes et nous permettre de sélectionner un
élément HTML . en particulier ou un jeu d’éléments HTML en fonction de leurs attributs ou même de
leur état : on va ainsi pouvoir appliquer des styles à un élément uniquement lorsque la souris de
l’utilisateur passe dessus par exemple.
Les propriétés CSS
Définition
Les propriétés vont nous permettre de choisir quel(s)
aspect(s) (ou “styles”) d’un élément HTML on souhaite
modifier.
Par exemple, nous allons pouvoir modifier la couleur
d’un texte et lui appliquer la couleur que l’on souhaite
grâce à la propriété color (« couleur », en français).
✓ Dans le cas présent, nous avons notre code HTML d’un côté et nous aimerions lui appliquer des
styles en CSS. Cependant, il va falloir d’une manière ou d’une autre « lier » notre code CSS à notre
code HTML afin que les éléments de nos pages HTML tiennent bien compte des styles qu’on a
voulu leur appliquer en CSS.
✓ Pour faire cela, nous allons pouvoir écrire le code CSS à trois endroits différents. Chaque méthode
va présenter des avantages et des inconvénients selon une situation donnée et c’est le sujet que
nous allons aborder dans cette leçon.
Synopsis
Le CSS va nous permettre de mettre en forme nos contenus HTML en appliquant des
styles aux différents éléments. Cependant, pour appliquer un style particulier à un ou
plusieurs éléments HTML en CSS, il va avant tout falloir les cibler, c’est-à-dire indiquer
avec précision à quels éléments doivent s’appliquer les styles créés en CSS.
Le but de cette leçon est d’apprendre à se servir de quelques sélecteurs CSS « simples
» et de comprendre leur limitation. Nous allons également en profiter pour définir plus
précisément les différents types de sélecteurs CSS et directement voir comment
combiner différents sélecteurs simples pour en créer des plus complexes.
Sélecteurs éléments « simples »
Content Here
La manière la plus simple de cibler un
type d’éléments HTML en CSS est
néanmoins d’utiliser des sélecteurs
éléments ou sélecteurs « simples ».
Ces sélecteurs sont appelés «
sélecteurs éléments » tout simplement
car ils reprennent le nom des
éléments HTML qu’ils sélectionnent..
Limites
En effet, en utilisant uniquement les
sélecteurs éléments, nous allons être
obligés d’appliquer les mêmes styles à
tous les éléments d’un même type ce
qui n’est pas très flexible.
Exemple
Comment appliquer des styles à un
Par exemple, le sélecteur CSS p va élément en particulier ou à plusieurs
cibler tous les éléments p (c’est-à-dire éléments différents choisis ? Pour
tous les paragraphes) d’une page faire cela, nous allons devoir utiliser
HTML. des sélecteurs complexes.
.
Sélecteurs complexes et combinateurs
Synopsis
En effet, en plus des sélecteurs simples, le
CSS met à notre disposition une panoplie de
sélecteurs que l’on va pouvoir utiliser pour
cibler des contenus de manière très précise
Exemple
On va pouvoir utiliser des sélecteurs CSS
combinateurs qui vont être en fait la combinaison de
plusieurs sélecteurs simples à l’aide de caractères
spéciaux à la signification précise ;
Caracterisques
Les valeurs indiquées pour les attributs ne doivent
contenir ni caractères spéciaux ni espaces et
commencer par une lettre. En pratique, on
essaiera d’attribuer des valeurs qui font sens à
nos différents attributs.
Notez déjà que chaque id doit avoir une valeur
propre ou unique dans une page. En revanche, on
va pouvoir attribuer la même valeur à plusieurs
attributs class différents.
SASS
concept
Avant d’utiliser Sass à proprement parler, vous devez savoir
que SASS supporte deux syntaxes différentes. Ces deux
syntaxes sont représentées par deux extensions de fichiers
différentes : les extensions .scss et .sass:
✓ Les variables Sass sont très simple d’utilisation : il suffit d’utiliser un signe $ (dollar) suivi d’un nom pour déclarer (c’est-à-dire créer) une
variable et d’affecter une valeur à ce nom en séparant le nom de la valeur par le signe : (deux-points).
✓ Sass met à notre disposition le drapeau !default qui permet de réaliser cela. En effet, ce drapeau permet d’indiquer qu’une valeur doit
être affectée à une variable uniquement si cette variable n’est pas définie ou si sa valeur est null.
✓ La “portée” des variables définit l’espace dans lequel les variables vont être accessibles. Les variables SASS peuvent avoir une portée
soit globale, soit locale.
✓ Les variables déclarées en dehors des accolades (dans les fichiers .scss) sont appelées variables globales. Les variables globales sont
disponibles (utilisables) n’importe où après leur déclaration, même dans une autre feuille de style.
✓ Les variables déclarées dans des blocs (les accolades dans les fichiers .scss) sont généralement locales et ne sont accessibles que
dans le bloc où elles ont été déclarées.
✓ le drapeau SASS !global qui permet d’indiquer qu’une variable doit être considérée comme globale quelque soit l’endroit où elle a été
déclarée.
.
SASS
Les fontions
✓ Une fonction est un bloc de code contenant une suite d’instructions
cohérentes et dont le rôle est d’effectuer une tâche précise.
✓ Le sélecteur parent & est un sélecteur spécial inventé par Sass qui
est utilisé dans les sélecteurs imbriqués pour faire référence au
sélecteur extérieur.
.
SASS
L’heritage
✓ Sass nous permet à travers une règle @extend de mettre en place
un système d’héritage des styles d’un sélecteur à un autre.
.
SASS
Mixins/boucles/conditions/import
✓ Les mixins Sass nous permettent de créer des groupes de déclarations CSS en vue de
les réutiliser plus tard dans notre code.
✓ On va créer un mixant Sass avec la règle @mixin. Il va falloir donner un nom à chacun
de nos mixins pour pouvoir s’ne resservir plus tard. Ensuite, on va inclure nos mixins
dans n’importe quelle déclaration CSS grâce à la règle @include.
✓ Sass met à notre disposition quatre règles @ nous permettant de générer des structures
de contrôle qui vont se manifester soit sous forme de conditions (le code ne sera exécuté
que si telle condition est remplie), soit sous forme de boucles (le code sera exécuté un
certain nombre de fois tant qu’une condition de sortie de boucle n’est pas vérifiée).
✓ @if et @else permettent d’exécuter un bloc de code SI (if) une condition est
remplie ou d’exécuter un autre code SINON (else) ;
✓ @each évalue un bloc pour chaque élément d’une liste ou chaque paire d’une
map (le mapping correspond au fait de lier certaines données entre elles) ;
✓ @for évalue un bloc un nombre de fois précisé lors de la création de la règle (le
nombre d’évaluation est connu à l’avance) ;
✓ @while évalue un bloc jusqu’à ce qu’une certaine condition de sortie soit remplie
(le nombre d’évaluation n’est pas connu à l’avance).
✓ Le CSS dispose d’une option d’importation du code à travers la règle @import qui nous
.
permet d’importer des règles dans une feuille de style à partir d’autres fichiers CSS.
✓ Sass s’appuie sur cette règle @import et nous offre une option d’importation
avec @import moins gourmande en termes de ressources puisqu’au lieu de créer une
nouvelle requête HTTP Sass va récupérer le fichier qu’on souhaite importer et le
combiner avec le fichier dans lequel on l’importe afin de n’envoyer au final qu’une seule
feuille de style au navigateur.
30%
Progression
Metier. (Javascript/Typescript/Angular)
Theorie Pratique
Le fonctionnement théorique d’Ionic En pratique Ionic est très simple
n’est pas très compliqué. C’est une d’utilisation pour toutes personnes
jonction subtile entre Angular ayant déjà fait du développement web.
(Javascript) / HTML / CSS et D’autant plus si vous avez déjà
Cordova.. travaillé avec Angular.
Cordova/Capacitor UI/UX
Il permet de crée des applications En effet, pour tout ce qui va être le «
natives mobiles en agissant comme theming » donc faire une jolie
un container qui va permettre d’utiliser application Ionic embarque déjà dans
les fonctions natives des téléphones sa documentation énormément de
(par exemple le GPS, l’accéléromètre, composants.
les fonctions de partage intégré,
l’appareil photo …)
JavaScript
✓ le JavaScript entre en jeu : ce langage va nous permettre de manipuler des contenus HTML ou des
styles CSS et de les modifier en fonction de divers évènements ou variables. Un évènement peut
être par exemple un clic d’un utilisateur à un certain endroit de la page tandis qu’une variable peut
être l’heure de la journée.
.
JAVASCRIPT
Le JavaScript, un
Le JavaScript, un langage orienté JavaScript, API, librairies et framework
un langage (principalement)
langage interprété objet
côté client
Workflow
En effet résumons ce qu’il se passe dans ce
cas :
Le navigateur commence à analyser (ou à traiter)
le code HTML ;
L’analyseur du navigateur rencontre un
élément script ;
Le contenu JavaScript est demandé et
téléchargé (dans le cas où il se situe dans un
fichier externe) puis exécuté. Durant tout ce
temps, l’analyseur bloque l’affichage du HTML,
ce qui peut dans le cas où le script est long
ralentir significativement le temps d’affichage de
la page ;
Dès que le JavaScript a été exécuté, le contenu
HTML finit d’être analysé et est affiché.
JAVASCRIPT
Variables
✓ Une variable est un conteneur servant à stocker des informations de
manière temporaire, comme une chaine de caractères (un texte) ou un
nombre par exemple.
✓ Pour déclarer une variable en JavaScript, nous allons devoir utiliser le mot
clef var.
✓ Pour affecter une nouvelle valeur dans une variable déjà initialisée, on va
se contenter d’utiliser à nouveau l’opérateur d’affectation =.
.
JAVASCRIPT
Structures de controle
✓ On appelle « structure de contrôle » un ensemble d’instructions qui
permet de contrôler l’exécution du code.
.
JAVASCRIPT
Structures de controle
.
JAVASCRIPT
Fonction
✓ Une fonction correspond à un bloc de code nommé et réutilisable et dont le but est d’effectuer
une tâche précise.
✓ Le langage JavaScript dispose de nombreuses fonctions que nous pouvons utiliser pour
effectuer différentes tâches. Les fonctions définies dans le langage sont appelées fonctions
prédéfinies ou fonctions prêtes à l’emploi car il nous suffit de les appeler pour nous en servir.
✓ L’intérêt principal des fonction prédéfinies est de nous permettre de réaliser des opérations
complexes de manière très simple : en les appelant, tout simplement.
✓ Pour pouvoir utiliser une fonction personnalisée, en pratique, il faut déjà la définir. Pour définir
une fonction, on va utiliser le mot clef function suivi du nom que l’on souhaite donner à notre
fonction puis d’un couple de parenthèses.
✓ Les arguments d’une fonction sont des valeurs qu’on va passer à notre fonction afin qu’elle
fonctionne normalement ou pour préciser le comportement qu’elle doit adopter. Certaines
fonctions ne vont pas nécessiter d’arguments, d’autres vont avoir besoin
. d’un argument, d’autres
de deux, etc. De plus, certains arguments vont être obligatoires tandis que d’autres vont être
facultatifs.
✓ Une fonction récursive est une fonction qui va s’appeler elle-même au sein de son code.Tout
comme pour les boucles, les fonctions récursives vont nous permettre d’exécuter une action en
boucle et jusqu’à ce qu’une certaine condition de sortie soit vérifiée.
JAVASCRIPT
POO
✓ La programmation orientée objet est une façon de concevoir un code autour du concept d’objets.
Un objet est une entité qui peut être vue comme indépendante et qui va contenir un ensemble
de variables (qu’on va appeler propriétés) et de fonctions (qu’on appellera méthodes). Ces
objets vont pouvoir interagir entre eux.
✓ Les intérêts supposés principaux de développer en orienté objet plutôt qu’en procédural par
exemple sont de permettre une plus grande modularité ou flexibilité du code ainsi qu’une
meilleure lisibilité et une meilleure maintenabilité de celui-ci. .
✓ Le JavaScript est un langage objet basé sur les prototypes. Cela signifie que le
JavaScript ne possède qu’un type d’élément : les objets et que tout objet va pouvoir
partager ses propriétés avec un autre, c’est-à-dire servir de prototype pour de
nouveaux objets. L’héritage en JavaScript se fait en remontant la chaine de
prototypage.
✓ Récemment, le JavaScript a introduit une syntaxe utilisant les classes pour son
modèle objet. Cette syntaxe est copiée sur les langages orientés objets basés sur les
classes et nous permet concrètement de mettre en place l’héritage en JavaScript
plus simplement.Attention:cependant, le JavaScript est toujours un langage orienté
objet à prototypes et, en tâche de fond, il va convertir nos « classes » selon son
modèle prototypes.
✓ En plus de la possibilité d’utiliser l’orienté objet pour créer nos propres objets et nos
propres chaines de prototypage, le JavaScript possède des objets (constructeurs)
.
prédéfinis ou natifs comme Object(), Array(), Function(), String(), Number(), etc.
JAVASCRIPT
Asynchrone (Callback) 1/2
✓ on dit que deux actions sont synchrones lorsqu’elles se déroulent en même temps ou
de manière synchronisée. Au contraire, deux opérations sont asynchrones si elles ne
se déroulent pas en même temps ou ne sont pas synchronisées. En informatique,
on dit que deux opérations sont synchrones lorsque la seconde attend que la
première ait fini son travail pour démarrer.
✓ Par défaut, le JavaScript est un langage synchrone, bloquant et qui ne s’exécute que
sur un seul thread. Cela signifie que :
✓ Les différentes opérations vont s’exécuter les unes à la suite des autres (elles
sont synchrones) ;
✓ Chaque nouvelle opération doit attendre que la précédente ait terminé pour
démarrer (l’opération précédente est « bloquante ») ;
✓ Le JavaScript ne peut exécuter qu’une instruction à la fois (il s’exécute sur un
thread, c’est-à-dire un « fil » ou une « tache » ou un « processus » unique).
✓ Pour éviter de bloquer totalement le navigateur et le reste du script, on
aimerait que ce genre d’opérations se déroule de manière asynchrone, c’est-
à-dire en marge du reste du code et qu’ainsi le reste du code ne. soit pas
bloqué.
✓ Le premier outil utilisé en JavaScript pour générer du code asynchrone a été les
fonctions de rappel. En effet, une fonction de rappel ou « callback » en anglais est
une fonction qui va pouvoir être rappelée (« called back ») à un certain moment et /
ou si certaines conditions sont réunies.
JAVASCRIPT
Asynchrone (Promise) 2/2
✓ Utiliser des fonctions de rappel pour générer du code asynchrone fonctionne mais
possède certains défauts. Le principal défaut est qu’on ne peut pas prédire quand notre
fonction de rappel asynchrone aura terminé son exécution, ce qui fait qu’on ne peut pas
prévoir dans quel ordre les différentes fonctions vont s’exécuter.
✓ En 2015, cependant, le JavaScript a intégré un nouvel outil dont l’unique but est la
génération et la gestion du code asynchrone : les promesses avec l’objet
constructeur Promise. C’est à ce jour l’outil le plus récent et le plus puissant fourni par le
JavaScript nous permettant d’utiliser l’asynchrone dans nos scripts (avec la
syntaxe async et await basée sur les promesses et que nous verrons en fin de partie).
✓ Plutôt que d’attacher des fonctions de rappel à nos fonctions pour générer des
comportements asynchrones, nous allons créer ou utiliser des fonctions qui vont renvoyer
des promesses et allons attacher des fonctions de rappel aux promesses. Une opération
asynchrone peut être dans l’un des états suivants :
✓ Opération en cours (non terminée) ;
✓ Opération terminée avec succès (promesse résolue) ;
✓ Opération terminée ou plus exactement stoppée après un échec (promesse
rejetée).
✓ Les premières méthodes à connaitre sont les méthodes resolve() et reject() qui vont
nous permettre de créer manuellement des promesses déjà résolues ou rejetées et qui
vont donc être utiles pour démarrer manuellement une chaine de promesses.
✓ En plus de cela, nous allons pouvoir utiliser la méthode all() de Promise qui va prendre
en argument un tableau de promesses et retourner une nouvelle promesse.
JAVASCRIPT
Storage
✓ L’API Web Storage permet de stocker des données sous forme de paires
clefs/valeurs qui doivent obligatoirement être des chaines de caractères dans le
navigateur de vos visiteurs.
✓ Pour stocker des données avec Web Storage, on va pouvoir utiliser les propriétés
(qui sont avant tout des objets) localstorage et sessionstorage. On va utiliser ces
propriétés avec l’objet implicite Window.
✓ un module est un fichier JavaScript qui va exporter certains de ses éléments : fonctions,
objets, variables, etc.
✓ Les éléments d’un module qui peuvent être exportés doivent être précédés de la
déclaration export. Pour importer ensuite ces éléments dans d’autres modules, nous
allons devoir utiliser la déclaration import suivi nom de l’élément à importer suivi du mot
clef from suivi du chemin relatif du fichier importé par rapport au fichier qui l’importe.
✓ Une meilleure maintenabilité du code : par définition un bon module doit être
autonome et on doit pouvoir le modifier sans avoir à modifier d’autres scripts ;
✓ D’éviter de polluer les autres scripts : les modules possèdent leur propre espace
de portée globale et les autres scripts n’y ont pas accès par défaut. Cela permet
donc de limiter le risque de pollution (le fait d’avoir de nombreuses variables
.
différentes dans l’espace global du script et de courir le risque que certaines
possèdent le même nom) ;
✓ Une meilleure réutilisation du code : comme les modules sont indépendants et
autonomes (s’ils sont créés correctement), on peut les réutiliser dans différents
projets, ce qui nous fait gagner beaucoup de temps.
JAVASCRIPT
JSON
✓ JSON (JavaScript Object Notation) est un format d’échange de données léger et donc
performant. C’est un format de texte indépendant de tout langage mais utilisant des
conventions familières aux programmeurs de la famille de langages C (incluant
JavaScript et Python notamment).
✓ JSON est une syntaxe pour sérialiser* des objets, tableaux, nombres, chaînes de
caractères, booléens et valeurs null. Elle est basée sur la syntaxe de JavaScript mais en
est distincte : du code JavaScript n’est pas nécessairement du JSON, et du JSON n’est
pas nécessairement du JavaScript.
✓ JSON peut représenter des nombres, des booléens, des chaînes, la valeur null, des
tableaux (séquences de valeurs ordonnées) et des objets constitués de ces valeurs (ou
d’autres tableaux et objets).
✓ En JavaScript, on possède ainsi un objet JSON. L’objet JavaScript global JSON possède
deux méthodes pour interpréter du JSON et convertir des valeurs. en JSON. : les
méthodes parse() et stringify().
✓ JSON.stringify() convertit des objets JavaScript en JSON tandis que JSON.parse() fait
l’opération inverse et convertit du JSON en objet JavaScript.
ECMAScript ES7
✓ Valeurs par défaut:Pour passer une valeur par défaut dans une fonction
JavaScript, il suffit d’initialiser sa valeur comme suivant:
.
✓ Template: Template est un moyen de créer une template de string. ça
permet d’avoir une structure d’une chaîne de caractères réutilisable.
attention il faut utiliser la back tick ( ` ) et non pas la simple apostrophe ( ‘ ).
dans l’exemple suivant on passe le paramètre de la fonction à la template
ES7
Les classes
✓ Le concept des classes est très important pour créer et
utiliser les instances. on peut déclarer une classe en
utilisant le mot clé “class” et on peut l’instancier en
utilisant le mot clé “new”
1 2 3 4
BASE
Language Exemple
TypeScript est un langage transcompilé en
JavaScript. C.a.d après écrire un code en
TypeScript un compilateur va convertir le code en
JavaScript ainsi tous les navigateurs peuvent
comprendre et interpréter ce code. Finalement, le
gain que nous apporte TypeScript est que nous
sommes entrain d'écrire du JavaScript avec un
Syntaxe orienté objet.
TypeScript
Types des données
✓ Le symbole backquote ( ` ) : ça vous permet d'écrire une chaîne
des caractères sur plusieurs lignes. Par exemple, si on souhaite
écrire une longue chaine de caractère HTML et qu’on l’assigne à
une variable. Alors, il vaut mieux écrire cette chaîne HTML sur
plusieurs lignes pour qu’elle soit lisible pour les humains. Ainsi on
utilise (`) Au lieu de la simple cotte ou bien cotte double.
Fonction Lambda
les fonctions dites lambda ou arrow,
permettant un code plus lisible et donc
plus simple à maintenir .
POO
les classes et interfaces, permettant de coder de manière
beaucoup plus modulaire et robuste.
Angular
Language Concept
La première Version (AngularJS ) est assez
proche du patron de conception MVC, mais coté
JavaScript. Donc nous sommes appelés à créer
des contrôleurs et des vues JavaScript.
Par contre dans Angular2, il fallait créer des
composants.Ces composants sont totalements
indépendants et peuvent être utilisés plusieurs fois
dans l’application et même dans d’autres
applications.
Angular
Environnement
✓Pour travailler avec Angular il est possible de travailler sur plusieurs IDE (Comme
Visual studio 2015, 2017 ou autre ou autre), mais dans notre cas on va travailler
avec Visual Studio Code qui est à son tour un environnement de développement
open source et gratuit.
✓Pour vérifier que NodeJS est bien installé il suffit de lancer cette commande à
partir de votre Terminal Command (cmd). node –version
✓NPM ou “Node Packaged Modules” est un . outil qui permet d’installer les
dépendances. c.a.d pour lancer une application angular on a besoin de plusieurs
modules qui font la conversion, la compilation ou autres actions
.
Angular
Routing 1/2
✓ Un composant est une classe, qui contrôle une portion de l’écran. Cette portion de
l’écran contrôlée par le composant, on l’appelle une vue: une vue peut être l’ensemble
de la page web, une fenêtre de tchat, une barre de navigation, etc. Cette vue est définie
dans le template du composant.
✓ Un composant Angular peut être énorme et correspondre à une page entière, ou tout
petit, et correspondre à un simple élément visuel comme un bouton ou une image.
✓ Les composants Angular peuvent être imbriqués les uns dans les autres. D’ailleurs, le
point de départ de toute application Angular, c’est un composant “racine” qui va contenir
tous les autres composants et qui représente l’ensemble de l’interface. La convention
est d’appeler ce composant racine AppComponent.
.
Angular
Composant 2/2
❖ Ligne 1: pour chaque component on a besoin d’importer la bibliothèque component qui permet au
compilateur de comprendre l’annotation @component à la ligne 3.
❖ @component({...}) est une annotation ou décoration de notre component qui permet d’apporter
des informations sur le component exemple selector, templateUrl …
❖ selector (ligne 4): permet de définir le nom de la balise ou élément html utilisé pour invoquer le
component. c.a.d à partir d’un autre component, précisément, à partir de sa template html, on
peut appeler notre module en utilisant la balise <app-first> </app-first> qui est le selector de notre
component.
❖ templateUrl: permet de définir le path du fichier html qui contient le html de notre component
❖ Finalement, à la ligne 7 on créé la classe du component décorée par le mot clé “export” qui
permet de rendre visible notre component au autres components et modules.
❖ Enregistrer votre new component: Vous avez créé la définition et la template du component mais
ça est insuffisant. il fallait informer Angular explicitement du nouveau .
❖ Dans le module associé (dans notre cas c’est appModule.ts): il faut importer et préciser le path du
component (ligne 5).
.
❖ Ajouter le nom du component aux déclarations (ligne 11)
❖ Appeler le component: c'est la dernière étape. Elle consiste simplement à appeler la balise html
<app-first> </app-first> dans l’emplacement qu’on souhaite. Dans mon cas, je vais l’ajouter dans
la template du composant existant app.component.html
Angular
Module
❖ L'idéal serait de pouvoir regrouper nos composants par fonctionnalité :
par exemple, regrouper tous les composants dédiés à l'authentification,
tous ceux qui servent à construire un blog, etc.
❖ Mais le plus important ici est l'annotation NgModule, car c'est elle qui
permet de déclarer un module :
❖ imports : permet de déclarer tous les éléments que l'on a
besoin d'importer dans notre module. Les modules racines ont
besoin d'importer le BrowserModule (contrairement aux autres
modules que nous ajouterons par la suite dans notre
application) ;
❖ declarations : une liste de tous les composants et directives qui
appartiennent à ce module. Nous avons donc ajouté notre
unique composant AppComponent ;
.
❖ bootstrap : permet d'identifier le composant racine, qu'Angular
appelle au démarrage de l'application. Comme le module racine
est lancé automatiquement par Angular au démarrage de
l'application, et qu'AppComponent est le composant racine du
module racine, c'est donc AppComponent qui apparaîtra au
démarrage de l'application. Ça va, rien de compliqué si on prend
le temps de bien comprendre.
Angular
DataBinding
1.Interpolation:
❖ Le databinding est l’une des fonctionnalités les plus {{ NomProp }}
Uni-Directionnel Du modèle -> Template
impressionnantes dans Angular. Il s’agit d’un mécanisme qui 2.Property Binding:
permet la synchronisation instantanée entre la vue (HTML [property] = “data”
Template) et les données de l’application (par exemple:L’une des Du Template -> Modèle 3.Event Binding
propriétés du Component). L’un des exemples les plus connus Uni-Directionnel (Exemple: l'événement * (click) = "......."
c’est lorsqu'un utilisateur écrit dans un champ text la valeur du TextChanged) * on-click
modèle change instantanément et vis versa.
S’il change dans l’un, la
4.Two-WAy-DataBinding
❖ Donc le databinding permet de faire la communication entre le Bi-Directionnel modif se répercute
input [( ngModel )]= "NomHotel" >
component et sa template. Angular propose plusieurs types du instantanément
databinding qui seront utilisés selon le besoin.
❖ @Input : on utilise @input pour dire que cette propriété est une entrée
(input) pour ce component. Imaginez que le component est une machine qui
a besoin des entrées pour nous retourner des sorties ou même les mêmes
entrées mais, un peu modifiées.
1 2 3 4
Injection Build
Pages Navigation
Angular
Formulaires 1/2
❖ Une application, sans formulaire et user Inputs est simplement une application
Vitrine. Angular2 est très flexible dans la gestion des inputs.
.
Angular
Formulaires 2/2
❖ Reactive Forms: C’est la deuxième forme de création des formulaire. Cette
forme de création est plus approfondie et elle donne une marge de manipulation
plus importante d'où un peu plus complexe à comprendre et à utiliser.
❖ Pour créer une propriété de type FormControl (qui est la base du modèle) il
suffit d'écrire maProp = new formControl();
❖ Pour initialiser une propriété de type FormControl . Il suffit de passer la valeur
souhaité dans le constructeur. Vous pouvez passer un string, un booléen, un
entier .Exemple: maProp = new formControl(true);
❖ Pour passer une valeur : this.maProp.setValue(‘maValeur’);
.
Angular
Dependency Injection
❖ La "Dependency Injection" est un "design pattern" qui consiste à séparer
l'instanciation (et donc l'implémentation) d'une dépendance et son utilisation.
.
Angular
Services
❖Un service est un moyen de partager des informations
entre des classes qui ne se connaissent pas.
❖La syntaxe des Pipes est simplement inspirée des Pipes des shell
UNIX que l'on retrouve dans de nombreux systèmes de templating.
❖Les Pipes peuvent prendre des paramètres qu'il faut mettre après le
Pipe et séparés avec le symbole ":".
Framework
Theorie Pratique
Le fonctionnement théorique d’Ionic En pratique Ionic est très simple
n’est pas très compliqué. C’est une d’utilisation pour toutes personnes
jonction subtile entre Angular ayant déjà fait du développement web.
(Javascript) / HTML / CSS et D’autant plus si vous avez déjà
Cordova.. travaillé avec Angular.
Cordova/Capacitor UI/UX
Il permet de crée des applications En effet, pour tout ce qui va être le «
natives mobiles en agissant comme theming » donc faire une jolie
un container qui va permettre d’utiliser application Ionic embarque déjà dans
les fonctions natives des téléphones sa documentation énormément de
(par exemple le GPS, l’accéléromètre, composants.
les fonctions de partage intégré,
l’appareil photo …)
IONIC
Role
Historique
La grande chose à propos d'Ionic est qu'avec une
Ionic est un framework open-source
base de code, vous pouvez construire pour
créé en 2013 par Max Lynch, Ben
n'importe quelle plate-forme en utilisant
Sperry, et Adam Bradley. Deux versions
uniquement HTML, CSS et JavaScript. ..
distinctes sont disponibles,
incompatibles entre elles : la première
version, 1.3.3, se base sur AngularJS
1.5.3 tandis que la version >2 se base
sur Angular >2 et TypeScript.
html
Language Exemple
Le Framework Ionic dans sa dernière
version utilise les langages:
- Html
- Css ( SASS )
- Javascript.
Lui-même basé sur d’autre framework
au choix ( angular, react , vue )
IONIC
Structure du projet (de type angular)
❖ Le dossier node_modules qui comporte tous les modules Angular, Ionic et
Cordova
❖ le dossier plugins contient les plugins Cordova qui permettent, par exemple,
d'accéder aux fonctions natives des appareils, comme l'appareil photo ou la
géolocalisation. Il contient également le plugin qui permet d'exécuter votre
application Angular sur mobile.
❖ Le dossier www est également géré par le CLI pour la création des packages
finaux pour votre application.
❖ Le dossier src a été présenté plus tôt dans la partie angular du cours.
Ionic(CLI)
La CLI Ionic est construite avec TypeScript et Node.js. Il prend en charge
Node 10.3+, mais le dernier Node LTS est toujours recommandé. Suivez le
développement sur le référentiel GitHub open source.
✓Installation:
✓Assurez vous que les derniers Node 6 LTS et NPM 3+ sont installés.
✓Il englobe en plus des fonctionnalités propre a ionic , les cli des api
supportées par ce dernier ( cordova, capacitor, angular etc…)
Ionic(UI Components)
Les applications ioniques sont constituées de blocs de construction de haut niveau appelés Composants, qui vous permettent
de créer rapidement l'interface utilisateur de votre application. Ionic est livré avec un certain nombre de composants, y compris
des cartes (ion-card), des listes (ion-list) et des onglets (ion-tab).
L'un des plus grands changements apportés par Ionic 4 est que les composants ionic sont devenus des composants Web pour
chaque. Les composants Web sont un ensemble d'API de plate-forme Web. Il permet au développeur de créer des balises
HTML personnalisées et réutilisables à utiliser dans les pages Web et les applications Web. Les composants Web améliorent
considérablement les temps de démarrage et de chargement et sont très essentiels pour créer des applications Web
hautement performantes.
Ionic Colors Generator: Créez des palettes de couleurs personnalisées pour l'interface utilisateur de votre application. Mettez à jour les valeurs
hexadécimales d'une couleur, vérifiez l'application de démonstration à droite pour confirmer, puis copiez et collez le code g énéré directement
dans votre projet Ionic.
SASS Variables
Ionic(CLI)
La CLI Ionic est construite avec TypeScript et Node.js. Il prend en charge
Node 10.3+, mais le dernier Node LTS est toujours recommandé. Suivez le
développement sur le référentiel GitHub open source.
✓Installation:
✓Assurez vous que les derniers Node 6 LTS et NPM 3+ sont installés.
✓Il englobe en plus des fonctionnalités propre a ionic , les cli des api
supportées par ce dernier ( cordova, capacitor, angular etc…)
Ionic(Bridge)
Capacitor: API multiplateforme et d'une couche d'exécution de code qui facilite l'appel des SDK natifs à partir du code Web. Il écrit ég alement les
plugins natifs personnalisés dont votre application pourrait avoir besoin.
Cordova: Apache Cordova est un framework de développement d'applications mobiles créé par Nitobi. Adobe Systems a acheté Nitobi en 2011, l'a
rebaptisé PhoneGap, puis a publié une version open source du logiciel appelée Apache Cordova.
Stencil: compilateur de composants Web créé par l'équipe ionic pour construire les normes qui sont conformes aux serveurs Web. Il utilise l'API
supplémentaire, telle que TypeScript, Virtual DOM, JSX et async, qui sont les mieux adaptées pour PWA.
Cordova / Capacitor/Stencil
BAAS: Firebase
Introduction
À l'ère du prototypage rapide, nous pouvons avoir des idées brillantes, mais parfois elles ne
sont pas applicables si elles demandent trop de travail. Souvent, le back-end est le facteur
limitant - de nombreuses considérations ne s'appliquent jamais au codage côté serveur en
raison d'un manque de connaissances ou de temps.
Firebase est un Backend-as-a-Service (BaaS) qui a démarré en tant que startup YC11. Elle
est devenue une plate-forme de développement d'applications de nouvelle génération sur
Google Cloud Platform. Firebase (une base de données NoSQLjSON) est une base de
données temps réel qui permet de stocker une liste d'objets sous forme d'arbre. Nous
pouvons synchroniser les données entre différents appareils.
INTERET
Pourquoi utiliser Firebase ?
❖Firebase gère les données en temps réel dans la base de données. Ainsi,
il échange facilement et rapidement les données vers et depuis la base de
données. Par conséquent, pour développer des applications mobiles
telles que la diffusion en direct, la messagerie instantanée, etc., nous
pouvons utiliser Firebase.
❖Firebase permet de synchroniser les données en temps réel sur tous les
appareils - iOS, Android et Web - sans actualiser l'écran.
❖Tout, des bases de données, des analyses aux rapports de plantage, est
inclus dans Firebase. Ainsi, l'équipe de développement d'applications peut
rester concentrée sur l'amélioration de l'expérience utilisateur.
❖Liens dynamiques: Les liens dynamiques sont des URL intelligentes qui
modifient dynamiquement le comportement pour offrir la meilleure
expérience sur différentes plates-formes. Ces liens permettent aux
utilisateurs de l'application d'accéder directement au contenu qui les
intéresse après l'installation de l'application, qu'ils soient complètement
nouveaux ou clients à vie.
❖ Invite: C'est un outil parfait pour les références et le partage. Obtenez l'aide de nos
utilisateurs pour développer facilement notre application par e-mail ou SMS,
permettant à leurs utilisateurs existants de partager notre application ou le contenu
intégré à l'application. Si nous utilisons cette fonctionnalité en combinaison avec des
promotions, nous pouvons également travailler à l'acquisition de nouveaux clients et
à la fidélisation de nos clients existants.
Les etapes
1. Découverte 2. Validation de l'idée
Votre première tâche sera de Après avoir décidé du problème
fournir autant de détails que que vous souhaitez résoudre et de
possible sur le projet. la solution, il est temps d'effectuer
des recherches approfondies.
Renseignez-vous sur votre client: Connaître votre client est la clé du succès du développement d'applications
mobiles . Qui achètera votre produit? D'où viennent-ils, que font-ils et comment utilisent-ils leurs appareils mobiles?
Créez une personnalité généralisée d'un client qui a le problème que vous souhaitez résoudre avec votre
application. Selon le type de votre application, vous pouvez diviser les personnages par sexe, données
démographiques, situation sociale / matrimoniale ou emploi ; mais la recommandation générale est de définir le
comportement du paramètre principal dans l'application.
Créer un concept de navigation : C'est ce qu'on appelle aussi un prototype basse fidélité . Ce n'est pas encore
une application fonctionnelle; il s'agit simplement d'une visualisation de l'application qui sert un seul objectif:
vérifier que vous et votre équipe voyez le produit de la même manière. Un concept de navigation est un ensemble
d'images qui montrent comment les connexions entre les écrans ou les pages fonctionneront sur chacune des
plates-formes pour lesquelles vous créez l'application. Le prototypage basse fidélité peut également aider à
estimer davantage les coûts, au moins partiellement, en permettant à votre équipe de mieux comprendre l'étendue
des fonctionnalités et de calculer le coût approximatif de leur développement.
Validation de l'idée
Mener des recherches directes: Cela ne fait jamais de mal de parcourir les applications déjà présentes sur
l'App Store pour voir la concurrence dans votre catégorie et comment vos concurrents gèrent le problème que
vous souhaitez résoudre (si quelqu'un s'en occupe).
Utilisateurs cibles de l'enquête: D'une part, les enquêtes ne sont pas la source d'information la plus fiable et
vous voudrez peut-être au moins combiner cette méthode avec autre chose. D'autre part, communiquer avec vos
futurs clients potentiels vous permet non seulement de valider votre idée, mais aussi de fournir les premiers
commentaires, vous permet de connaître les critères que votre public cible utilise pour décider s'il est prêt à payer
et en crée présence pour votre marque.
Rechercher des requêtes de recherche: Tout dépend du produit que vous fabriquez et de l'équipe avec laquelle
vous travaillez, mais il peut parfois être utile de mener une recherche globale sur les requêtes de recherche. Cela
peut vous aider à voir si quelqu'un cherche même une solution au problème que votre application résout.
Diffusez des promotions et des publicités: Il ne s'agit pas de publicités en tant que modèle de monétisation,
mais de publicités destinées à rendre votre entreprise et votre produit visibles. Lancez une campagne sur
Facebook pour voir combien d'utilisateurs sont intéressés par ce que vous cherchez à offrir.
Valider le prototype de concept: Vous avez esquissé un prototype de concept au stade de la découverte pour
vous assurer que votre équipe voit le projet de la même manière que vous. Il est maintenant temps de savoir s'il
atteint réellement son objectif aux yeux de vos utilisateurs potentiels..
Créer un MLP: Un produit minimal aimable, ou MLP, est la dernière étape de l'étape de validation de l'idée, et
c'est aussi votre premier prototype fonctionnel. Un MLP est similaire à un MVP - un produit minimum viable - mais
au lieu de créer le minimum de fonctionnalités nécessaires , avec un MLP, vous accordez une attention
particulière à la caractéristique unique de votre produit.
Stratégie UX
Structuration UML: Pour tout simplifier, commencez par structurer toutes les données dont vous disposez. Il
existe plusieurs façons de le faire et vous pouvez choisir celle que vous préférez. Nous trouvons les diagrammes
ER et les diagrammes de classes UML très utiles, car ils aident à montrer non seulement les éléments eux-
mêmes, mais aussi les relations et les connexions entre eux, offrant une image plus claire de ce que vous faites.
Prototype haute fidélité: Les prototypes haute fidélité incluent une conception détaillée de l'interface utilisateur et
de l'expérience utilisateur, et il est recommandé de les rendre interactifs afin que votre groupe de test puisse
essayer la navigation et avoir une impression générale. La raison de la création de prototypes haute fidélité est de
surveiller le comportement des utilisateurs, de trouver des modèles et, encore une fois, de recevoir des
commentaires.
Evaluation du cout : Après avoir terminé et testé un prototype haute fidélité, vous serez également en mesure d'
estimer le coût de développement de l'application avec beaucoup plus de précision qu'au départ, ainsi que de
créer un plan de projet plus détaillé et précis pour la phase de développement..
Conception et développement
Methodologie Agile: Selon Agile, le flux du processus de développement d'applications mobiles est divisé en
tâches par sprint. Un sprint est une courte période de temps, généralement deux semaines, pendant laquelle une
certaine partie du travail de développement est terminée. À la fin de chaque sprint, le périmètre de travail prévu
est comparé au travail effectué.
Frontend: partie que vos utilisateurs verront - l'interface, la conception visuelle, tout ce que nous, les utilisateurs,
pensons être l'application. En fonction de la plate-forme choisie (iOS, Android, Windows), vous utiliserez un
langage de programmation différent: Objective-C ou Swift pour les applications natives basées sur iOS, Java ou
Kotlin pour Android. Outre les langages, il existe d'autres outils tels que des bibliothèques, des systèmes de
contrôle de version et des frameworks.
Back end: le moteur de la fonctionnalité de votre produit. Un utilisateur ne le voit pas, mais le back-end est ce qui
maintient tout ensemble, gère la communication avec les serveurs et maintient la logique opérationnelle. Il existe
également des langages et des outils distincts pour le développement backend, par conséquent, les équipes de
développement ont généralement au moins un spécialiste backend en plus des développeurs frontaux Android et
iOS, des concepteurs et un QA.
Tests: À proprement parler, les tests ne se limitent pas à la phase de conception et de développement - vous le
ferez dès les tout premiers prototypes. C'est à cela que servent les prototypes, après tout: tester ce que vous avez
par rapport aux résultats attendus. Mais lorsque vous atteignez ce stade, l'assurance qualité devient encore plus
essentielle et rigoureuse.
En resumé.
C'est tout. Vous connaissez maintenant les
étapes essentielles de développement
d'applications mobiles. Bien sûr, le travail
Conclusion n'est pas terminé lorsque l'application est
développée. Il reste la question du
lancement, du marketing, des mises à jour
et de nombreux tests à chaque étape. Mais
tout cela vient plus tard. Avec la vue
d'ensemble ci-dessus, vous savez en
général comment créer une application
mobile et à quoi s'attendre de votre société
de développement. Si vous avez encore des
questions ou avez besoin de précisions sur
les étapes de création d'une application
mobile, contactez- nous sur notre page de
contact .
Conception UI/UX
Introduction
La différence entre une bonne application et une UX Mobile: Perceptions et sentiments des
mauvaise application réside généralement dans utilisants avant, pendant et apres leur interaction
la qualité de son expérience utilisateur (UX). avec le mobile.