Ho visto molti progetti che mostrano come implementare l'accesso in MVP, ma non riesco a trovare nulla relativo al login Google/Facebook.Come faccio a seguire l'architettura MVP con SDK di terze parti?
Che cosa dovremmo fare nel caso in cui il flusso di login è fortemente legato al ciclo di vita dei componenti Android? Vedo il vantaggio principale di MVP in quanto costruiamo un'astrazione sopra Context
, ma questa astrazione apparirà troppo complessa quando dovremo seguire, per esempio, il flusso di login di Facebook: devi registrare FacebookCallback
con CallbackManager
, chiamare logInWithReadPermissions()
(passando Attività/Frammento di esso), delegare onActivityResult()
a callbackManager
e questo attiverà i metodi di FacebookCallback.
Quello che ho in mente è quello di creare qualcosa di simile
interface AuthInteractor {
void doFacebookLogin();
void doGoogleLogin();
}
cui attuazione sapere Contesto e inizializzare GoogleApiClient
. Verrà iniettato in Presenter, ma con tutte queste chiamate (specialmente nell'SDK di Facebook) le cose diventeranno troppo complicate. Non è meglio omettere l'MVP in questi casi?
Non è così sicuro della tua domanda, ma io non sono d'accordo con l'interfaccia, IMHO vorrei creare una classe FacebookLogin e GoogleLogin che implementa la stessa interfaccia e astratta la particolarità di ogni flusso di login. – jonathanrz
@jonathanrz sì, ho fatto lo stesso nei miei progetti precedenti e ho intenzione di riutilizzare questo codice, due manager possono essere membri di AuthInteractorImpl. Ma davvero non mi piace tale architettura e scrivere meglio questo senza MVP – Yaroslav
poiché il flusso di autenticazione dovrebbe rimanere nel controller, non vedo perché questo rompa il pattern MVP. – jonathanrz