ENEE
Luc
Master 1 Informatique
XCODE & Swift - Calculatrice
Contexte :
En utilisant Swift, un langage de programmation moderne et puissant, et
Xcode, un environnement de développement intégré (IDE) complet pour les
applications iOS, il est possible de créer une calculette performante, intuitive et
élégante. Notre calculatrice a pour objectif d’effectuer des opérations saisies par
l’utilisateur tout en respectant la priorité des différents opérateurs tels que la
multiplication, l'addition, la soustraction et la division. Nous prendrons également en
compte la gestion des parenthèses, la remise à zéro du calcul et la suppression
d'éléments.
Évaluer les saisies de l’utilisateur dans la calculette :
Afin de pouvoir réaliser ce projet dans le temps imparti, j’ai décidé d’utiliser un
package nommé SwiftEval réalisé par Daniel Cohen Gindi. Ce package est une
bibliothèque pour le langage de programmation Swift qui permet d'évaluer des
expressions mathématiques en chaîne de caractères. J’ai décidé de choisir cette
bibliothèque pour son grand nombre d'opérateurs disponibles comme la factoriel, la
mise à la puissance, le cosinus, le sinus et la tangente.
Pour commencer, j’ai dû ajouter SwiftEval à mon projet via le Package
Manager de XCODE. Par la suite, il m’aura fallu l’importer dans mon fichier Swift en
utilisant la commande “import Eval” puis en configurant le calculateur “
let config = DoubleEvalConfiguration()” .
Maintenant que l’évaluateur est importé et configuré au sein de notre projet
de calculatrice, il ne me reste qu'à l’utiliser. L’évaluateur fonctionne avec une chaîne
de caractère comme entrée et renvoie un “Double?” . Le type “Double?” permet de
renvoyer une valeur de type double, mais peut aussi avoir d’autres types comme
integer et string. Par exemple, lors de la division par 0 l’évaluateur renverra Nan1.
L’utilisation de l’évaluateur se fait à travers un système local de gestion d’erreur de
type catch/throw, afin d’éviter tout crash ou dysfonctionnement de l’application.
1
Not A Number
Design et Ergonomie :
Pour le design de l’application calculette, je me suis fortement inspiré de la
calculette classique IOS tout en retravaillant les couleurs et la “font” de cette
dernière dans le but de la rendre plus agréable pour l’utilisateur.
On peut retrouver trois catégories sur cette calculatrice. En rouge, les actions
utilitaires, comme “AC” pour remettre à zéro la calculette, les parenthèses et “⟵”
pour supprimer un seul caractère de l’équation en cas d’erreur d’écriture. En jaune,
nous retrouvons tous les opérateurs disponibles de la calculatrice et en bleu tous les
chiffres et la virgule.
J’ai utilisé les regex 2 afin d’afficher le signe multiplié et divisé dans les
boutons de ma calculette tout en conservant la syntaxe “*” et “/” utilisé dans le
SwiftEval pour la multiplication et la division.
Passons au jeu d’essai illustrant le fonctionnement de l’application. La
calculatrice se présente tout d’abord sous sa forme d’icône sur le bureau du
téléphone comme on peut le voir ci-dessous.
2
Expression Régulière
Le logo de l’application est inspiré de celui de l’application calculette basique
IOS mise aux couleurs de ma calculatrice.
Une fois le logo créé, une multitude de versions aura été réalisée avec des
tailles différentes pour permettre au logo d’être utilisé dans toutes les situations de
l’application comme les notifications, dans l’App Store et le bureau du produit Apple.
L’application calculette réalisée par mes soins a été testée sur un émulateur
d’Iphone 11 pro, mais est utilisable sur n’importe quel IOS, les MACs sont donc pour
l’instant exclues.
Une fois ouverte, l’application se présente avec le clavier de la calculette et
un fond vide ou s'inscrit l’équation à résoudre.
Une fois l’équation saisie sur la calculatrice, il suffit d’appuyer sur la touche
“égal” afin de la résoudre. L’équation devient alors réduite et grisée pour laisser
place au résultat.
Perspective :
En perspective de ma calculette, le développement d'un mode scientifique
lors de la rotation de l’écran permettant l’utilisation de cosinus, sinus, tangente et
bien d'autres opérations déjà comprises dans la librairie SwiftEval que j’utilise. Une
compatibilité sur MAC seraient à envisager et un menu permettant la sélection de
couleurs et une personnalisation plus poussée de l’interface de l’application
pourraient améliorer l’ergonomie de l’application et ainsi attirer plus d’utilisateurs.