Protezione della tua app iOS con ABPadLockScreen

introduzione

La sicurezza sta diventando una preoccupazione sempre più grande nello spazio mobile. Come sviluppatori iOS, ci sono molte cose che possiamo fare. Garantiamo che le informazioni sensibili vengano salvate nel portachiavi anziché in testo normale. Ci assicuriamo che il contenuto sia crittografato prima di essere inviato a un server remoto. Tutto ciò per assicurarsi che le informazioni dell'utente siano sicure. A volte, tuttavia, è necessario aggiungere un ulteriore livello di protezione a livello di interfaccia utente.

A meno che il dispositivo dell'utente non sia registrato in una soluzione MDM (Mobile Device Management), non è possibile forzare gli utenti dell'applicazione a impostare e utilizzare un blocco passcode a livello di dispositivo. ABPadLockScreen, tuttavia, fornisce un modo elegante e veloce per aggiungere una simile interfaccia alla tua applicazione iOS. Lascia che ti mostri come puoi sfruttare ABPadLockScreen nelle tue applicazioni iOS.

1. Installazione

ABPadLockScreen è disponibile su GitHub, ma ti consiglio di installarlo usando CocoaPods. Se non hai iniziato a utilizzare CocoaPods per la gestione delle dipendenze nei tuoi progetti iOS e OS X, allora dovresti davvero iniziare oggi. È il modo migliore per gestire le dipendenze nei progetti Cocoa. Dato che questo tutorial non riguarda CocoaPods, non entrerò nei dettagli dell'installazione di ABPadLockScreen usando CocoaPods, ma puoi leggerne molte altre al sito Web di CocoaPods o leggere il nostro tutorial introduttivo su Tuts+.

Se si preferisce installare manualmente ABPadLockScreen, va bene anche questo. Scarica o clona il codice sorgente su GitHub e copia i file nel file ABPadLockScreen cartella nel tuo progetto Xcode.

2. Impostazione pin

La biblioteca include due UIViewController sottoclassi. Il ABPadLockScreenSetupViewController la classe è progettata per consentire all'utente di inserire il proprio pin iniziale. È semplice come inizializzare una nuova istanza del controller della vista, passare un delegato e presentare il controller della vista in modo modale.

- (IBAction) setPin: (id) sender ABPadLockScreenSetupViewController * lockScreen = [[ABPadLockScreenSetupViewController alloc] initWithDelegate: self pinLength: 5]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [AutoViewViewController: lockScreen animato: SÌ completamento: nil]; 

Il ABPadLockScreenSetupViewControllerDelegate il protocollo ha un metodo obbligatorio, che viene richiamato quando il pin viene impostato correttamente.

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

3. Blocca e sblocca

L'impostazione di un pin non è molto utile a meno che l'utente non abbia la possibilità di inserirla per accedere all'applicazione. Una volta che sei pronto per proteggere l'applicazione, tutto ciò che devi fare è presentare un'istanza di ABPadLockScreenViewController classe, assegnare un delegato, un pin e presentare modalmente il controller di visualizzazione.

- (IBAction) lockApp: (id) sender ABPadLockScreenViewController * lockScreen = [[ABPadLockScreenViewController alloc] initWithDelegate: self pin: self.pin]; [lockScreen setAllowedAttempts: 3]; lockScreen.modalPresentationStyle = UIModalPresentationFullScreen; lockScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [AutoViewViewController: lockScreen animato: SÌ completamento: nil]; 

Se imposti il allowedAttempts proprietà, l'utente avrà solo un numero predefinito di tentativi prima che il modulo li blocchi. Se allowedAttempts non è impostato, quindi l'utente può provare a inserire un pin tutte le volte che vuole.

Il delegato del ABPadLockScreenViewController l'istanza deve essere conforme al ABPadLockScreenViewControllerDelegate protocollo, che dichiara quattro metodi delegati.

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

I metodi sono abbastanza auto-esplicativi. È possibile ottenere una richiamata per uno sblocco riuscito, una voce non riuscita, una cancellazione, è consentito, e se i tentativi dell'utente sono scaduti hanno raggiunto i tentativi massimi consentiti.

4. Personalizzazione

Esistono diversi modi per personalizzare l'interfaccia della schermata di blocco e il suo comportamento. Puoi:

  • abilita / disabilita il pulsante Annulla
  • imposta la lunghezza del pin, che è 4 per impostazione predefinita
  • imposta un testo personalizzato per qualsiasi etichetta, utile per la localizzazione
  • imposta il numero di tentativi, il cui valore predefinito è 0 o un numero illimitato di tentativi

Oltre a ciò, l'interfaccia utente può anche essere personalizzata molto facilmente. La biblioteca usa il UIAppearance API per personalizzare l'interfaccia utente della schermata di blocco. Tutto, dallo sfondo, colore del testo, colore di selezione e caratteri, può essere impostato per adattarsi al design della tua applicazione.

[[Aspetto ABPadLockScreenView] setLabelColour: [UIColor colorWithHexValue: @ "DB4631"]]; [[Aspetto ABPadLockScreenView] setBackgroundColor: [UIColor colorWithHexValue: @ "282B35"]]; 

Guarda le classi di visualizzazione, ABPadLockScreenView, ABPadButton, e ABPinSelectionView, per vedere quali sono i nomi delle viste.

Conclusione

In questo suggerimento rapido, abbiamo brevemente spiegato come rendere l'applicazione iOS un po 'più sicura aggiungendo una schermata di blocco all'interfaccia utente. Spero che tu trovi la libreria utile e facile da usare. Buona programmazione.