Sécuriser votre application iOS avec ABPadLockScreen

introduction

La sécurité devient une préoccupation de plus en plus grande dans l’espace mobile. En tant que développeurs iOS, nous pouvons faire beaucoup de choses. Nous nous assurons que les informations sensibles sont enregistrées dans le trousseau au lieu du texte brut. Nous nous assurons que le contenu est crypté avant d'être envoyé à un serveur distant. Tout cela est fait pour s'assurer que les informations de l'utilisateur sont sécurisées. Cependant, il est parfois nécessaire d’ajouter une couche de protection supplémentaire au niveau de l’interface utilisateur..

Sauf si le périphérique de l'utilisateur est inscrit dans une solution de gestion des périphériques mobiles (MDM), vous ne pouvez pas obliger les utilisateurs de votre application à configurer et à utiliser un verrou par mot de passe au niveau du périphérique. Cependant, ABPadLockScreen offre un moyen élégant et rapide d’ajouter une telle interface à votre application iOS. Laissez-moi vous montrer comment utiliser ABPadLockScreen dans vos applications iOS.

1. Configuration

ABPadLockScreen est disponible sur GitHub, mais je recommande de l’installer à l’aide de CocoaPods. Si vous n'avez pas encore commencé à utiliser CocoaPods pour gérer les dépendances dans vos projets iOS et OS X, vous devriez vraiment commencer dès aujourd'hui. C'est la meilleure façon de gérer les dépendances dans les projets Cocoa. Puisque ce tutoriel ne concerne pas CocoaPods, je ne vais pas entrer dans les détails d'installation d'ABPadLockScreen à l'aide de CocoaPods, mais vous pouvez en lire beaucoup plus sur le site Web de CocoaPods ou lire notre tutoriel d'introduction aux Tuts.+.

Si vous préférez installer manuellement ABPadLockScreen, c'est très bien aussi. Téléchargez ou clonez le code source sur GitHub et copiez les fichiers dans le ABPadLockScreen dossier dans votre projet Xcode.

2. Configuration des broches

La bibliothèque comprend deux UIViewController sous-classes. le ABPadLockScreenSetupViewController La classe est conçue pour permettre à l'utilisateur d'entrer son NIP initial. Ceci est aussi simple que d’initialiser une nouvelle instance du contrôleur de vue, de transmettre un délégué et de présenter le contrôleur de vue de manière modale..

- (IBAction) setPin: (id) expéditeur ABPadLockScreenSetupViewController * lockScreen = [[ABPadLockScreenSetupViewController alloc] all] initWithDelegate: self pinLength: 5]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController: lockScreen animé: YES complétion: nil]; 

le ABPadLockScreenSetupViewControllerDelegate Le protocole a une méthode requise, qui est invoquée lorsque la broche est définie avec succès..

- (void) pinSet: (NSString *) pin padLockScreenSetupViewController: (ABPadLockScreenSetupViewController *) padLockScreenViewController;

3. Verrouiller et déverrouiller

La configuration d’une épingle n’est pas très utile, sauf si l’utilisateur a la possibilité de la saisir pour accéder à l’application. Une fois que vous êtes prêt à sécuriser l’application, tout ce que vous avez à faire est de présenter une instance du ABPadLockScreenViewController classe, attribuer un délégué, une broche et présenter le contrôleur de vue de manière modale.

- (IBAction) lockApp: expéditeur (id) ABPadLockScreenViewController * lockScreen = [[ABPadLockScreenViewController alloc]] initWithDelegate: self pin: self.pin]; [lockScreen setAllowedAttempts: 3]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController: lockScreen animé: YES complétion: nil]; 

Si vous définissez le tentatives autorisées propriété, l'utilisateur n'aura qu'un nombre prédéfini de tentatives avant que le module ne les verrouille. Si tentatives autorisées n'est pas défini, l'utilisateur peut alors entrer une épingle autant de fois qu'il le souhaite.

Le délégué du ABPadLockScreenViewController par exemple doit se conformer à la ABPadLockScreenViewControllerDelegate protocole, qui déclare quatre méthodes de délégué.

- (void) unlockWasSuccessfulForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) unlockWasUnsuccessful: (NSString *) falsePin afterAttemptNumber: (NSInteger) tentativeNumber padLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) unlockWasCancelledForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController; - (void) tentativesExpiredForPadLockScreenViewController: (ABPadLockScreenViewController *) padLockScreenViewController;

Les méthodes sont assez explicites. Vous pouvez obtenir un rappel pour un déverrouillage réussi, une entrée infructueuse, une annulation (c'est autorisé) et, si les tentatives de l'utilisateur ont expiré, atteindre le nombre maximal de tentatives autorisées..

4. Personnalisation

Vous pouvez personnaliser l'interface de l'écran de verrouillage et son comportement de plusieurs manières. Vous pouvez:

  • activer / désactiver le bouton d'annulation
  • définir la longueur de la broche, qui est 4 par défaut
  • définir un texte personnalisé pour l'une des étiquettes, ce qui est utile pour la localisation
  • définir le nombre de tentatives, qui par défaut est 0 ou un nombre illimité de tentatives

En plus de cela, l'interface utilisateur peut également être personnalisée très facilement. La bibliothèque utilise le UIAappearance API permettant de personnaliser l'interface utilisateur de l'écran de verrouillage. Tout, depuis l'arrière-plan, la couleur du texte, la couleur de la sélection et les polices, peut être réglé pour correspondre à la conception de votre application.

[[ABPadLockScreenView Apparence] setLabelColour: [UIColor colorWithHexValue: @ "DB4631"]]; [[ABPadLockScreenView Apparence] setBackgroundColor: [UIColor colorWithHexValue: @ “282B35”]]; 

Découvrez les classes de vue, ABPadLockScreenView, ABPadButton, et ABPinSelectionView, pour voir quels sont les noms de vue.

Conclusion

Dans cette astuce, nous avons brièvement expliqué comment rendre votre application iOS un peu plus sécurisée en ajoutant un écran de verrouillage à son interface utilisateur. J'espère que vous trouverez la bibliothèque utile et facile à utiliser. Bonne codage.