Archiv pro štítek: programování

Dva tipy jak při vývoji pohodlně testovat emaily

EmailMožná to také znáte. Programujete webovou aplikaci a potřebujete otestovat širokou škálu emailových zpráv, které se odesílají po vykonání nejrůznějších akcí, a to z pohledu několika uživatelských rolí. Přináším proto dva užitečné tipy, jak uvedenou činnost co nejvíce zjednodušit. Díky nim se totiž vyhnete nutnosti vytvořit emailovou schránku ještě před odesláním dané zprávy.

Mailinator

První službu jsem již na tomto webu zmiňoval. Mailinator automaticky přivede k životu danou schránku a do ní zprávu doručí. S klidným svědomím jednoduše pošlete email na naprosto-cokoliv@mailinator.com, a poté ho zobrazíte na adrese naprosto-cokoliv.mailinator.com. Donedávna mi vadil ne příliš spolehlivý způsob zobrazování emailů v HTML. Mailinator však nedávno prošel faceliftem, který kromě obměny vzhledu přinesl ajaxové načítání obsahu schránky a hlavně podporu HTML zpráv. Vše funguje bez nutnosti předchozí registrace.

Gmail

K testovacím účelům lze překvapivě použít i Gmail, konkrétně jeden účet s jedinou emailovou adresou. Webová aplikace však u uživatelských účtů vyžaduje rozdílné emaily. Jak na to? Stačí používat tečky. Pokud se do webového rozhraní služby Gmail přihlašujete pomocí účtu jmeno.prijmeni@gmail.com, můžete jako svůj email uvádět jmenoprijmeni@gmail.com, j.m.e.n.o.p.r.i.j.m.e.n.i@gmail.com nebo jme.no.prij.meni@gmail.com. Nevěříte? Skutečně tak tomu je, a tvrdí to i Google, klidně si to vyzkoušejte. Nápověda uvádí tyto konkrétní tři případy, které mluví za vše:

    • homerjsimpson@gmail.com = hom.er.j.sim.ps.on@gmail.com
    • homerjsimpson@gmail.com = HOMERJSIMPSON@gmail.com
    • homerjsimpson@gmail.com = Homer.J.Simpson@gmail.com

Nevýhodou tohoto řešení je však nutnost pamatovat si rozmístění teček pro jednotlivé uživatelské účty. Pokud vsadíte na Mailinator, vyhnete se uvedenému problému díky adresám typu administrator@mailinator.com, zakaznik@mailinator.com nebo dodavatel@mailinator.com.

Úvodní poznatky z programování pro Android

Tvořit aplikace pro mobilní zařízení mě vždy lákalo, a proto když se tato příležitost objevila na obzoru, tak jsem ji samozřejmě využil. Na následujících řádcích popíši nejen skutečnosti, které mě během programování překvapily, ale také přinesu řadu tipů, jenž osobám se zájmem o vývoj pro Android patrně stejně jako v mém případě pomohou.

Vývojové prostředí

Prakticky standardizovanou volbu symbolizuje open source IDE Eclipse, jenž dokonce doporučuje i Google. Toto vývojové prostředí však samo o sobě pro tvorbu aplikací nepostačuje, potřebovat budete i SDK pro Android a speciální ADT Plugin. Potěšila mě bezproblémová instalace na operačním systému Linux. Problémy však začaly po rozšíření o Subclipse starající se o snadné použití SVN (systém pro verzování zdrojových kódů). Nalezení správného kompatibilního seskupení Javy a IDE se všemi pluginy mi nejednu hodinu zabralo. Jak jsem však později zjistil, tyto potíže trápilo již mnoho osob přede mnou. Narazil jsem dokonce i na stylový MEME komiks, jenž celou záležitost parodoval.

Zdroje informací v češtině

Mnoho užitečných postupů odkrývá v přehledném tutoriálu portál developer.android.com. Studování článků v angličtině se nebráním, myslel jsem však, že by moji cestu k první aplikaci mohlo výrazně usnadnit seznámení v češtině. Během probíhající akce, kdy se nakladatelství Computer Press potýkalo s inventurou a pozdrželo odesílání zásilek, jsem objednal knihu Android 2. K ní mám dohromady jen dvě výhrady. Za zbytečné považuji úvodní seznámení autora s kompilací v prostředí příkazového řádku. Jak jsem již zmínil, Eclipse představuje nepsanou normu. Druhá výtka směřuje k překladu, jenž však patrně většině vyhovuje. Cílené překládání všech výrazů mě několikrát spíše zmátlo, než aby pomohlo. V případě záměny activity za aktivita nejde o nic zásadního, u termínu záměr (původne intent) ve specifickém kontextu jsem se však zpočátku musel skutečně zamyslet, abych význam odstavce pochopil. Ve všech jiných ohledech však publikace přebírá formu spolehlivého průvodce.

Příchozí dotazy:

  • programujeme hry pro android 4 pdf

JSON – multiplatformní zápis dat

JSONBěhem prozkoumávání funkcí API od SEOmoz jsem se seznámil s výborným způsobem přenosu informací mezi dvěma subjekty. V mém případě šlo o skript schopný zpracovat výsledky na základě odpovědi, kterou získal od serveru. Řešení se označuje jako JSON, což znamená JavaScript Object Notation. Neznamená to však, že by údaje bylo možno zpracovat pouze s pomocí JavaScriptu, spíše je tomu naopak. Já jsem využil PHP, JSON však podporují i jiné jazyky. A čím vlastně popisovaný formát uchování dat vyniká? Jde o schopnost přenášet nejen řetězce, ale rovnou celé objekty či pole. Populární CSV se dle mého názoru na tento úkol příliš nehodí, jeho doménu symbolizují spíše údaje z databáze či tabulky. Výsledek po konverzi přitom získá formu běžného řetězce. Vypadat může například takto:

{"fmrp":3.31508823980473,"fmrr":8.71399339003802e-10,"pda":29.96283221096798,"ueid":42,"ufq":"szj.cz/","uid":120,"umrp":3.851694829321838,"umrr":3.447144837370461e-11,"upa":37.82389310886856,"upl":"szj.cz/","us":200,"ut":"szj.cz | internet, novinky, linux, programování","uu":"szj.cz/"}

Obrovskou výhodu přitom představuje možnost přečíst jednotlivé složky bez nutnosti jakékoliv předchozí programové úpravy. Stačí proto jediný pohled a ihned získáte ponětí o tom, s jakými informace máte tu čest.

Další JSON vlastnosti

Začal jsem se o celou problematiku blíže zajímat a záhy jsem zjistil, že při používání JSON se musí dbát pouze na jedinou věc. V samotném zápisu nenaleznete údaj nesoucí použité kódování. To znamená, že jej programátor musí jasně specifikovat. Pakliže tak učiněno není, s největší pravděpodobností půjde o UTF-8. Toto kódování se totiž považuje za výchozí.

Zpracování v PHP

Když jsem již otázku převodu dat zpět do použitelné podoby musel vyřešit, určitě nezaškodí, když předvedu mnou aplikovaný postup v případě PHP. Nejde přitom o nic složitého, stačí použít vhodnou funkci. Ta se jmenuje json_decode a jako první parametr očekává vstupní data. Ovlivnit rovněž lze, zda jako výstup dostaneme objekt nebo asociativní pole. Rozhodl jsem se pro druhou variantu, a proto na místě druhého parametru vidíte true.

echo var_dump(json_decode($json, true));
array(13) {
  ["fmrp"]=>
  float(3.3150882398047)
  ["fmrr"]=>
  float(8.713993390038E-10)
  ["pda"]=>
  float(29.962832210968)
  ["ueid"]=>
  int(42)
  ["ufq"]=>
  string(7) "szj.cz/"
  ["uid"]=>
  int(120)
  ["umrp"]=>
  float(3.8516948293218)
  ["umrr"]=>
  float(3.4471448373705E-11)
  ["upa"]=>
  float(37.823893108869)
  ["upl"]=>
  string(7) "szj.cz/"
  ["us"]=>
  int(200)
  ["ut"]=>
  string(49) "szj.cz | internet, novinky, linux, programování"
  ["uu"]=>
  string(7) "szj.cz/"
}

K samotným údajům se poté pohodlně dostaneme přes patřičný index.

$pole = json_decode($json, true);
echo $pole["fmrp"];
//Výpis
3.31508823980473