29 lipca 2014

Podstawowe pojęcia i omówienie interfejsu Taskera

Przy pierwszym uruchomieniu Taskera większość użytkowników nie wie jak zacząć na nim pracować. Wbrew temu co mogłoby się wydawać aplikacja ma bardzo przemyślany i logicznie zaprojektowany interfejs. Trzeba go jedynie poznać i się do niego przyzwyczaić. Jeśli ktoś ma ambicję by poznać Taskera to od razu proponuję wyłączyć Beginner Mode. Bez tego część możliwości aplikacji jest niewidoczna. Opcję tą wyłącza się w ustawieniach Preferences / UI.

Podstawowe pojęcia

Zanim zaczniemy omawiać wygląd okna i stawiać pierwsze kroki w automatyzacji naszego urządzenia należy zapoznać się z nazewnictwem poszczególnych elementów aplikacji by później łatwiej poruszać się w opisach możliwości Taskera.

Profil

Profilem nazywa się powiązanie kontekstu (warunków uruchomienia) z taskiem (zadaniem) do wykonania. Profil może mieć kilka kontekstów, pomiędzy którymi występuje operator logiczny ORAZ czyli muszą być wszystkie spełnione by profil stał się aktywny. Profil może mieć status włączony lub wyłączony. Jeśli jest wyłączony to pomimo spełnienia warunków jego kontekstów nie uaktywni się. Należy pamiętać, że wyłączenie profilu w trakcie jego aktywności spowoduje wykonanie tasku wyjściowego.

Task

Task (zadanie) jest zbiorem akcji do wykonania. W przypadku tasków powiązanych z profilem rozróżnia się task wejściowy (uruchamiany gdy profil staje się aktywny) i task wyjściowy (uruchamiany gdy profil przestaje być aktywny). Wyjątkiem od tego są profile uruchamiane kontekstem typu event (zdarzenie), które nie trwają w czasie (po prostu wykonywany jest task wejściowy i nie ma tasku wyjściowego). Przykładem kontekstu typu event jest włączenie ekranu. Jest to tylko zdarzenie i nie trwa ileś czasu. Task nie musi być powiązany z profilem. W takim wypadku, odnosząc się do języków programowania, pełni rolę procedury lub funkcji.

Scena

Scena jest zbudowanym przez użytkownika ekranem umożliwiającym wyświetlanie lub pobieranie danych.

Zmienna

Zmienna jest to konstrukcja programistyczna charakteryzująca się nazwą, typem oraz wartością, umożliwiająca odwoływanie się do jej wartości za pomocą jej nazwy. Ktoś zrozumiał? Upraszczając mamy sobie zmienna %TIME (nazwy zmiennych w Taskerze zawsze poprzedzane są znakiem % i muszą mieć długość minimum 3 znaków). Jest to zmienna na stałe wbudowana w Taskera i przez niego aktualizowana na bieżąco, a zawiera aktualny czas. Czyli jeśli projektując task potrzebujemy użyć aktualnej godziny to wystarczy, że odczytamy wartość ze zmiennej %TIME. Zmienne możemy tworzyć samemu i przechowywać w nich dane. Są to zmienne użytkownika. W Taskerze występują dwa rodzaje zmiennych użytkownika: lokalne i globalne. Zmienne globalne (ich nazwy muszą zawierać przynajmniej jedną wielką literę np. %Dom lub %doM) to takie, do których mamy dostęp we wszystkich taskach. We wcześniejszych wersjach Taskera zmienne globalne musiały mieć całe nazwy pisane wielkimi literami i ja z przyzwyczajenia stosuję tą zasadę. Zmienne lokalne (z nazwami pisanymi małymi literami np. %liczba) dostępne są tylko w obrębie jednego tasku. Jeśli nie ma potrzeby by wartość ze zmiennej była dostępna w innych taskach zaleca się stosować zmienne lokalne. W Taskerze nie ma podziału zmiennych w zależności od typów danych jak w wielu językach programowania. Należy pamiętać, że zmienne %Dom i %doM to całkowicie różne zmienne.

Kontekst

Kontekst to inaczej warunek aktywacji profilu. Warunkiem tym mogą być bardzo różne zdarzenia, przykładowo: data, czas, połączenie z siecią WiFi, uruchomienie wybranej aplikacji, podłączenie urządzenia do ładowarki czy spadek naładowania baterii do określonego poziomu. Część kontekstów ma określony czas trwania np. gdy poziom naładowania baterii zawiera się w przedziale 10-20%, ale są też konteksty typu event (zdarzenie), które wywołują uruchomienie tylko tasku wejściowego (profil uaktywniany takim kontekstem jest aktywny tylko przez chwilę).

Akcja

Akcję można opisać jak polecenie. Z akcji składają się taski. Akcją może być komenda warunkowa if albo polecenie włączenia WiFi. W taskerze akcje dzieli się na dwie grupy. Akcje zwykłe oraz akcje typu ustawienie. Te drugie odpowiedzialne są zmiany ustawień systemu (np. poziomu głośności czy włączenia Bluetooth). Akcje ustawień mają dość charakterystyczną cechę. Jeśli wykonane zostaną w tasku wejściowym profilu to po dezaktywacji profilu same przywrócą się do poprzedniej wartości. Przykładowo jeśli stworzymy profil noc, który ma być aktywny miedzy godzinami 23, a 7 rano i w tasku wejściowym dodamy akcję wyłączającą WiFi to rano gdy profil przestanie być aktywny WiFi automatycznie zostanie włączone mimo, że takiej akcji nie ma w tasku wyjściowym profilu. Akcje ustawień oznaczone są ikoną małego trybika.

Projekt

Projekt jest zbiorem profili i tasków, które tworzą jedną całość np. zarządzają ustawieniami telefonu w zależności od lokalizacji. Dzięki podziałowi profili na projekty można zachować porządek w Taskerze i łatwiej jest wyeksportować pliki dla innego użytkownika.

Wtyczka

Jak wiele innych aplikacji tak i Tasker ma możliwość korzystania z wtyczek dzięki czemu rozszerzane są możliwości programu. Pluginy mogą dodawać nowe akcje, konteksty oraz zmienne.

Interfejs Taskera

Główny ekran Taskera ma na górze 4 zakładki (z włączonym Beginner Mode tylko 3 zakładki): Profiles, Tasks, Scenes i Vars (czyli odpowiednio Profile, Taski, Sceny i Zmienne). Na dolnym pasku znajdują się zakładki projektów. W lewym górnym rogu znajduje się ikona Taskera służąca do włączania i wyłączania usługi programu (należy dłużej przytrzymać naciśniętą ikonę). W prawym dolnym rogu ekranu zawsze widoczny jest klawisz +, za pomocą którego można dodawać nowe profile, taski, sceny lub zmienne w zależności, od tego, która zakładka jest aktywna.

Oto przykładowy widok zakładki Profile.

Zakładka Zadania oraz Sceny.

Zakładka Zmienne

Dłuższe dotknięcie profilu, tasku, sceny czy zmiennej powoduje wyświetlenie paska z opcjami związanymi z danym elementem. Podobnie dłuższe dotknięcie górnych i dolnych (projektów) zakładek powoduje wyświetlenie dodatkowego menu z opcjami dla tych elementów. W przypadku zakładek projektów pozwala to dodać nowy projekt, importować projekt, usunąć/zmienić nazwę/ikonę/pozycję istniejącego projektu lub go wyeksportować. W przypadku zakładek Profile, Taski i Sceny dłuższe dotknięcie pozwala głównie na import odpowiednio profili, tasków i scen.

Importowanie projektów, profili, tasków, scen

Omawiając interfejs doszliśmy do bardzo ważnej funkcjonalności Taskera, a mianowicie importu i eksportu jego zawartości. Dzięki temu możemy nasz projekt/profil/task wyeksportować by ktoś mógł wykorzystać go w swoim urządzeniu.

Eksport elementów polega na dłuższym dotknięciu danego projektu/profilu/tasku/sceny i wybraniu opcji Menu / Export / XML to SD. W trakcie eksportu w pamięci urządzenia tworzone są pliki:

  • xxxxxx.prj.xml w folderze /sdcard/Tasker/projects/ dla projektów,
  • xxxxxx.prf.xml w folderze /sdcard/Tasker/profiles/ dla profili,
  • xxxxxx.tsk.xml w folderze /sdcard/Tasker/projects/ dla tasków,
  • xxxxxx.scn.xml w folderze /sdcard/Tasker/scenes/ dla scen.

W podobny sposób wykonuje się import elementów Taskera. Pliki xml należy skopiować do odpowiednich folderów w zależności od typów i następnie dłużej nacisnąć odpowiednią zakładkę projektu, profilu, tasku lub sceny i wybraniu opcji Import.

Należy pamiętać, że Tasker zaimportuje dane tylko wtedy gdy wersja aplikacji jest taka sama lub wyższa niż na urządzeniu gdzie przeprowadzono eksport. Czasem powoduje to konieczność zainstalowania Taskera w wersji beta o czym pisałem w pierwszym wpisie.

Kopia zapasowa

Mówi się, że "ludzie dzielą się na tych co robią kopie zapasowe i na tych co... będą je robić". Kopia zapasowa w przypadku Taskera to bardzo ważna sprawa. Utrata tworzonych przez długie tygodnie profili byłaby katastrofą. Autor Taskera pomyślał o tym i po wybraniu Menu / Data mamy dostęp do opcji Backup i Restore. W ten sposób utworzony backup zawiera wszystkie projekty, profile, taski i sceny jakie mamy wprowadzone w Taskerze.

Ja osobiście polecam włączenie jeszcze tworzenie automatycznych kopii bezpieczeństwa. Dokonuje się tego w ustawieniach aplikacji na zakładce MISC. Opcja nazywa się Maximum Auto-Backup Age i można wybrać jak stare kopie bezpieczeństwa ma przechowywać aplikacja. Ja ustawiam tą opcję na 2 dni. Mam wtedy pewność, że jeśli coś zmienię bez utworzenia ręcznej kopii bezpieczeństwa to w ciągu 2 dni zauważę, że coś jest nie tak i przywrócę poprzednia wersję.

Na dziś to koniec. W następnym wpisie zaczniemy tworzyć profile czyli zaczniemy prawdziwą zabawę z Taskerem.

22 lipca 2014

Zaczynamy przygodę z Taskerem

Smartfony za mało "smart"

Żyjemy w czasach, w których posiadanie smartfonu jest na porządku dziennym. Czasem jednak ma się wrażenie, że urządzenia te są za mało "smart". Czemu w, jak wynika z nazwy, inteligentnych telefonach trzeba wciąż powtarzać te same czynności, czemu te urządzenia mają nieraz problemy w "dogadywaniu się" między sobą? Czemu w tak małym stopniu możemy nimi sterować głosem? Odpowiedzią na te pytania jest Tasker. Przynajmniej dla urządzeń pracujących pod kontrolą systemu Android. W czym pomoże nam Tasker? W zautomatyzowaniu wielu powtarzalnych czynności, w dopasowaniu sposobu pracy systemu operacyjnego do naszego trybu życia, w ulepszeniu komunikacji głosowej ze smartfonem czy tabletem i w końcu w ulepszeniu komunikacji między różnymi urządzeniami. Tak naprawdę głównym ograniczenie jest nasza pomysłowość.

Dlaczego Tasker?

Osoby, które przeglądały zasoby sklepu Google Play zapewne trafiły na programy podobne do Taskera takie jak Llama, Locale czy Automagic. Czemu więc Tasker? Dla mnie ta aplikacja, mimo trudnego do ogarnięcia interfejsu, jest najprostszy w obsłudze i oferuje najwięcej możliwości. Poza tym najbardziej przypomina mi środowisko programistyczne dzięki czemu jeśli ktoś miał do czynienia z jakimkolwiek językiem programowania szybko się w nim odnajdzie. Kolejnym argumentem jest zwykłe przyzwyczajenie gdyż używam go już od 5 lat.

Instalujemy Taskera

Taskera można zakupić w sklepie Google Play. Jego dzisiejsza cena to 14,99 zł.

Aplikację można też pobrać ze strony jego autora. Wersja ze strony działa przez 7 dni bez konieczności płacenia. Dzięki temu można się porządnie zapoznać z aplikacją i upewnić się czy chcemy wydać na niego pieniądze. Należy pamiętać, że do zaintalowanie pliku apk pobranego ze strony autora aplikacji konieczne jest włączenie opcji Nieznane źródła, którą znajdziemy w Ustawiania / Zabezpieczenia.

Należy pamiętać, że by móc zaimportować profile Taskera trzeba posiadać zainstalowaną tą samą lub nowszą wersję aplikacji. Ja czasem korzystam z wersji beta programu więc by móc zaimportować profile wyeksportowane przeze mnie należy taką też zainstalować. Są one dostępne na tej stronie. Przy każdym wyeksportowanym profilu będę podawał wymaganą do importu wersję Taskera.

OK, Tasker zainstalowany i co dalej?

Gdy Taskera mamy już zainstalowanego to czeka nas trochę nauki. Niestety ogromne możliwości aplikacji wiążą się z rozbudowanym i początkowo skomplikowanym interfejsem. Jeśli masz chęć poświęcić trochę czasu by poznać tą aplikację to ten blog jest dla Ciebie. Kolejne wpisy będą prowadzić Cię od podstaw do zaawansowanych możliwości Taskera. Gdyby to było dla Ciebie za mało zachęcam do odwiedzenia strony pomocy do aplikacji oraz wątków dotyczących Taskera na forum android.com.pl, na którym staram się udzielać w miarę możliwości.

Co znajdziecie na tym blogu

Na tym blogu chciałbym stworzyć kurs umożliwiający opanowanie Taskera, jego obsługi i możliwości. Zacznę od omówienia interfejsu, nazewnictwa elementów i najprostszych profili i stopniowo będę zwiększał poziom trudności. Wszystkie części kursu będę opierał na wykonywaniu profili, które mogą się przydać. Każdy z profili będzie udostępniony do pobrania i zaimportowania do swojego systemu.

Poza tym stopniowo będę opisywał wszystkie wykorzystywane wtyczki, akcje, eventy oraz stany czyli powstanie polskie tłumaczenie pomocy do Taskera. Oczywiście blog jest dla czytelników i to w jakim kierunku będzie zmierzł zamierzam uzależnić od tego czego Wy czytelnicy będziecie potrzebowali. Także zapraszam do komentowania. Na wszelkie pytania postaram się odpowiedzieć, a z problemami pomóc.