W dzisiejszym wpisie zajmiemy się automatyzacja aplikacji Zdrowie. Sam staram się w tej aplikacji zbierać stosunkowo dużo danych, związanych z moim zdrowiem. Dla przykładu, w każdy sobotni poranek mam ustawione przypomnienie o sprawdzeniu wagi oraz zanotowaniu jej do aplikacji. Dzięki czemu kontroluję swoją wage i nie muszę pamiętać o zważeniu się, gdyż po przebudzeniu mam już przypomnienie o tym na telefonie.
Dziś wykonamy dwa skrypty. Pierwszy z nich bedzie odpowiedzialny za wprowadzanie danych do aplikacji – wprowadzać bedziemy naszą wagę. Natomiast, drugi skrypt będzie zwracał ilość wypitej wody w dniu dzisiejszym. Niezależnie od pory roku nawodnienie organizmu jest bardzo ważne dla zdrowia, dlatego warto rownież i ten aspekt kontrolować. Z pomocą przychodzą nam aplikacje Zdrowie i Workflow.
Założenia skryptów
Głównym założeniem skryptów jest możliwość wykonania ich z poziomu widgetu, bez konieczności wchodzenia do aplikacji Workflow.
Dodawanie wagi
Jak widzimy na początku mamy dobrze nam znany Ask for Input, którego zadaniem będzie wprowadzenie wagi.
Parametry:
Question – ustawiłem jako Twoja obecna waga – tekst wyświetlający się nad wprowadzaną wartością.
Default – wartość domyślną pozostawiłem pustą, żeby każdorazowe jej usuwanie nie denerwowało użytkownika.
Input Type – to oczywiście typ danych jaki ma zostać podany przez użytkownika.
Kolejnym elementem naszego skryptu jest Log Health Sample, który odpowiada za zapisywanie danych w aplikacji Zdrowie.
Parametry:
Type – odpowiada za określenie kategorii do jakiej będą dodane dane. W naszym wypadku kategoria to Weight, czyli waga.
Value – czyli jak sama nazwa wskazuje jest to wartość jaka ma zostać dodana wraz z jednostką. Wartością w naszym skrypcie jest dana zwrócona przez komponent Ask for Input, natomiast jednostka to kilogramy.
Date – ostatni z parametrów, przyjmuje date dodania pomiaru, u nas będzie to data włączenia skryptu.
Warto wspomnieć, że parametry komponentu Log Health Sample, są zależne od pierwszego z omówionych przeze mnie parametrów, czyli Type.
Po wykonaniu operacji dodania nowej wagi, pozostaje nam jeszcze wyświetlić powiadomienie o wykonaniu czynności przez nasz skrypt.
Parametr Title ustawiłem jako Waga. Natomiast w ciele powiadomienia znajduje się tekst wraz z wprowadzoną wartością.
Odczytywanie ilości wypitej wody
Skrypt ten składa się z trzech elementów, pierwszym z nich jest Find Health Samples. Przyjmuje kilka parametrów, które jak zawsze po kolei omówię. Pierwszym parametrem jest kategoria z jakiej chcemy odczytać dane, w naszym skrypcie jest to Water. Kolejny parametr odpowiada za date początkowa lub zakres, tak jak w naszym przypadku jest to zakres całego dnia. Następnie możemy dodać kolejne filtry danych takie jak czas zakończenia czy źródło wprowadzonych danych, dodając nowy filter. Unity odpowiada za zwracana jednostkę interesującej nas wartości, u nas w skrypcie są to litry. Mamy możliwość grupowania danych za pomocą Group By, gdzie my grupujemy po całym dniu.
Następnie mamy przełącznik odpowiedzialny za wypełnianie brakujących danych. Jak widzimy ten parametr jest u nas wyłączony. Parametry Sort by i Order odpowiadają za sortowanie pobranych danych. W Sort by wybieramy po jakiej wartości mają być sortowane dane, a w Order, czy mają być sortowane rosnąco czy malejąco. Ostatni parametr to określenie limitu pobieranych danych np. wczytanie ostatnich pięciu dodanych szklanek wody. Komponent Find Health Samples przypomina tworzenie zapytań sqlowych, jeśli miałeś możliwość pracy z bazami danych to na pewno, widząc ten element skryptu, miałeś takie samo skojarzenie.
Round number to kolejny element budowanego przez nas skryptu. Wykorzystamy go do zaokrąglania pobranych danych. Parametr Round odpowiedzialny jest za kierunek zaokrąglania. Mamy możliwość zaokrąglania lewej strony po przecinku lub prawej. U nas będzie to prawa strona po przecinku. Następnie określamy zachowanie funkcji zaokrąglającej. Tutaj mamy do wyboru trzy typu: zawsze zaokrąglaj w górę, zawsze zaokrąglaj w dół lub normalne zaokrąglanie, czyli od 0.5 zaokrąglaj w górę, a gdy jest poniżej tej wartości w dół. Ostatnim parametrem jest ilość miejsc po przecinku. W naszym skrypcie będą to dwa miejsca po przecinku. Po pobraniu danych, zaokrągleniu wyniku pozostaje nam wyświetlić powiadomienie z przetworzonych danych. W tytule powiadomienia wstawiamy przetworzoną wartość zwróconą przez Round number i mamy gotowy skrypt, który będzie nas informował o ilości wypitej wody danego dnia.
Skrypt w widgecie
Po utworzeniu obu skryptów pozostaje nam wejść w ustawienia danego skryptu i wybrać typ na Today Widget.
Działanie skryptów
Podsumowanie
W dzisiejszym wpisie skupiliśmy się na automatyzacji systemowej aplikacji Zdrowie. Dodatkowo skonfigurowaliśmy nasze skrypty, tak aby móc uruchamiać je z widgetu. Podobnych skryptów możemy wykonać bardzo dużo, zmieniając jedynie interesującą nas kategorię. Skrypty do aplikacji Zdrowie, bardzo upraszczają życie osobie, która systematycznie wprowadza do niej dane.
Polecamy również:
Recenzja aplikacji Workflow
Pozostałe artykuły z serii: Jak tworzyć skrypty w Workflow
Doskonały tekst! Tak trzymać! 🙂
Przypominają mi się stare dobre gazety z których czerpało się informację na temat techniki komputerowej dekady temu.
A czy my nie żyjemy w Polsce? Nie można pokazać tego wszystkiego na menu w języku polskim?
Z tego co mi wiadomo to Workflow jest dostepny jedynie w jezyku angielskim.
Świetny wpis, bardzo ciekawie napisany 😀
Fajne to. Podpowiedz jak dodać ciśnienie. Tam mamy podać dwie liczby. Trzeba robić dwa widgety?
Zrobię o tym kolejny wpis, bo pojawiło się już kilka pytań o to.
Napisałeś, że powiadomienie pojawia się w soboty. Ale jak to zrobić?
Mam dodane przypomnienie normalnie w aplikacji Przypomnienia z włączoną cyklicznością – co sobotę.