Náhodné výkřiky 16

vložil Radek Červinka 10. listopadu 2011 01:21

Hlavně o FireMonkey, aktualizacích, Linuxu atd.

Na blogu embarcadero se objevila zprávička, že se očekávají aktualizace vždy ke konci měsíce (což zatím platí), a že každá sudá (tj. 2, 4, …) může měnit rozhraní u FireMonkey. A je pravdou, že FireMonkey ty aktualizace potřebuje. Přece jen v porovnání s VCL je to zatím slabší. Ale jak FireMonkey, tak frekvenci aktualizací považuji za velmi významný posun v historii Delphi a spol.

Když tak píšu o FireMonkey tak se v komentářích vyskytuje názor, proč to nepoužívá prvky z OS?

FireFlow

FireFlow demo z instalace Delphi

Na obrázku je demo z instalace, vybere se adresář a program načte obrázky a zobrazí je jako listovací seznam podobně jako na iPhone alba s CD. David I v Praze ukazoval variantu, kdy místo obrázku byl editační formulář - tj. co "složka" to jedna databázová věta (klasický FishFacts) a musím uznat, že to bylo velmi ale velmi impresivní. Stejně jako grid v 3D prostoru v jiném příkladu.

Ano chápu, že pro toho, kdo bouchá gridy v programu jak Baťa cvičky to až tak moc význam nemá, ale je to o fantazii a obávám se, že už v současnosti aplikace musí vypadat cool a co teprve za nedlouho?

Odbočka: Hezký příklad využití rotace je Anders Ohlsson - hodiny. Celé hodiny jsou obrázek, jen ručičky jsou normální čárky (nebo libovolné bitmapy) u kterých se čas transformuje na rotaci jen výpočtem - a to je vše. To byl jen příklad, který mne celkem překvapil, ale stačilo se zamyslet jiným způsobem než ve VCL. Škoda, že už nedělám žádný měřící soft - to bych tam všude narval budíky s ručičkami.

Schválně jsem zde minule vložil dvě videa pro inspiraci - osobně mi totiž dělá zatím problém přemýšlet jiným způsobem.

Proč tedy ne OS prvky? Ohlédnu-li od toho, že:

  • celá aplikace se dá libovolně transformovat (rozlišení a DPI!, orientace výška x šířka)
  • dají se aplikovat libovolně efekty (zvýraznění prvku nebo toho kde chci mít uživatelovu pozornost - třeba glow),
  • bude to všude vypadat a chovat se stejně bez ohledu na verzi OS a jeho chyby

to nemá žádný jiný důvod :-). Opravdu chápu custom draw podstatu firemonkey jako největší plus.

Ohledně Linuxu: když jsem psal svůj jediný velký program pro Linux tak jsem nejvíce nadával na roztříštěnost platformy. Zatímco na Windows je prvním programem každého programátora klon notepadu, na Linuxu je to buďto nějaký GUI toolkit popř. Window Manager. K tomu si stačí připomenout naprostou ignoranci ohledně kompatibility knihoven, kdy slavné DLL hell na Windows je proti tomu procházka májovým lesíkem po dešti a dostanete kombinaci, která je prakticky neotestovatelná. Což byl třeba i problém Kylixu - to se prostě nedalo udržovat. Mimochodem tehdy Danny Thorpe napsal, že tvořit Kylix bylo podobné jako zkusit udělat Boeing jen za pomocí kamenných mlatů (nebo tak něco).

Takže i já jsem tehdy vývoj ukončil ze stejného důvodu.

Ne já opravdu chci framework:

  • který se bude chovat predikovatelně na všech platformách a jen aplikací stylu se převlékne do skoro podobného vzhledu jako ostatní aplikace (navíc mohu nabídnout firemní barvy)
  • nebude záviset na "opravách" knihoven Linuxu
  • nebude sebou táhnou tuny závislostí

To že bude HW akcelerovaný je jen třešnička na dortu. Jinak ohledně Linuxu bude asi závislost na Pango pro vykreslování textu. Jinak výživná diskuze je u předchozího článku.

Jinak podle slov David I dostal Android prioritu před Linuxem. Co to znamená nevím - je třeba počkat na roadmap, která by měla být brzy.

Problémy FireMonkey

  • Není podpora TAction (respektive je plánována - ve zdrojácích je zapoznámkována)
  • Pomalost editačních prvků (zlepšilo se s update 2, ale pořád to není ono)
  • TImageList není - nahrazeno styly, ale myslím si, že by to usnadnilo portování
  • Problém v OSX pod VMWare (fix jsem ukazoval dříve, oprava by mohla být v SP3)
  • a další ne které jsem nanarazil

Něco odkazů

Obecný postup na zvýrazňování vybraného prvku za pomocí RTTI je na delphi.about.com - zvýrazňování vybraného prvku.

Na stránkách EMBT.cz je ke stažení prezentace od Davida I z Prahy. Celkem zajímavé.

DevArt.com má na svém blogu shrnutí novinek v XE2. Pěkné.

Tagy: , ,

Novinky

Komentáře

10.11.2011 8:53:13 #

Leoš

Díky za téma a stručně napíši svůj pohled, protože se od Radka malinko liší:
Otázkou je, co je to "cool" aplikace. Pokud mohu mluvit za naše zkušenosti, tak zákazníci uvítají dobré nápady, které jim zjednoduší práci (třeba nějaké rafinované přechody mezi daty či tak nějak). Rozhodně nebudou nijak unešeni nad rotujícím dialogem či zrcadleným textem. Rychlá, přehledná, snadno ovladatelná aplikace je to, co u nás znamená "cool". Taková aplikace jde napsat ve všem, od Foxpra, přes PC Fand, VCL, Javu k FireMonkey. Pokud má dnes FireMonkey problém s rychlostí, pak je to spíše o vyladění a možná také konkrétním hardware. Alespoň při testech WPF jsme jasně viděli, že starší méně výkonné počítače měly  problém. Tato prostředí (FM, WPF) používají akcelerovanou grafiku a několik let staré kancelářské počítače s tím jaksi nepočítali.
Co já vidím převratné na FM (z pohledu Delphi vývojáře), je snaha o multiplatformost. I když se mnou někteří možná nebudou souhlasit, tak já okolo sebe ten multiplatformní trend vidím. Manažer touží po úžasném tenkém MacBooku, protože je to "in" (následně do něj dá Windows, protože na tom nemá co provozovat). Ajťáci by zase rádi na různá méně exponovaná místa (sklady, výroba) dali linuxy, kde se snadněji nastaví práva a je to celé levnější. Obchodníci touží po moderních smartphonech, jenže rádi by v nich měli propojení na IS. A toto je dle mého hřiště, kde se může uplatnit FireMonkey a kde může mít  konkurenční výhodu proti srovnatelnému WPF, které Microsoft z politických důvodů drží na Windows. Plus samozřejmě aplikace, kde se ty všelijaké rotace a zrcadleni ocení - hry, marketingové, případně speciální aplikace.
Co se týká FM z pohledu tvůrce IS  tak je to prostě mladá platforma. Chybí vychytávky, které VCL ve formě knihoven třetích stran již má. A z těch zásadních věcí, přes které vlak nejede, je podpora tiskových sestav. Pokud je mi známo, tak žádné FastReporty ani RaveReporty pro FM nejsou. A dělat stovky sestav "ručně" bych teda nechtěl.
Určitě si ale myslím, že pokud EMBT udrží tah na branku a získá pro to podporu od hlavních "komponentových" hráčů, tak bude FM velmi zajímavé prostředí pro vývoj.
Závěrem k roztříštěnosti Linuxu: linux je jádro, kernel, zbytek si distribuce poskládá dle potřeby a tím může vzniknout problém. IMHO nejde podporovat "linux", linux je i v mém routeru co mi vrčí za zády a v té krabičce pod televizí - tam asi nikoho nenapadne cpát FM aplikace. Jde podporovat konkrétní distribuce a konkrétní okenní manažer. Pak bych problém neviděl.

Leoš

10.11.2011 9:21:27 #

JaroB

Měl bych jen malou poznámečku ke <b>zvýrazňování vybraného prvku</b>. Tohle byl kdysi požadalek uživatelů, a je to už více jak dvanáct let, aby se v případě většího množství editačních prvků pro vstup dat dal odlišit ten právě vybraný se kterým se pracuje. Implementoval jsem to do všemožných PubXXXEdit prvků (a nejen svých, ale i pro RXLibrary a VGLibrary a do některých prvečků třetích stran, které byly z uživatelského hlediska zajímavé). Teď mě to přijde jako nový hit...

JaroB

10.11.2011 10:16:05 #

Petr

S Linuxem je to jiné. Nemůžeš podporovat všechny distribuce. Vybereš si tu nejpopulárnější nebo několik nejpopulárnějších a ty podporuješ.Není možné to dělat jinak. Window manažery s tím nemají nic společného.
Nevím kterou větší app jsi pro Linux dělal. Když jsme spolu před několika lety mluvili na ICQ, dělal jsi Seksi commandera. Lazarus od tédoby urazil dost cesty a je mnohem použitelnější. Dělám v něm taky jednu app, nevím jestli se dá považovat za větší, má něco přes 60k řádek zdrojáku - http://www.cqrlog.com. Balíčky jsem udělal pouze pro Ubuntu/Debian. Zbytek nechám na někom jiném a na webu projektu dávám ke stažení komplet adresář s binárkou a věcmi okolo. Nemám sílu podporovat vše a ani to nejde.
V případě podnikové app bych udělal balíčky pouze pro Ubuntu/Debian, RHEL, SLED a ty bych podporoval. Předpokládám, že Win95, 98 a 2K už taky asi nebudeš podporovat.

S Kylixem byl jiný problém. Už v době vydání byl zastaralý. Používal knihovny QT2 a ještě bylo nutné distribuovat s programem tu jejich upravenou verzi. V té době se už běžně pracovalo s QT3. Kylix mi přišel spíše jako hurá akce. V Linuxu jde vývoj kupředu docela rychle a Borland tehdy asi neměl kapacity/chuť Kylix vyvíjet dále a dotáhnout do použitelného stavu.

Petr

10.11.2011 10:38:07 #

Radekc

Já mám právě taky rád jednoduché aplikace - ideálně pokud se jen někam nakopírují a nemají žádné závislosti. A to je právě podle mne šance pro FMX.

Ano - multiplatformnost je to další klíčové slovo.
Ano - FMX je mladá platforma, ale rychle se vyvíjí. A už nyní je využitelná pro určité typy aplikací.

>V případě podnikové app bych udělal balíčky pouze pro Ubuntu/Debian, RHEL, SLED
No a to je ono. Máš 3  distribuce a nejméně 2 poslední verze od každé. Navíc je tam problém QT a GTK, kdy každá verze má jinou (jinak nekompatibilní verzi). Prostě nemám zájem. Jestli ty ano tak s tím nemám problém :-).


Radekc

13.11.2011 18:02:59 #

Petr

No nastesti to resit nemusim. O zadnych problemech kolem kompatibility nevim. Moje app chodi od Ubuntu 10.04 nahoru. Asi by sly i nizsi verze, ale to neresim. Kdybych mel problemy takoveho razu jak popisujes, vykaslal bych se na to.

Petr

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců