Kdybych o programování pro Android nic nevěděl, tak bych si po přečtení článku myslel, že pro Android se GUI MUSÍ programovat v xml. Abych pravdu řekl, po zběžném a lehce nepozorném přečtení částí originální dokumentace (kde se to xml maximálně a až přehnaně propaguje) může mít čtenář tentýž (mylný) dojem. Ale je to samozřejmě nesmysl, GUI jde i na Androidu dělat normálně v kódu, jakkoli je v normálních případech to xml doporučované. Autor by to měl v článku jasně říci, takhle to dost mate. Programátor pro Android musí umět oba dva styly, to, co jde, je jednodušší udělat v xml, ale třeba nějaké dostatečně dynamické GUI, např. pokud programuje vlastní www prohlížeč a jeho zobrazování webových formulářů, ve statickém xml samozřejmě neudělá.
To mas jak C# a WPF formulare. To take vypada, ze se to musi delat v XML i kdyz to lze i kodem.
Autor ma pravdu, ze zaklad je toto. A perlicky jako www prohlizec atd. se pak douci pozdej. Navyk by mel ziskat prevazne tim zakladem.
Vse je to o tom, ze XML je nove styl a pokud zacinam naucim se to moderni a kaslu na to, ze lide jako vy nebo ja co uz umi stare budou tvrdit, ze bez toho to nelze, to bysme byli jinak jeste u Assembleru...
Tak to víte že to GUI jde udělat i programově, však to xml musí "něco" vzít, rozparsovat ho a "nějakými funkcemi" nakreslit. Takže když toto umí to "něco", tak musí být možnost tyto "nějaké funkce" volat ve vlastním kódu :-)
Ale jinak to slavné xml je jediná věc, která mi trošku vadí a (zatím) mi brání si alespoň trošku něco naprgat pro Androida (jen tak pro radost a pro pokus), a dále dokumentace k SDK API taky není nijak slavná, co je mi platné, když u metody xxx třídy aaa napíšou, že dělá zzz, ale neškodily by tam mít nějaký alespoň základní příklad (pár jich sice je, ale nepokrývají vše).
Dle mého názoru se XML daleko lépe čte, a když si UI rozdělíte ještě na samostatné bloky, které pak poskládáte přes include a používáte styly, tak je rozhodně pohodlnější takové UI udržovat.
Když chci custom kontrolku, udělám si stejně layout v XML, a pak to kódem jenom oživím, aby měla to správné chování.
Pak se to dá opět vložit do XML layoutu a funguje to opravdu dobře a přehledně:
<com.mypackage.MyCustomControl android:id=...
...
/>
Samozřejmě můžu nějaké věci generovat dynamicky, ale i tam si můžu například položku inflatnout z XML, naplnit daty a přidat kódem do UI.
Lahkost citania XML vs kod je vzdy len o tom ako je to napisane. Ked dostanete na refactoring kod po nejakom prasati, tak vam nepomoze nic. A verte, ze som videl xml pre android, ktore bolo takze, ze v prvom momentne ma to rozlutostilo tak, ze sa mi slzy nahrnuli do oci :) ... na druhej strane videl som zrovna tak pekne napisane UI v kode ...
Díky za článek, informací o programování Androidu není nikdy dost. Taky myslím, že by bylo dobré zmínit, že UI se dá tvořit i pomocí Java kódu, protože to je vlastně přesně co Inflater dělá s tou XML definicí.
Ale chtěl bych zmínit - snad to nebude vnímano jako přílišná reklama, i když to vlastě reklama je - že existuje ještě třetí cesta, tj. psát deklarativně v Javě a UI tvořit během runtime pomocí reflection. Koho by toto zajímalo, může si zkusit najít můj framework ObjectForms (když už tu nesmí být odkazy, i když doufám, že tohle je opravdu spíš k tématu, tak věřím, že to nebude vnímane negativně).