Android - zalogowany użytkownik i jego możliwości

0

Hej,

zacząłem pisać moją pierwszą, większą aplikację na Androida. Jestem na etapie zbierania technologii jakie mi są potrzebne i planowania jak to wszystko spiąć razem. Przyznam się szczerze, bardzo dużo czerpię z metody prób i błędów.
W dużym skrócie: Mam serwer, który na podstawie zapytań HTTP odpowiada mi jsonem. Mam u użytkowników i mam oferty dla użytkowników. Z aplikacji można korzystać jako użytkownik anonimowy i użytkownik zalogowany. Użytkownik anonimowy powiedzmy widzi oferty randomowe a użytkownik zalogowany oferty spersonalizowane i np. może dodawać własne oferty.
(Ja wiem, że może na logikę to się nie trzyma kupy, ale idea jest bardziej złożona)

Teraz, to co mnie zastanawia:
W jaki sposób powinienem w właściwie rozwiązać właściwie dwie ścieżki używania aplikacji? Interfejs użytkownika zalogowanego będzie wyglądał trochę inaczej od anonimowego. Ot, chociażby ta drobna różnica. Mam kilka pomysłów, ale obawiam się że gdy zacznie mi dochodzić więcej problemów to mogę zacząć piszczeć od bałaganu w kodzie. Dlatego już na początku pytam was o radę ;)

0

Przede wszystkim jak najmniej zmiennych statycznych. Do sesji można zrobić coś takiego: http://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/
Tzn. tworzysz sobie np. trzy zmienne (inty) np. USER_LOGGED, USER_ANONYMOUS, USER_NEVER_LOGGED i po każdym wejściu na dany sposób wpisujesz jedną ze zmiennych do shared preferences (po wylogowaniu wpisujesz USER_NEVER_LOGGED). Później przy starcie pierwszej aktywności odczytujesz zmienną i na tej podstawie decydujesz czy np. automatycznie zalogować z poprzednich danych (też możesz je wpisać do shared preferences) pokazując splash screen czy może pokazać kartę startową aplikacji. Dobre biblioteki http to Retrofit, android-query i Robospice (ta druga ma więcej możliwości). Do wczytywania obrazów Picasso albo android-query. Do transformacji jsonów Gson albo Jackson (Retrofit i Robospice mają wbudowaną obsługę tych bibliotek).

1 użytkowników online, w tym zalogowanych: 0, gości: 1