středa 25. září 2013

Delphi XE5: Vývoj pro Android I.

Nová verze Delphi, která byla uvedena na trh 11. 9. letošního roku rozšířila podporu cílových platforem o populární operační systém Android. Android je velmi specifická platforma známá svou vysokou fragmentací. V praxi to znamená širokou škálu verzí, s kterou se může vývojář u svých potenciálních uživatelů setkat. Embarcadero se samozřejmě snažilo zajistit podporu všech dominantních verzí, ale v různých zemích může být situace odlišná a speciálně u starších nebo levnějších zařízení je možné lidově řečeno "narazit".  
Před zahájením vývoje aplikací pro Android v Delphi XE5 je proto víc než vhodné ověřit, zda máte k dispozici zařízení odpovídající systémovým požadavkům. Předejdete tak frustraci, že Vaši aplikaci nespustíte a budete dlouze pátrat po příčinách. Zároveň je to důležitá informace z hlediska nasazení hotových aplikací u cílových uživatelů. Pojďme se tedy podívat, jaké požadavky musí zařízení splňovat:

1) ARM 7 - První podmínkou pro úspěšné sestavení a spuštění aplikace je verze architektury procesoru ARM. Sama společnost ARM již procesory nevyrábí. Mobilních zařízení navíc používají čipy, které integrují i grafické jádro, paměti, komunikační moduly a podobně. Můžeme se tak setkat s čipy od Samsungu, Nvidie nebo společnosti Texas Instruments. Delphi XE5 vyžadují koncové zařízení s procesory s architekturou ARMv7, což je většina procesorů rodiny Cortex. Ucelený přehled naleznete na http://cs.wikipedia.org/wiki/ARM.


2) NEON - Aplikace vytvořené v Delphi XE5 vyžadují podporu technologie NEON. NEON (http://www.arm.com/products/processors/technologies/neon.php) je rozšíření instrukční sady procesourů ARM, které významně urychluje zpracování určitých typů úloh jako je renderování nebo práce s multimédii. Toto rozšíření bohužel nepodporují procesory s označením Tegra2 společnosti Nvidia.


3) Android - Na koncovém zařízení musí být dále instalována některá z podporovaných verzí operačního systému Android. Jedná se o následující verze (API):

  • Jelly Bean, tedy Android ve verzi 4.1.x, 4.2.x nebo 4.3.x (API Level 16, 17 a 18)
  • Ice Cream Sandwich, Android 4.0.3 nebo 4.0.4 (API Level 15)
  • Gingerbread, Android 2.3.3 - 2.3.7 (API Level 10)
V případě, že zařízení odpovídá HW požadavkům, ale má instalovanou některou z nepodporovaných verzí OS, ověřte možnost upgrade. V ideálním případě tuto možnost naleznete v menu "Nastavení => Aktualizace software". Pokud tuto možnost zařízení nenabízí, doporučuji se obrátit na prodejce. Na GooglePlay je sice k dispozici řada "ROM Manažerů" a "ROM Updaterů", ale vzhledem k variabilitě zařízení a licencování je zde riziko, že zařízení po aktualizaci nebude pracovat.
Výše uvedené systémové nároky si lze ověřit na základě specifikací jednotlivých zařízení, jak je uvádí dodavatel, nebo díky volně dostupné aplikaci Christophera Moellera "SysCheck". Aplikace je ke stažení přes aplikační obchod GooglePlay.





Jestliže zatím žádné zařízení nevlastníte a o jeho nákupu teprve uvažujete, doporučuji zakoupit některé z přímo podporovaných přístrojů:

  • Google Nexus 4, 7 a 10
  • Samsung Galaxy SII a S4



Bližší informace o podporovaných zařízeních včetně informací jak byly testovány naleznete na http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development.
U nejlevnějších telefonů a tabletů (Colorovo, GoClever, Point Of View, Acer apod.) jsou často používány jednotky Cortex-A9, které mají technologii NEON jako volitelné rozšíření. Pokud nebudete mít jistotu, že konkrétní zařízení podporu NEON obsahuje, jeho nákupu se rozhodně vyhněte.

sobota 14. září 2013

Komponenty a grafika

V minulých příspěvcích jsem se věnoval stylům a možnostem jejich přizpůsobení. Víme tak, že většina komponent je ve FireMonkey tvořena s využitím základních tvarů vektorové grafiky. Ty nejběžnější najdeme v paletě nástrojů v záložce "Shapes". Navíc zde je k dispozici také třída "TPath". Tu využijeme v případech, kdy si hodláme vytvořit vlastní komponentu nebo grafický objekt, který nabídka "shapes" nepokrývá.


PATH, neboli cesta je standardizovaný zápis definice pro tvorbu nových grafických tvarů. Ve FireMonkey je lze použít také pro některé druhy animací. PATH pracují se souřadnicovým systémem, kde "x" roste směrem vpravo a "y" směrem dolů. Souřadnice bodů mohou při zápisu oddělené buď mezerou nebo čárkou.

Syntaxe PathData je velmi jednoduchá a je tvořena několika základními příkazy:
  • M (Move) - Určuje počáteční bod nového obrazce
  • L (Line) - Nakreslí přímku z aktuálního do určeného bodu
  • H (Horizontal line) - Nakreslí horizontální přímku z aktuálního do určeného bodu
  • V (Vertical line) - Nakreslí vertikální přímku z aktuálního do určeného bodu
  • A (Arc) - Vykreslí Eliptickou křivku
  • C (Curve) - Nakreslí obecnou křivku
  • S (Smooth curve) - Vyhlazená obecná křivka
  • Q (Quadratic Bézier) - kvadratická Bézierova křivka
  • T (Smooth quadratic Bézier) - Vyhlazená kvadratická Bézierova křivka
  • Z (Close) - Uzavření kresby
Příklady: 
přímka: "L 20,30"
trojúhelník: "M 50, 50 100, 50 100, 100 50, 50"
kruh: "M -1,0 A 1,1 0 1 1 1,0 M -1,0 A 1,1 0 1 0 1,0"

Pro složitější tvary je samozřejmě výhodnější použít místo ručního zápisu souřadnic některý z editorů podporujících SVG. Vhodnou volbou je například Inkscape. Inkscape (ke stažení na http://inkscape.org/) je volně dostupný vektorový grafický editor podobný programům jako jsou Adobe Illustrator, CorelDraw a podobně. Inkscape je založen na standardu SVG. Je tak ideálním nástrojem, který lze použít pro vytváření nových tvarů, objektů nebo cest pro animace pro FireMonkey.


V hlavní nabídce klikneme na volbu "Úpravy => Editor XML". Editor zobrazí vytvořenou grafiku jako XML dokument. V levé části okna rozbalíme strukturu dokumentu a označíme "svg:path". V pravém horním okně vybereme data ("d"). Pravé spodní okno nyní zobrazí "path data", která si zkopírujeme do schránky.




V Delphi si založíme nový projekt (File => New => FireMonkey Desktop Application) a na formulář umístíme komponentu "TPath". V inspektorovi objektů najdeme vlastnost "Data" a klikneme na tlačítko pro otevření dialogu pro vložení "PathData".




Do dialogu zkopírujeme "PathData" ze schránky. V pravé části okna se pro kontrolu okamžitě zobrazí náhled grafiky vytvořené na základě vložených dat.




Pokud jsme s výsledkem spokojeni, potvrdíme tlačítkem "OK". V inspektorovi objektů ještě můžeme změnit barvu výplně (parametr "Fill") na žlutou a je hotovo.



Stejným způsobem je možné vytvářet i cesty pro animace, které mohou být rovněž popsány za pomoci "PathData". Použití "svg" objektů je možné jak v HD tak 3D projektech.