Shopping Advisor – krnąbrne zakładki #dajsiepoznac

Znalazłam wczoraj dość duży problem, który zauważyłam dopiero, gdy testowałam poprzednio opisanego wizarda dla nowych użytkowników. Mianowicie dzieją się jakieś dziwne rzeczy związane z zakładkami. Do adaptera wchodzą trzy – All, 7 Days, 30 Days, ale tylko na dwóch z nich (pierwszej i ostatniej) odpalają się metody onCreateView czy onActivityCreated. Konstruktory odpalają się na wszystkich trzech. W adapterze też są trzy.

Na dodatek, gdy wybieram drugą z zakładek tak naprawdę wywoływana jest…trzecia. Albo to już przemęczenie albo ekscytacja nadchodzącym urlopem, ale totalnie nie mogę tego ogarnąć i wątpię by udało mi się to w najbliższych dniach:( Chyba potrzebuję odpoczynku;) Nie pomogła też premiera nowej książki Remigiusza Mroza „Trawers”, która skutecznie w ostatnich dniach odwracała moją uwagę od wszystkiego innego.

Ale, żeby nie było, że jest tylko źle to z sukcesów z kolei udało mi się podpiąć logikę liczącą i zapisującą te prognozy, które pobieramy na podstawie danych od użytkownika w wizardzie:) Zatem cały czas do przodu, tylko troszkę wolniej:)

Shopping Advisor – Wizard #dajsiepoznac

Niedawno w jednym z komentarzy na blogu zaproponowano mi pomysł zrobienia pewnego „wizarda” by zademonstrować użytkownikowi działanie aplikacji i łatwiej go w nią wprowadzić. Początkowo pomysł nie wydał mi się dobry – idea miała polegać na zaproponowaniu użytkownikowi jakiejś założonej z góry grupy produktów na podstawie zainteresowań użytkownika.

Idea ta jednak na tyle utkwiła mi w głowie, że dość szybko przyszedł pomysł jak zrealizować taki przewodnik, tak by był bardziej zgodny z założeniami aplikacji. Nie chciałam z góry zakładać jakiejś grupy produktów jednakowej dla każdego użytkownika. Zależało mi na tym, by od początku aplikacja była jak najbardziej spersonalizowana względem tego kto jej używa.
I tak wymyśliłam coś takiego, by każdy użytkownik na starcie jeśli jeszcze nie ma żadnych produktów dodanych do bazy, musiał podać 5 dowolnych rzeczy, które kupił w ciagu ostatniego tygodnia i kolejne 5 – w ciągu ostatniego miesiąca (innych niż poprzednie 5). Pozwoli mi to, bardzo ale to bardzo zgrubnie, zaproponować mu pewne prognozy na produkty, które wprowadził w ten sposób. Tym samym użytkownik nie będzie miał pustego ekranu prognoz na początku. Z czasem używania prognozy będą się coraz lepiej dopasowywały.

Mimo, że ostatnio miałam zamiar poświęcić się już tylko doskonaleniu aplikacji i dopracowaniu jej, by mogła zostać wrzucona do Google Play, zdecydowałam się zrealizować opisaną funkcjonalność.

Póki co mam zatem dwa wstępne ekrany – bardzo podobne – dla produktów z 7 dni:

7days - Wizard

Dla produktów z 30 dni:

30days - Wizard

Wizualnie jeszcze nie do końca mi się to podoba, ale myślę, że spełni swoje zadanie. Do zrobienia zostało jeszcze obsłużenie tych dwóch formularzy, ponieważ na razie udało mi się zrobić tylko część interfejsu użytkownika.

Nie mam zamiaru zmuszać użytkownika, by ten formularz skrupulatnie wypełnił, ale jeśli tego nie zrobi, aplikacja będzie go do tego zachęcać przynajmniej do momentu dodania czegoś do bazy danych.

Shopping Advisor – stara funkcjonalność w nowej odsłonie #dajsiepoznac

W ostatnim czasie pojawił się pomysł by nie zmuszać użytkownika do ręcznego wpisywania produktów, które mu się skończyły a które już ma na liście. Zatem teraz produkty, które użytkownik ma już widoczne na ekranie prognozy będzie można oznaczyć jako skończone, podobnie jak kupione czy zarchiwizowane.

Jak widać na zrzucie ekranu pojawił się przycisk smutnej buźki – jest to właśnie przycisk, który pozwala nam na oznaczenie uprzednio wybranych produktów jako skończonych.

markasempty

Jego naciśnięcie powoduje, że generowany jest nowy wpis w historii a tym samym nowa prognoza.

Dla przypomnienia przycisk koszyka – to przycisk za pomocą którego oznaczamy produkty jako kupione by nie wyświetlały nam się już dłużej na liście do kupienia w tym tygodniu itp Natomiast przycisk archiwizacji służy do usunięcia produktu z widoku, gdy już nie potrzebujemy kupować tego typu rzeczy. Produkty oznaczone jako zarchiwizowane nie są jednak usuwane całkowicie. Aplikacja nadal pamięta historię oraz to, jak często użytkownik kupował te produkty.

Shopping Advisor – zmiana wyglądu – jeszcze raz #dajsiepoznac

Kolejny raz zmieniłam wygląd, by tym razem dodać ikonki material design dostarczane przez Google. Kolory aplikacji to teraz zielony i szary – myślę, że wygląda to całkiem schludnie. W kwestii dobrania koloru znowu skorzystałam ze wspomnianego już wcześniej Material Design Color Pallete Generator.

Ponieważ chciałam by ikonki zgodnie z wygenerowanym schematem kolorów były szare musiałam je przekolorować na ów szary, ponieważ Google dostarcza tylko kolor biały oraz czarny. Jest jednak świetne narzędzie do tego celu jakim jest Android Asset Studio, gdzie znajduje się Generic Icon Generator, który umożliwia nam zarówno przekolorowanie ikon jak i zmianę ich wymiarów,  a także dodanie przestrzeni wokół ikonek.

Ten zestaw narzędzi generalnie wystarcza do zrobienia prostego designu zgodnego z zasadami material design.

Poniżej zrzut ekranu – tym razem z symulatora tabletu.

screenshot-tablet

Jak widać mamy teraz trzy sekcje: All, 7 Days i 30 Days – mają one służyć podziałowi prognoz na te, które są nam najbliższe i te trochę dalsze. Przycisk z plusem pozostał bez zmian – nadal służy on do dodawania nowych produktów, które nam się skończyły.

Shopping Advisor – przejście na Windows #dajsiepoznac

Niedawno zakończyłam umartwianie się na Linuxie – przeniosłam pracę na Windows i na razie wygląda to w miarę stabilnie. Zarówno emulator jak i Android Studio mam włączone cały czas i system nigdy nie zawiesił się na amen. Przyznam jednak, ze Studio czasem się zwiesiło do tego stopnia, że trzeba było zabić proces. Bolesnym faktem jest z kolei to, że działa dużo wolniej niż na Linuxie niestety.  SDK instalowało się długo, start emulatora trwa sporo i czasem zdarza się, że podczas deploymentu aplikacji na emulator na kilka sekund wszystko przestaje odpowiadać… Nie ma zatem ideałów, ale i tak wolę to niż wyłączanie komputera przyciskiem Power:)

Żeby uczynić pracę nad aplikacją jeszcze milszą dodałam sobie trochę zabawek:

  • Zmieniłam skórkę z domyślnej Darculi na nieco zmienioną przeze mnie Obsidian
  • Dodałam kolorowanie logcata sposobem opisanym tutaj. Mianowicie ustawia się to wchodząc w File -> Settings ->  Editor -> Colors & Fonts -> Android Logcat i zmieniamy poszczególne kolorki klikając w kolor obok checkboxa „Foreground”. Trzeba pamiętać o tym, by wcześniej odznaczyć opcję Use inherited attributes, bo w przeciwnym wypadku klikanie nie przynosi efektu. U mnie końcowy rezultat wygląda tak:
    logcat
    Użyte kolory takie jak we wspomnianym przeze mnie linku:

    • Assert : 9876AA
    • Debug : 6897BB
    • Error : FF6B68
    • Info : 6A8759
    • Warning : BBB529

  • Na koniec włączyłam sobie też skróty klawiaturowe Visual Studio korzystając z ustawień dostępnych tutaj. Trzeba nacisnąć „View Raw”, wówczas plik resharpher.jar zostanie ściągnięty na nasz komputer. Wówczas w Android Studio wybieramy File -> Import Settings i wskazujemy na ściągnięty plik, później restart IDE i gotowe.