Google+ Followers

neděle 31. května 2015

AppAnalytics

Vývojové nástroje Delphi a C++ Builder nabízí mnoho rozšíření, které zefektivňují nebo usnadňují proces tvorby aplikace. Při kódování aplikace nám asistuje Castalia, do prostředí lze integrovat systémy pro správu verzí jako je Subversion nebo GIT, technologie LiveBindings nabízí mimo jiné rychlé prototypování aplikací a s přizpůsobením aplikace různým typům zařízení pomůže návrhář FireUI.
Verze XE8 jde ještě dál a přináší vývojářům možnost zvýšit "User Experience" svých aplikací. Najít pro "User Experience" přijatelný český překlad není vůbec jednoduché. Obecně používaný "uživatelský prožitek" působí přinejmenším zvláštně, byť mnohým z nás již nějaký software hluboký uživatelský prožitek dozajista přinesl.
Nicméně poučit se z toho, jakým způsobem uživatelé s naší aplikací pracují, může být pro její další rozvoj velmi užitečné, a to zvlášť u aplikací, kde nejsme s uživateli v přímém kontaktu. Technologie AppAnalytics tak může být zajímavým zdrojem provozních informací o mobilních aplikacích umístěných na aplikačních tržištích, nebo u rozsáhlejších stolních aplikací.

Jaké informace lze získat

AppAnalytics (pokud jsou pro danou aplikaci aktivovány) sledují řadu metrik zcela automatizovaně. Jedná se především o počet uživatelů, počet spuštění aplikace, pohyb uživatele rozhraním (odkud a v jakém sledu jsou otevírány formuláře nebo používány jednotlivé ovládací prvky), dále například selhání aplikace, či na jakém operačním systému uživatel aplikaci provozuje.
Druhým zdrojem informací jsou uživatelské metriky. AppAnalytics umožňují ošetření libovolné události a zachycení až čtyřech atributů. Lze tak zjistit a následně analyzovat mnoho zajímavých informací o tom, jak je aplikace skutečně používána a jaké jsou preference uživatelů.

Integrace AppAnalytics do aplikace

Používání AppAnalytics je velmi jednoduchou záležitostí. Všechny potřebné funkce v sobě zapouzdřuje jediná komponenta "TAppAnalytics", dostupná jak ve FireMonkey tak ve VCL. Pokud mají být sledovány uživatelské události, je vhodné komponentu umístit do datového modulu, aby byla přístupná ze všech formulářů, v kterých hodláme sběr metrik použít.


Aby bylo možné AppAnalytics zprovoznit, je třeba přiřadit unikátní identifikátor aplikace "ApplicationID". Protože jsou AppAnalytics cloudovou službou, je pro jeho získání nutné aplikaci nejprve zaregistrovat na serveru. Registrace se provádí prostřednictvím webu, a to konkrétně na adrese https://appanalytics.embarcadero.com/:

Registrace

Pro přístup je třeba použít přihlašovací údaje účtu EDN, ke kterému bylo registrováno vývojové prostředí. Po přihlášení a vyplnění základních údajů je vygenerován potřebný identifikátor. Ten pak v inspektorovi objektů nebo v kódu přiřadíme (včetně složených závorek) komponentě "TAppAnalytics".

Získání "ApplicationID"

Volba "Guest User" umožňuje poskytnout přístup do portálu jednomu dalšímu uživateli. Dále je možné nastavit IP adresy, které nebudou do výstupů zahrnovány (typicky tedy počítače vývojářů).

Nyní je třeba nastavit, které události mají být za běhu aplikace sledovány. K tomu slouží AppAnylytics Options. Zde se mírně liší implementace v knihovně VCL a FireMonkey:

AppAnalytics - nastavení


Příklady Delphi


// Nastavení (VCL)
procedure TCentral.FormCreate(Sender: TObject);
begin
  AppAnalytics.CacheSize := 800;
  AppAnalytics.UpdateInterval := 1000;
  AppAnalytics.Options := [aoTrackStartup, aoTrackExceptions];
  AppAnalytics.Active := True;
end;

I když ve VCL nemají AppAnalytics Option pro uživatelské události, můžeme je jednoduše sledovat zavoláním metody "TrackEvent".

// Odeslání uživatelských metrik (VCL)
procedure TCentral.Osoby1Click(Sender: TObject);
begin
  AppAnalytics.TrackEvent('Otevření okna', 'Menu', 'Osoba', 1);
  btnOsoby.Click;
end;

Metoda "TrackEvent" má čtyři vstupní parametry, které lze naplnit libovolnými hodnotami. První tři (ACategory, AAction a ALabel) jsou typu string. Poslední parametr (AValue) má datový typ Double.


Příklady C++


// Nastavení (VCL)
void __fastcall TForm1::FormCreate(TObject *Sender);
{
  AppAnalytics1->CacheSize = 500;
  AppAnalytics1->UpdateInterval = 800;
  TAnalyticsOptions aao;
  aao << aoTrackStartup;
  aao << aoTrackExceptions;
  AppAnalytics1->Options = aao;
  AppAnalytics1->Active = True;
}

// Odeslání uživatelských metrik (VCL)
void __fastcall TForm1::Osoby1Click(TObject *Sender);
{
  AppAnalytics->TrackEvent("Otevření okna", "Menu", "Osoba", 1);
  btnOsoby->Click;
}

Ochrana soukromí

Při prvním spuštění aplikace je každý uživatel automaticky informován o tom, že jsou anonymně sbírány a odesílány informace související s jejím během. Lokalizaci anglického textu lze provést přímo v inspektorovi objektů, nebo za běhu v kódu aplikace.

Upozornění uživatelům

Před zobrazením dialogu je generována událost "OnPrivacyMessage". Tu můžeme případně ošetřit vlastním kódem a v případě, že si uživatel nebude přát informace o provozu aplikace poskytovat, sledování vypnout.

Výstupy

Jednotlivé monitorované události se ukládají do paměti a po určitém časovém intervalu se odesílají do cloudu. Oba parametry, tedy "CacheSize" i "UpdateInterval" jsou nastavitelné. Nasbíraná data jsou dostupná na již zmiňovaných webových stránkách https://appanalytics.embarcadero.com/. Pro všechny dostupné sestavy je k dispozici nastavení období, pro které má být sestava vygenerována:

Základní přehled

Graf zachycující přechody mezi jednotlivými formuláři aplikace může být u rozsáhlejších aplikací poněkud nepřehledný:

Form Flow

Tabulkové výstupy si lze jednoduše stáhnout ve formátu .csv pro další zpracování:


V záložce "Advanced Analysis" je k dispozici formulář pro konfiguraci a spouštění parametrizovatelných sestav:

Pokročilé analýzy

Licencování

AppAnylytics jsou licencovány dle počtu sledovaných aplikací a objemu zpracovávaných událostí. Jednotlivé úrovně jsou pojmenovány podle planet sluneční soustavy. Nejnižší varianta, která dovoluje sledovat pro právě jednu aplikaci až 10 000 událostí za měsíc je k dispozici zdarma pro všechny uživatele Delphi, C++ Builderu nebo RAD Studia XE8 v edici Professional a vyšších. Úplný přehled cen naleznete na stránkách http://www.embt.cz/cs/produkty/310-appanalytics.html.