čtvrtek 23. června 2016

Knihovna FireMonkey

Přesto, že vývoji aplikací pro mobilní platformy jsem se již v některých příspěvcích věnoval, nebyl vysvětlen význam knihovny FireMonkey (někdy také označované zkratkami FMX nebo FM).

Co je FireMonkey


FireMonkey je aplikační platforma (knihovna komponent), kterou společnost Embarcadero poprvé přidalo do svých nástrojů ve verzi XE2. Jedná se o alternativu k populární VCL, která je určena výhradně pro rychlý vývoj aplikací pro Windows a je tak v mnoha ohledech závislá na službách poskytovaných operačním systémem.

Hlavním důvodem pro rozšíření vývojových nástrojů o knihovnu FireMonkey byla právě snaha nabídnout vývojářům možnost vyvíjet aplikace pro různá zařízení a různé operační systémy. Knihovna FireMonkey je napsána v přímo v jazyce Objec Pascal a pro přístup k hardware jsou používány knihovny cílového operačního systému. U Windows jde o GDI+/Direct2D, na Mac OS X je to OpenGL a na iOS pak OpenGL_ES. Většina vizuálních objektů knihovny je založena na přístupu "CustomDraw", který řeší jejich vykreslování na úrovni hardwaru. Přes instanci "Platform", která tvoří můstek mezi FireMonkey a zvoleným OS je pak realizována například práce s okny, myší nebo vybranými nativními ovládacími prvky. Přibližně 80 - 90% kódu je tak nezávislá na hostitelském operačním systému.

Aby použití vlastních prvků uživatelského rozhraní nemělo nepříznivý dopad na rychlost běhu výsledných aplikací, využívá FireMonkey v maximální možné míře výkonu grafických procesorů. Všechny operace pracující s grafikou běží na samostatném vláknu a výkon CPU je tak k dispozici pro zpracování aplikační logiky. Zapojení GPU kromě rychlosti přináší i přístup k řadě grafických funkcí, které lze využít k návrhu poutavějších a uživatelsky přívětivějších aplikací.

Knihovny FireMonkey a VCL (Visual Component Library) nejsou vzájemně kompatibilní a nelze je kombinovat v rámci jednoho modulu. Příčinou jsou některé rozdíly v jejich vnitřní implementaci.

Podporované platformy
Aplikace vytvořené za pomoci FireMonkey lze přeložit do nativního tvaru pro operační systémy:

  • Windows 32-bit (Intel)
  • Windows 64-bit (Intel)
  • Mac OS X (Intel)
  • iOS (ARM) + iOS Simulátor (Intel)
  • Android (ARM) + Android Emulator
  • Android (Intel, s využitím libhoudini)

Hlavní rozdíly mezi FMX a VCL

Použití vektorové grafiky


Knihovna VCL využívá rastrovou (bitovou, bitmapovou) grafiku, která je založena na popisu vlastností jednotlivých bodů, neboli pixelů. Ve FireMonkey je naopak většina vizuálních objektů "složena" z takzvaných primitivních grafických tvarů vektorové grafiky, jako je například obdélník, oblouk, kruh a další. Protože vektorová grafika na matematickém popisu grafických prvků, umožňuje bezproblémovou změnu měřítka, což je v době, kdy trh nabízí nekonečnou kombinaci velikostí a rozlišení zobrazovacích zařízení důležitá přednost.

Rastrová grafika

Rozměry, umístění prvků


Pokud v knihovně VCL nastavujeme šířku, výšku nebo například vzdálenost od okraje formuláře, musíme použít datový typ Integer. V opačném případě obdržíme chybové hlášení.

VCL - Chybové hlášení

FireMonkey v tomto případě těží z použití vektorové grafiky. Nejen, že umožňuje použití datového typu Float, ale místo pevné hodnoty lze použít takzvané animace (v inspektorovi objektů jsou označeny ikonkou okénka filmového pásu).

Zadávání rozměrů ve FireMonkey

Kódování barev


FireMonkey je určeno pro vytváření grafických aplikací. Zásadní je proto co nejširší podpora pro práci s barvami. Zásadním rozdílem v používání barev ve FireMonkey je využívání takzvaného "Alfa kanálu", neboli průhlednosti.

Rozdíly v kódování barev VCL a FireMonkey

Všechny parametry přístupné během návrhu lze samozřejmě nastavit i prostřednictvím kódu. Zde je třeba zohlednit rozdíly mezi knihovnami VCL a FireMonkey. Ty se týkají především již zmiňovaného kódování barev a jiného pojmenování barevných konstant.


Delphi


Knihovna VCL
Knihovna FMX

uses
  VCL.Graphics

var
  barva: TColor;

barva := clRed;
barva := 255;
barva := rgb(255, 0, 0);
barva := $0000FF;
uses
  System.UIConsts

var
  barva: TAlphaColor;

barva := claRed;
barva := $00FF0000;
barva := TAlphaColorRec.Red;
barva := TAlphaColors.Red;



C++Builder


Knihovna VCL
Knihovna FMX
#include <System.UIConsts.hpp>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TColor b;
  barva = clRed;
  barva = 255;
  barva = rgb(255, 0, 0);
  barva = $0000FF;
}


#include <System.UIConsts.hpp>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TAlphaColor b;
  barva = claRed;
  barva = System::Uiconsts::claRed;
  barva = TAlphaColors::Red;
  barva = 536870911;
}

Použití fontů


Ve VCL se velikost fontu určuje v bodech. Na palec připadá 72 bodů. Ve FireMonkey jsou velikosti fontů uváděny v DIP (Device Independent Pixel). Na palec připadá 96 pixelů. Při stejné velikosti písma tak bude text ve FireMonkey drobnější.

Porvnání velikosti fontů

Vztah předek rodič


VCL omezuje možnost nastavit objekt jako vlastníka pouze pro kontejnery jako jsou komponenty tříd "TForm", "TFrame", "TPanel" nebo "TDataModule". FireMonkey je v tomto směru mnohem otevřenější a prakticky kterýkoliv objekt může být vlastníkem libovolného jiného objektu. Implementace je možná nejen z kódu, ale často i vizuálně za pomoci okna "Structure Window":

Okno "Structure Window"


úterý 14. června 2016

FAQ Invalid platform

Na některých počítačích se je možné setkat při překladu s chybovým hlášením spojeným s neplatným určením cílové platformy:

Chyba Invalid Platform

Delphi v současné době podporuje překlad pro 7 různých platforem (Windows 32, Windows 64, MacOSX, Android, Android Emaulátor, iOS a iOS Simulátor). Nastavení pro jednotlivé platformy je uloženo v souboru EnvOptions.proj.
Při typické instalaci jej naleznete v adresáři:
C:\Users\UserName\AppData\Roaming\Embarcadero\BDS\verze\
tedy například:
C:\Users\petr\AppData\Roaming\Embarcadero\BDS\18.0\EnvOptions.proj  

Konkrétní hodnoty se načítají na základě proměnné $(Platform), která se přebírá z nastavení systému.

EnvOption

V případě, že je z jakéhokoliv důvodu na počítači tato proměnná nastavena a její hodnota neodpovídá očekávaným variantám (na Windows Win32 nebo Win64), je při překladu zobrazena výše uvedená chyba.

Proměnné prostředí Windows

Nejčastějším doporučením, které je možné najít na Internetu je otevřít dialog pro nastavení proměnných prostředí a proměnnou "PLATFORM" jednoduše odstranit.

Toto řešení je ve většině případů postačující. Existuje zde však riziko, že na nastavení této proměnné závisí korektní fungování některého z jiných programů, který je na počítači provozován.

Prostředí Delphi nabízí pro takové situace možnost "potlačení" nastavené hodnoty a její nahrazení hodnotou požadovanou. Stačí otevřít prostředí a v nabídce "Tools/Options/Environment Variables" kliknout na tlačítko "New", přidat novou proměnnou "PLATFORM" a přiřadit ji odpovídající hodnotu (například "Win32").

Přidání nové proměnné

V systému tak bude nyní tato proměnné k dispozici dvakrát, jednou na úrovni operační systému a jednou pro Delphi.

Provedené změny v nastavení Delphi

Po restartu vývojového prostředí by již mělo vše pracovat dle očekávání.

středa 6. dubna 2016

Windows 10 (část 2.)

RAD Studio 10 Seattle a Windows 10 (část 2.)

V minulém příspěvku jsme si ukázali, jak provázat aplikace vyvíjené v prostředích Delphi nebo C++ Builder 10 Seattle s centrem akcí operačního systému Windows 10, nebo jak použít nové vizuální styly.
Další novou komponentou pro knihovnu VCL, která je navržena pro podporu nových Windows 10 je ovládací prvek "SplitView". Komponenta SplitView je obdobou komponenty MultiView, která je součástí knihovny FireMonkey pro návrh multiplatformních aplikací. Jedná se o výsuvný panel, který může být použit k umístění libovolných ovládacích prvků. S použitím výsuvných panelů se můžeme setkat jak přímo u Windows 10, tak u mnoha dalších aplikací v čele s kancelářským balíkem Microsoft Office.

Výsuvné panely Win10 a MS Office

Realizace podobných výsuvných nabídek je nyní ve vývojových prostředích Delphi a C++Builder poměrně jednoduchou záležitostí. Jednou z možných variant je právě použití komponenty SplitView a komponenty CategoryButtons, která nabízí velmi široké možnosti pro přizpůsobení vzhledu a chování.

SplitView

Důležitá nastavení pro panel SplitView jsou:
Placement - Určuje umístění panelu v rámci formuláře. SplitView lze aktuálně uchytit k levé (svpLeft) nebo pravé (svpRight) hraně okna.
CloseStyle - Jak název napovídá, upravuje toto nastavení chování panelu při jeho skrytí. To může být buď úplné (svcColapse), nebo částečné (svcCompact). Šířku vysunutého a částečně skrytého panelu lze určit dle potřeby.
DisplayMode - Nastavení, které ovlivňuje, zda klientská oblast formuláře je či není dotčena zobrazením panelu. Pokud ne (svmOverlay), panel při vysunutí "překrývá" vizuální prvky umístěné v oblasti, kde se panel SplitView zobrazí. V opačném případě (svmDocked) budou komponenty, které mají pozici určenou relativně ke klientské oblasti formuláře panelem "odsunuty".  
UseAnimation - Určuje, zda má být pro zobrazení/skrytí SplitView použita animace (panel se neobjeví, ale je vysouván postupně). Pokud je animace zapnuta, lze nastavit počet kroků (parametr AnimationStep) a časový odstup (parametr AnimationDelay) mezi nimi. Kombinací těchto atributů lze měnit plynulost, s jakou se bude komponenta SplitView zobrazovat.


Delphi


// Nastavení SplitView
SplitView1.Placement := svpLeft;
SplitView1.CloseStyle := svcCompact;
SplitView1.DisplayMode := svmDocked;
SplitView1.UseAnimation := True;
SplitView1.AnimationStep := TrackBar1.Position;
SplitView1.AnimationDelay := TrackBar2.Position;

// Zobrazení panelu
procedure TForm1.Button1Click(Sender: TObject);
begin
  if SplitView1.Opened then
    SplitView1.Close
  else
    SplitView1.Open;
end;



C++Builder


// Nastavení SplitView
SplitView1->Placement = svpRight;
SplitView1->CloseStyle = svcCollapse;
SplitView1->DisplayMode = svmOverlay;
SplitView1->UseAnimation = True;
SplitView1->AnimationStep = 50;
SplitView1->AnimationDelay = 30;

// Zobrazení panelu
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (SplitView1->Opened) {
 SplitView1->Close();
} else {
 SplitView1->Open();
}
}

CategoryButtons

Pro návrh nabídky, kterou lze uživateli zobrazit s využitím SplitView můžeme použít komponentu CategoryButtons. Tato komponenta slouží jako kontejner pro správu tlačítek. Tlačítka lze členit do kategorií, které lze dle potřeby skrýt (sbalit) nebo zobrazit (rozbalit). Tlačítka mohou kromě textu obsahovat i grafiku.

Součásti komponenty CategoryButtons


Pokud se chceme vzhledem co nejvíce přiblížit výsuvným nabídkám operačního systému Windows 10, musíme pro CategoryButtons změnit některá nastavení.


Delphi


V případě, že chceme u jednotlivých tlačítek zobrazit kromě textu i ikony, připravíme si vhodnou grafiku. Tlačítkům můžeme ikony přiřadit jak přímo, tak odkazem na index komponenty ImageList, kterou můžeme použít jako kontejner:
CategoryButtons1.Images := iList;

Pokud pro SplitView nastavíme částečné skrývání (svcCompact), je vhodné ve stavu closed zneviditelnit popisky tlačítek (z čistě estetického důvodu):
CategoryButtons.ButtonOptions := 
CategoryButtons.ButtonOptions - [boShowCaptions];

Dále skryjeme rámeček, aby tlačítka působila jako nedílná součást SplitView:
CategoryButtons.BorderStyle := bsNone;

Tlačítka ukotvíme ke komponentě SplitView:
CategoryButtons.Anchors := [akLeft, akRight];

Dle potřeby upravíme písmo pro popisky tlačítek:
CategoryButtons.Font.Size := 11;
CategoryButtons.Font.Color := clWhite;

Odpovídajícím způsobem upravíme také vzhled tlačítek:
// Výšku tlačítka
CategoryButtons.ButtonHeight := 45;
// Standardní barvu tlačítky
CategoryButtons.RegularButtonColor := clNone;
// Barva stisknutého tlačítka
CategoryButtons.SelectedButtonColor := clNone;
// Barva tlačítka nad kterým je kurzor myši 
CategoryButtons.HotButtonColor := clGray;
// Šířka tlačítka přes celou šířku komponenty CategoryButtons 
CategoryButtons.ButtonOptions := 
CategoryButtons.ButtonOptions + [boFullSize];
// Tlačítka nebudou v rámečku kategorie 
CategoryButtons.ButtonOptions := 
CategoryButtons.ButtonOptions + [boCaptionOnlyBorder];
// Horizontální zobrazení kategorií
CategoryButtons.ButtonOptions := CategoryButtons.ButtonOptions
- [boVerticalCategoryCaptions];



Stejný kód pro C++Builder

CategoryButtons->Images = iList;
CategoryButtons->Categories->Items[0]->Items->Items[0]->ImageIndex = 0;
CategoryButtons->ButtonOptions =
CategoryButtons->ButtonOptions<<boShowCaptions;
CategoryButtons->BorderStyle = bsNone;
CategoryButtons->Anchors = CategoryButtons->Anchors<<akLeft<<akRight;
CategoryButtons->Font->Size = 11;
CategoryButtons->Font->Color = clWhite;
CategoryButtons->ButtonFlow =cbfHorizontal;
CategoryButtons->ButtonHeight = 45;
CategoryButtons->RegularButtonColor = clNone;
CategoryButtons->SelectedButtonColor = clNone;
CategoryButtons->HotButtonColor = clGray;
CategoryButtons->ButtonOptions =
CategoryButtons->ButtonOptions<<boFullSize;
CategoryButtons->ButtonOptions =
CategoryButtons->ButtonOptions<<boCaptionOnlyBorder;
CategoryButtons->ButtonOptions =
CategoryButtons->ButtonOptions>>boVerticalCategoryCaptions;

Výsledkem by měl být zhruba následující vzhled nabídky:

Výsledný vzhled aplikace

Zdrojový kód aplikací je dostupný na adrese:
https://onedrive.live.com/redir?resid=E2F9F7B64CA96B45!1281&authkey=!AEQdxr-4pbMpuhA&ithint=folder%2c

K tomuto článku je k dispozici i videoturoriál:


úterý 22. března 2016

Windows 10 (část 1.)

RAD Studio 10 Seattle a Windows 10

Ještě do 29. července 2016 mohou všichni uživatelé, kteří na svém PC používají Windows 7 a vyšší využít bezplatného přechodu na Windows 10. Takto získaná licence je vázána na konkrétní počítač, není však časově ani funkčně omezena. Jednou z hlavních výhod přechodu na Windows 10 jsou aktualizované ovladače, podpora některých nových technologií a vyšší úroveň zabezpečení systému. Důležitá je také podpora systému ze strany společnosti Microsoft, která je pro Windows 10 garantována do roku 2020 respektive do roku 2025.

Společnost Emabarcadero zareagovala vydáním nové verze vývojových nástrojů 10 Seattle. Ty umožňují využít mnohé z nových vlastností, které Windows 10 přinesly:

Vylepšení na úrovni prostředí
  • RAD Studio IDE je schopno pracovat s větší velikostí paměti
  • Prostředí podporuje práci s více monitory a s monitory 4K
Nové doplňky a komponenty
  • Nové vizuální styly Windows 10
  • Možnost provázání aplikace s centrem akcí
  • Nové komponenty „SplitView“ a „RelativePanel“
  • Sdílení dat aplikace prostřednictvím „Share Contracts“
  • Windows 10 ovládací prvky „SearchButton“, „ToggleSwitch“ a „ActivityIndicator“
Vzhled aplikace (stylování)
Spolu s uvedením verze 10 Seattle uvolnila společnost Embarcadero nové styly pro knihovny VCL a FireMonkey. Upravit stávající aplikaci tak, aby si uživatel mohl změnit její vzhled, je velmi jednoduché. Nejprve ve vlastnostech projektu (Shift+Ctrl+F11), v sekci „Application/Appearance“ je třeba vybrat styly, které mají být uživatelům k dispozici pro individuální nastavení.

Výběr dostupných stylů


Pozor! Základní styl "Windows" nesmí být nastaven jako defaultní.

V kódu je třeba do sekce uses přidat odkaz na jednotku vcl.Themes. To nám umožní využívat služby Správce Stylů. Pro výběr požadovaného stylu můžeme použít například komponentu ComboBox.


Delphi


uses
  …, Vcl.Themes;

// ComboBox naplníme dostupnými styly:
procedure TForm1.FormCreate(Sender: TObject);
var
  StyleName: String;
begin
  for StyleName in TStyleManager.StyleNames do
    cb1.Items.Add(StyleName);
end;

// Do události OnChange komponenty ComboBox přidáme
// kód pro změnu aktuálního stylu:

procedure TForm1.cb1Change(Sender: TObject);
begin
  TStyleManager.SetStyle(cb1.Text);
end;


C++ Builder


//Do hlavičkového souboru doplníme
#include <Vcl.Themes.hpp>

//Naplnění ComboBoxu:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  DynamicArray<String> styleNames = Vcl::Themes::TStyleManager::StyleNames;
  for (int i = 0; i < styleNames.Length; ++i)
     {
       String styleName = styleNames[i];
       cb1->Items->Add(styleName);
     }
}

//Nastavení zvoleného stylu:
void __fastcall TForm1::cb1Change(TObject *Sender)
{
  TStyleManager::SetStyle(cb1->Text);
}

Výsledný vzhled aplikace


Spolupráce aplikace s Centrem Akcí
Windows 10 si kladou za cíl být jednotící platformou, která na všech typech zařízení umožní uživatelům pracovat tak, jak jsou zvyklí. Protože přibývá uživatelů, kteří si své návyky přináší z chytrých telefonů nebo tabletů, setkáme se ve Windows 10 i s prvky, které byly dříve výhradně doménou mobilních zařízení. 
Jedním z nich je "Centrum akcí". Podobně jako u systémů Android nebo iOS se jedná o rychle přístupnou oblast, prostřednictvím které je uživatel informován o důležitých událostech, a z které lze realizovat většinu běžných úloh.

Centrum akcí (Android, iOS, Win10)
  

Služeb "Centra akcí" mohou využívat i aplikace napsané v Delphi nebo C++Builderu 10 Seattle. Pro tento účel zde přibyla VCL komponenta TNotificationCenter. S využitím komponenty „Notification“ stačí vytvořit novou instanci upozornění, nastavit potřebné parametry a odeslat „Centru akcí“. Komponenta rovněž umožňuje ošetřit událost „ReceiveLocalNotification“, která je vyvolána, když uživatel potvrdí přijetí oznámení (klikne na něj myší). Z aplikace tak můžeme uživatele informovat o libovolné události (např. dokončení nějaké operace) a pokud uživatel zprávu přijme, aplikaci maximalizovat nebo zobrazit odpovídající formulář či dialog.


Delphi


uses
  ..., System.Notification;

procedure TForm1.Button1Click(Sender: TObject);
var
  nt: TNotification;
begin
  // Vytvoření upozornění
  nt := TNotification.Create;
  nt.Name := 'Test';
  nt.Title := 'Testovací oznámení';
  nt.AlertBody := 'Operace byla úspěšně dokončena.';
  // Zobrazení upozornění
  nc.PresentNotification(nt);
end;

// Zpracování
procedure TForm1.ncReceiveLocalNotification(Sender: TObject;
  ANotification: TNotification);
begin
  ShowMessage('Upozornění přijato uživatelem');
end;


C++Builder


// Odeslání zprávy
void __fastcall TForm1::btnPoslatZpravuClick(TObject *Sender)
{
  TNotification *nc = NotificationCenter1->CreateNotification();
  nc->Name = "Test";
  nc->Title = "Testovací oznámení";
  nc->AlertBody = "Operace byla úspěšně dokončena.";
  NotificationCenter1->PresentNotification(nc);
}

// Zpracování
void __fastcall TForm1::NotificationCenter1ReceiveLocalNotification(TObject *Sender,
            TNotification *ANotification)
{
  ShowMessage("Upozornění přijato uživatelem");
}

Zobrazení oznámení (lišta, centrum akcí)


Pozor! Chování centra akcí lze do velké míry přizpůsobit. Pokud se upozornění z Vaší aplikace v "Centru akcí" nezobrazuje, zkontrolujte si, že je tato možnost v nastavení Windows 10 povolena.

Komponenta „Notification“ je dostupná nejen pro knihovnu VCL, ale rovněž pro FireMonkey. Možnosti práce s oznámeními se na různých platformách mírně liší. Například zvuková signalizace, použití visaček (Badges) nebo zobrazení upozornění v určený čas nemusí být podporováno na všech platformách.

Funkce dle platforem


K tomuto článku je k dispozici i videoturoriál a to na adrese: https://www.youtube.com/watch?v=5hfzo9bHP6E



čtvrtek 29. října 2015

RAD Studio 10 Seattle

Změny v licencovaní a registraci

Uvedením nové řady produktů RAD Studio, Delphi a C++Builder 10 Seattle došlo k úpravám některých mechanismů a procesů spojených s jejich licencováním, instalací a registrací. Zde naleznete některá doporučení, která by Vám měla pomoci s nejčastějšími otázkami:

Předplatné

Počínaje verzí XE8 společnost Embarcadero dodává většinu oprav pouze uživatelům s aktivní podporou, tedy těm, kteří mají zakoupeno tzv. "předplatné aktualizací". Výrazně tak přibývá uživatelů, kteří tuto službu využívají. Součástí technické podpory je také údržba verzí ("maintenance"), která po dobu platnosti garantuje uživateli bezplatné získání všech nově vydaných verzí. Dříve platilo, že po uvedení nové verze byl uživatelům odeslán e-mail, který je vyzval k vyzvednutí sériového čísla na portálu údržby ("maintenance portal)" a obsahoval zároveň i potřebné přihlašovací údaje. Bohužel se často stávalo, že zpráva kvůli antispamovým filtrům, změnám e-mailových adres a podobným důvodům nebyla doručena.

Počínaje verzí 10 Seattle uživatelům s předplatným jejich sériové číslo zůstává. Je-li k dispozici nová verze, stačí si ji jen stáhnout. Instalace se pokusí vyhledat existující licenci a provést s jejím využitím aktivaci produktu. Na maintenace portálu tak již naleznete pouze upozornění, které o této změně informuje.

Maintenance portal - upozornění.

Ověření předplatného

Období platnosti technické podpory bývá uvedeno v potvrzovacím e-mailu a také na faktuře. V řadě případů však nemusí být kupující, správce licence a  uživatel tatáž osoba. Pokud nemáte k výše uvedeným podkladům přístup, nevadí. Zda je Vaše předplatné aktivní, si nově můžete kdykoliv ověřit za pomoci aplikace „LicenseManager“. Naleznete ji v adresáři „bin“ Vaší instalace RAD Studia. Jsou zde uvedeny všechny důležité informace, které se Vaší licence týkají.

License manager

Který způsob instalace zvolit

Vývojové nástroje společnosti Embarcadero lze zakoupit v několika edicích, které se od sebe liší nabízenými funkcemi. Instalační média se podle edic neliší, ale obsahují vždy všechny dostupné funkce pro RAD Studio Enterprise (tedy jak pro Delphi, tak C++ Builder v edici Enterprise). O tom, co bude skutečně instalováno, rozhoduje zadané sériové číslo. Instalovat lze z webu nebo z instalačních médií.

Webová instalace - na počítač se stáhne relativně malý instalační program (cca 50 MB), který však po spuštění všechny binární soubory získává z Internetu a ukládá je do pomocného adresáře na disku. Výhodou je, že se soubory stahují v průběhu instalace produktu. Lze tak začít ihned, nic dalšího nepotřebujete. Webovou instalaci nelze použít, pokud nemáte k dispozici přístup k Internetu, nebo je Vaše připojení pomalé. Nejedná se o také ideální volbu, pokud hodláte produkt instalovat na více počítačích. Webová instalace má výrazně vyšší nároky na diskový prostor.

Instalační média - fyzická média již společnost Embarcadero standardně nedodává. Produkty jsou dodávány formou ESD (Electronic Software Delivery). Média si tak musíte objednat zvlášť, nebo si je vytvořit ze stáhnutého ISO obrazu. Odkazy na stažení obrazů instalačních médií naleznete na stránkách českého zastoupení.

ISO soubor lze připojit („namapovat“) jako virtuální disk. Z pohledu uživatele se pak jeví jako standardní mechanika s vloženým CD/DVD/Blue-ray diskem. Pro tento způsob práce s ISO souborem budete potřebovat pomocný software. Doporučované jsou nástroje jako VirtualClone Drive (viz obr. "Práce s ISO soubory" bod 1) , nebo MS Virtual CD Control.

Pro "vypálení" staženého ISO souboru je potřeba především vlastní fyzické médium. Protože velikost u RAD Studia 10 Seattle přesahuje kapacitu běžného DVD (4,7 GB), je třeba použít DVD+R DL (8.5 GB) nebo BD-R (25 GB). K zápisu na zvolené médium lze použít nástroje Windows (viz obr. "Práce s ISO soubory" bod 2), nebo prakticky libovolný vypalovací software.

Práce s ISO soubory

Odkazy na instalační média naleznete na http://www.embt.cz/cs/stranky/68-instalacni-media. Média jsou typicky dostupná ve dvou variantách, tedy pro registrované a pro neregistrované uživatele. Prvně uvedená jsou určena uživatelům s aktivním předplatným, nebo uživatelům, kteří již mají daný produkt registrovaný na svém účtu EDN. Naleznete zde i speciální instalaci pro uživatele síťových licencí. Naproti tomu média pro neregistrované uživatele si může stáhnout každý, kdo má účet EDN založený.

Doporučení pro instalaci

Pro bezproblémovou instalaci je doporučeno dodržet následující doporučení:
  • Zkontrolujte si, že počítač splňuje doporučené minimální nároky, především pak volný prostor na pevném disku.
  • Ověřte název účtu (jméno uživatele) pod kterým hodláte produkt instalovat. Nesmí neobsahovat diakritiku. 
  • Ověřte si, že máte dostatečná oprávnění. Instalaci se doporučuje provádět pod účtem s právy lokálního administrátora.
  • Připravte si všechny potřebné údaje (přihlašovací údaje k EDN účtu, sériová čísla, instalační média a podobně).
  • Před zahájením instalace si vytvořte bod obnovy operačního systému.
  • Během instalace je vhodné vypnout antivirovou kontrolu a případně také UAC (User Access Control)
  • Produkt musí být instalován pro všechny uživatele ("All Users").
  • Produkt zaregistrujte, zazálohujte licence a uložte si přihlašovací údaje k EDN.
  • Vyzvedněte si starší verze produktů a další případné bonusy. Ve většině případů mají tyto nabídky omezenou platnost a později se k nim již nemusíte dostat!
  • Instalujte rozšiřující produkty a komponenty.
  • Po úspěšné instalaci opět vytvořte bod obnovy operačního systému.

Instalace produktu "pod předplatným"

Jak již bylo řečeno, dodání nových verzí produktů v rámci předplatného již není realizováno prostřednictvím "Maintenance portálu". Způsob instalace a aktivace licence se liší podle typu licence, kterou uživatel vlastní.

Pojmenované licence - Pro instalaci a registraci pojmenované ("Named User") licence se použije sériové číslo předchozí verze. 
  • Pokud je na počítači instalována předchozí verze produktu, instalační průvodce ji automaticky detekuje a použije. 
  • Pokud provádíte instalaci na stroji, kde předchozí verze produktu instalována není, zvolte "I already have a product serial number". Následně vložíte Vaše sériové číslo pro předchozí verzi.
Síťové licence - Pro instalaci síťových pojmenovaných nebo síťových souběžných licencí je třeba provést takzvaný "rehosting" licenčního certifikátu získaného spolu s předchozí verzí. Správce licencí se musí přihlásit k licenčnímu serveru a z nabídky vybrat "License Hosting". Po zadání přihlašovacích údajů a čísla licenčního certifikátu (údaje jsou uvedeny v licenčním e-mailu) předchozí verze se načtou aktualizované licenční soubory. 

"Rehosting licence"

Na jednotlivých stanicích se pak provede instalace produktu. Použít je třeba instalační média pro síťovou instalaci. Odkaz pro jejich stažení je vždy uveden na téže stránce, kde jejich nesíťová varianta pro registrované uživatele.

Média pro síťové licence

Zkušební verze

Jak bývá zvykem, všechny vývojové nástroje společnosti Embarcadero si může zákazník před zakoupením vyzkoušet. Pro tento účel je k dispozici speciální "trial" licence. Ta se od placené "komerční" licence liší v následujících bodech:
  • Licence je funkční po omezenou dobu (30 dní). 
  • Licence je dostupná pouze v edici Architect. 
  • Není k dispozici zdrojový kód knihoven VCL a FMX. 
Zkušební verzi je doporučeno instalovat do zvoleného virtuálního prostředí (VMware, VirtualBox, MS Virtual PC a další). Produkt lze odinstalovat standardními prostředky operačního systému. Na počítači však zůstávají uchovány některé licenční informace. To je třeba brát v úvahu, pokud následně hodláte instalovat placenou licenci. Nově hledá instalace RAD Studia, Delphi nebo C++ Builderu předchozí licence. Nalezne-li tak informaci o dříve instalované zkušební verzi, převezme automaticky její licenční informace (včetně data expirace). Uživatel není vyzván k zadání sériového čísla a nainstalovaný produkt neodpovídá zakoupené licenci. V takovém případě neprovádějte odinstalaci, ale pouze změňte licenci! Instalátor následně doplní nebo naopak odstraní příslušné součásti a komponenty.

Instalace Add-On balíčků, změna licence

U vývojových nástrojů společnosti Embarcadero lze provést změnu konfigurace i u již instalovaného software. Tuto možnost lze použít v případech, kdy potřebujeme:
  • Změnit zkušební verzi na trvalou komerční licenci.
  • Doplnit další funkce produktu (instalace FireDAC nebo Mobile Add-On).
  • Opravit poškozenou nebo nedokončenou instalaci.
Ve Windows 7 nalezneme tuto možnost přímo ve skupině programů instalovaných RAD Studiem.

Změna konfigurace - Windows 7

Ve Windows 10 je třeba otevřít „Ovládací panely“ a v sekci „Programy a funkce“ vybrat RAD Studio a volbu „Změnit“.

Změna konfigurace - Windows 8.x a vyšší

Po spuštění se otevře dialog, který umožňuje zvolit požadovanou akci. Volba „Upgrade“ dovoluje změnit edici nástroje nebo doinstalovat přídavné balíčky, pomocí „Modify“ můžeme přidávat nebo odebírat jednotlivé součásti stávající instalace a „Remove“ kompletně odstraní program z počítače.

Provedení "Upgrade"

Pokud zvolíme „Upgrade“, je následně třeba zadat sériové číslo zakoupené licence RAD Studia, Delphi, C++ Builderu nebo Add-On balíčku a spuštěný instalátor provede odpovídající změny.

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.