Tvorba mobilní Android aplikace v jazyce C#
| Stránky: | Moodle ZČU |
| Kurz: | 2CZV031 - Bádáme v kroužku informatiky na SŠ |
| Kniha: | Tvorba mobilní Android aplikace v jazyce C# |
| Vytiskl(a): | Nepřihlášený host |
| Datum: | úterý, 6. října 2026, 11.58 |
Popis
Tvorba mobilní aplikace v jazyce C#
Obsah
- 1. Základní informace o projektu
- 2. Motivační rámec projektu
- 3. Poznámky k využití přístrojů
- 4. Použité technologie
- 5. Jak dostat C# na Android
- 6. Instalace a nastavení vývojářských nástrojů dot42
- 7. Ahoj Světe! - naše první C# aplikace na Androidu
- 8. C# aplikace pro Android s grafickými interaktivními prvky
- 9. C# aplikace pro Android a práce s animacemi
- 10. Závěrečné poznámky a zdroje
1. Základní informace o projektu
Název: Tvorba mobilní Android aplikace v jazyce C#
Anotace programu/zaměření/hlavní cíl: Cílem projektu je zvládnout postup při tvorbě mobilní Android aplikace využívající programovací jazyk C#.
Cílová skupina: žáci 2. až 4. ročníků středních škol a odpovídajících ročníků gymnázií
Organizační podmínky
Samostatná práce studentů. (1 student na 1 počítač/tablet)
Pomůcky
Počítač, sada vývojářských nástrojů pro C# a Android, tablet (případně chytrý telefon nebo emulátor Androidu)
Časová náročnost
(max. 2×45 minut)
Vazba na RVP
RVP pro Gymnázia: Vzdělávací oblast Informatika a informační a komunikační technologie
RVP pro SŠ obory L0 a M(obor 18-20-M/01 Informační technologie): Vzdělávací oblast Vzdělávání v informačních a komunikačních technologiích
Mezipředmětové vazby
V závislosti na jednotlivých aktivitách
Fáze projektu
Seznámení se s technologiemi .NET a Android
Volba mezi možnostmi integrace C# aplikací v operačním systému Android
Instalace vývojářských nástrojů pro integraci jazyka C#
Tvorba C# aplikací, jejich následný export do zařízení s OS Android
Prezentace vlastních aplikací
Hodnocení
2. Motivační rámec projektu
Proč C# na Androidu?
Umíte programovat na platformě .NET a zoufáte si, že si na svůj nový tablet nebo chytrý telefon nemůžete naprogramovat žádnou aplikaci, protože běží na Androidu? Chcete se jako programátor prosadit na trhu s mobilními aplikacemi, ale nechcete se učit Javu nebo jiný nový jazyk, abyste toho docílili? Nechce se vám moc platit za drahé mobilní aplikace, které byste si pro vlastní potřebu udělali sami a lépe? Myslíte, že je to nemožné? Nezoufejte. Jde to! Stačí chvilku studovat a za pár hodin budete schopni tvořit svoje vlastní aplikace pro Android psané v C#.

Naučná videa s tematikou C# na Androidu:
Zajímavé stránky a jiné studijní materiály:
Mono for Android - Create amazing Android apps with C# and .NET (e-kniha)
3. Poznámky k využití přístrojů
Co budeme potřebovat?
K tomu, abychom mohli úspěšně vyvíjet aplikace pro Android psané v C#, budeme potřebovat několik věcí: Osobní počítač nebo notebook, tablet nebo chytrý telefon, vývojářské nástroje a případně také emulátor operačního systému Android.
PC

Jakýkoliv počítač nebo notebook současné generace, na který se nainstalují vývojářské nástroje (a případně emulátor) a na který se případně připojí tablet nebo chytrý telefon. Nutný je operační systém Windows a nainstalovaná nejnovější platforma .NET
Tablet

Tablet nebo chytrý telefon s operačním systémem Android (je jedno, jakou má verzi jádra OS). Tento tablet může být připojen k počítači během vývoje a programátor si na něm může rovnou zkoušet ladit dotyčnou aplikaci. V případě, že tablet nemáme k dispozici, je třeba na PC nainstalovat emulátor operačního systému Android a testovat to na něm.
Vývojářské nástroje

![]()
V aktivitě Jak dostat C# na Android se dozvíme všechny možné způsoby, jak implementovat jazyk C# na operační systém Android. Podle toho, jakou možnost zvolíme, je třeba stáhnout a nainstalovat vývojářské nástroje nebo aplikace, které nám to umožní. Zde jsou odkazy na dvě nejpravděpodobnější volby, a to jsou dot42 a Xamarin.
Emulátor

V případě, že nevlastníme nebo po dobu vývoje nemáme k dispozici tablet nebo chytrý telefon s operačním systémem Android, je třeba si na PC nainstalovat jeho emulátor. Těch existuje celá řada a dokáží zastoupit fyzické zařízení ve všech směrech. Dokonce mají tu výhodu že většinou podporují speciální funkce pro vývojáře, které "ostrá" verze nemá. Zde je odkaz k jednomu z nejznámějších, který se dá pořídit zadarmo, a to je BlueStacks.
4. Použité technologie
|
Téma |
Použité technologie |
|
|
Tematický celek |
Tvorba mobilní Android aplikace v jazyce C# |
|
|
Motivační rámec |
Abychom se mohli pustit do praktické části vývoje aplikací pro Android v C#, musíme nejprve získat základní fakta o těchto technologiích a pochopit, proč původně nejsou kompatibilní. |
|
|
Počet žáků |
15 |
|
|
Věk žáků |
16-18 |
|
|
Pomůcky |
PC a internet |
|
|
Stručný popis aktivity s využitím přístroje |
Studenti s využitím PC a internetu nastudují fundamentální základy technologií Android a .NET. |
|
|
Vhodné místo |
Běžná počítačová učebna s přístupem k internetu. |
|
|
Cíle aktivity |
Žáci budou schopni pochopit a vysvětlit základní vlastnosti technologií Android a .NET. |
|
|
Rozvíjené kompetence |
Kompetence k učení |
|
|
Předchozí znalosti |
Práce s počítačem, vyhledávání na internetu. |
|
|
Časový plán |
Fáze činnosti s přístrojem |
Metody a formy, motivace |
|
45 minut |
Studium problematiky Android a .NET |
Samostatná práce, samostudium a následná diskuse vázaná na studovanou oblast |
|
Hodnocení |
Hodnocení proběhne až po praktické části. |
|
|
Návaznosti |
Aktivita Jak dostat C# na Android |
|
Zadání:
1. Nastudujte základní informace o technologiích Android a .NET.
2. Pokuste se zdůvodnit, proč aplikace na platformě .NET nejsou pro Android v základu vhodné.
Teorie:
V této kapitole jsou klíčové dva základní kameny potřebné pro implementaci aplikace v jazyce C# na OS Android. Prvním je samotný OS Android a druhým je platforma .NET.
.NET
.NET je skupina technologií vyvinutých společností Microsoft, které dohromady tvoří celou platformu. Tato skupina technologií je open source (open source – otevřený zdrojový kód, který lze prohlížet či upravovat) a je určena pro výrobu nových aplikací pro operační systém Windows. Skládá se ze dvou hlavní částí, a to FCL (Framework Class Library) a CLR (Common Language Library), které dohromady tvoří rozhraní .NET Framework. FCL je knihovna tříd, která poskytuje jazykovou interoperabilitu, jinak řečeno tento kód lze použít v jiných jazycích. CLR je virtuální stroj, který poskytuje služby jako např. bezpečnost, správu paměti či zpracování výjimek. Platforma je dále poskytována v dalších dvou verzích, a to pro mobilní telefony a zařízení s omezenými zdroji. Mobilní verze (.NET Compact Framework) je k dispozici na chytrých telefonech nebo mobilních telefonech se systémem Windows Mobile. Pro platformu jsou využívána hlavně vývojová prostředí Visual Studio(placené) či SharpDevelop(freeware licence).
Historie
Vývoj platformy .NET započal rokem 1990 pod názvem Windows Services, do roku 2000 byla vyvinuta první beta verze .NET verze 1.0. První plná verze byla vydána začátkem roku 2002 s vývojovým nástrojem Visual Studio. Od verze 3.0 (od roku 2006) je .NET Framework součástí systémů Windows, avšak do verze s Microsoft Windows XP nebyl zahrnut.
- .NET Framework 1.0 – vydána 13. února 2002, podpora skončila 14. července 2009, uvedena v systémech Windows 98, ME, NT 4.0, 2000 a XP
- .NET Framework 1.1 – vydána 3. dubna 2003, součástí vydání Visual Studio, první verze, která byla zahrnuta do systému (Windows Server 2003), podpora skončila 8.října 2013, poslední podpora Windows NT 4.0
- .NET Framework 2.0 – vydána 22. ledna 2006, vydáno spolu s Visual Studio 2005 a Microsoft SQL Server 2005, podpora 64-bitových operačních systémů, poslední podpora Windows 98 a Windows ME
- .NET Framework 3.0 – vydána 21. listopadu 2006, dodávána se systémem Windows Vista a Windows Server 2008 jako volitelná součást, podpora 3D grafiky a Direct3D technologií
- .NET Framework 3.5 – vydána stejně jako .NET Framework 3.0, podpora Windows Mobile a Windows CE
- .NET Framework Service Pack 1 – lepší výkon za určitých podmínek, vydána 11. srpna 2008, dodávána s Windows 7 a Windows Server 2008 jako volitelná část
- .NET Framework 3.5 SP1 Client Profile – instalace pouze komponent, které jsou nejdůležitější pro desktopové aplikace
- .NET Framework 4 – vydána 12. dubna 2010 ve verzi s Visual Studiem 2010, cílem byla podpora vícejádrových procesorů, finální verze 4.0.3 vydána 4. března 2012
- .NET Framework 4.5 – vydána 15. srpna 2012, vylepšené funkce, podpora pouze pro Windows Vista
- .NET API – podpora pro aplikace METRO (grafické rozhraní Windows 8), podpora rozhraní .NET Framework, C++, HTML 5, JavaScript, finální verze 4.5.2 podpora Windows 8.1
Architektura
1. CLI (Common Language Infrastructure) - účelem je poskytnout neutrální jazykovou platformu pro vývoj a spuštění aplikací, jinak řečeno nebude vázána na jeden jazyk, ale bude k dispozici v rámci několika jazyků podporovaného rámce
2. CIL (Common Intermediate Language) - kód, jenž je umístěn v CLI sestavách, skládá se z jednoho nebo více souborů, obsahuje manifest, který má data pro výrobu, obsahuje název sestavy, textové jméno, číslo verze a veřejný klíč
3. Bezpečnost - .NET má svůj vlastní bezpečností mechanismus, který má dvě části: zabezpečení přístupu ke kódu(CAS), validaci a verifikaci
4. Knihovna tříd - .NET obsahuje standardní sadu knihoven: knihovny FCL a základní sadu knihoven (BCL), FCL zahrnuje podmnožinu celé knihovny tříd, které slouží jako základní API z CLR, např. třídy system.dll a system.core.dll jsou součástí FCL, BCL je podmnožinou FCL a vztahuje se na celou třídu knihoven dodávaných s .NET Framework, obsahuje sadu včetně Windows Forms, ADO.NET, ASP.NET, LINQ, Windows Presentation Foundation a Windows Communication Foundation
5. Správa paměti - osvobozuje vývojáře od řízení paměti (přidělování a uvolňování), .NET obsahuje tzv. Garbage collector, který běží na samostatném vlákně, který vyčte všechny nepoužitelné objekty a kultivuje k nim přidělené.
Jazyk C#
Jazyk C Sharp (vyslovuje se "sí šarp") je objektově orientovaný programovací jazyk vyvinutý společností Microsoft jako součást platformy .NET. Díky tomu je jedním z programovacích jazyků navržených přímo pro CLI (Common Language Infrastructure). Nedlouho po jeho vzniku byl standardizován organizacemi Ecma (ECMA-334) a ISO (ISO/IEC 23270:2006). Při jeho tvorbě bylo dodržováno několik specifických pravidel, která ho nadále charakterizují:
- Jazyk C# je zamýšlen jako jednoduchý, moderní, obecně zaměřený, objektově orientovaný programovací jazyk.
- Jazyk a jeho implementace by měly zajistit podporu pro moderní principy softwarového inženýrství, jako jsou silné kontroly datových typů, kontrola hranic polí, detekce použití neinicializovaných proměnných a samočinné uvolňování paměti (Garbage collection). Softwarová robustnost, odolnost a programátorská produktivita jsou také důležité.
- Jazyk je zamýšlen pro vývoj softwarových komponent vhodných pro nasazení v distribuovaných systémech.
- Portabilita zdrojového kódu je velmi důležitá, stejně jako portabilita (přechod z jazyka na jazyk) programátorů, zvláště těch, kteří již znají jazyky C a C++.
- Podpora jazykových mutací softwaru je velmi důležitá.
- C# je zamýšlen jako vhodný jak pro hlavní i vnořené systémy, které jdou od velmi obsáhlých aplikací využívajících sofistikovaných operačních systémů až po malé jednoúčelové aplikace se specifickými funkcemi.
- Ačkoliv je jazyk C# zamýšlen jako velmi ekonomický s ohledem na využívání paměti a procesorového času, není zamýšlen jako přímá konkurence vzhledem k výkonu aplikací psaných v jazyce C a C++.
Operační systém Android
Android je mobilní operační systém vyvinutý společností Google, který je založen na linuxovém jádře. Primárně je určen pro zařízení s dotykovou obrazovkou (smartphony, tablety, hodinky, chytré televizory atd.). Android je nepoužívanější mobilní OS od roku 2013. Aplikace pro tento operační systém lze stahovat pomocí obchodu/úložiště Google Play. Zdrojový kód Androidu je volně dostupný pod open source licencí.
Historie
Android byl založen v říjnu roku 2003 v Kalifornii, zakladateli jsou Andy Rubin, Rich Miner, Nick Sears a Chris White. Prvotním záměrem bylo rozšířit konkurenci pro operační systémy Symbian (Nokia) a Windows Mobile (Microsoft). Google získal Android roku 2005 a následně vytvořil tým okolo Rubina za účelem výroby mobilní platformy vytvořené na linuxovém jádře. Spekulace o tom, kdy má Google vstoupit na trh, se objevily roku 2006. Prototyp pod krycím názvem „Sooner“ měl podobnost se zařízeními Blackberry, bez dotykového displeje. Později byl inovován, aby konkuroval firmám LG a Apple. Koncem roku 2007 bylo vytvořeno sdružení několika firem (HTC, Sony, Samsung, Google, T-Mobile atd.), které představilo cíl o otevřených standardech na mobilních zařízeních. Tentýž den byl představen první smartphone postavený na jádře Linuxu ve verzi 2.6.25. První komerčně dostupný telefon byl HTC Dream roku 2008. Od roku 2008 Android vydal řadu aktualizací, které postupně zlepšovaly OS, nejnovější verze Android v současné době (konec roku 2014) je verze Android 5.0, též nazýván „Lollipop“. V roce 2010 Google spustil výrobu přístrojů Nexus, což je řada smartphonů a tabletů se systémem Android.
Vlastnosti
Hlavní vlastností Androidu je to, že je založen na přímé manipulaci pomocí dotykových vstupů, které následně odpovídají reálným akcím. Reakce na vstup je navržena tak, aby pomocí dotykového rozhraní a vibračního rozhraní poskytla hmatovou zpětnou vazbu uživateli. Zařízení jsou vybavena několika senzory, akcelerometry, gyroskopy a jinými čidly. Hlavní obrazovka, též nazývána jako domovská, se vyznačuje ikonami aplikací a widgety (aplikace spuštěná na hlavní obrazovce), můžeme rolovat mezi několika dalšími obrazovkami, které si uživatel může nastavit. Většina zařízení běžících na OS Android se vyznačuje hlavními rysy, kterými jsou spodní lišta se 3 tlačítky pro návrat na hlavní obrazovku, zpětné tlačítko a tlačítko se spuštěnými aplikacemi, které jsou na pozadí. V zařízení jsou umístěny diody (podle typu výrobce), které uživatele upozorňují na zmeškané události jako např. příchozí SMS, volání, vybití nebo nabíjení baterie.
Aplikace a jejich vývoj
Aplikace, které rozšiřují funkčnost zařízení na OS Android, jsou psány především v programovacím jazyce Java pomocí nástroje pro vývoj softwaru pro Android (SDK). SDK obsahuje několik vývojových nástrojů včetně debuggeru, softwarové knihovny, emulátoru založeného na QEMU, dokumentace, ukázkových kódů a návodů. Oficiálně podporované vývojové prostředí je Eclipse pomocí ADT pluginů (Android Development Tools). Další vývojové nástroje jsou např. Google App Inventor či různé multiplatformní mobilní webové aplikace. Primárním úložištěm aplikací je již zmíněný Google Play.
Bezpečnost
Tento OS má několik druhů zabezpečení, ať už se jedná o uzamykaní obrazovky či SIM karty, nebo samotného telefonu pomocí softwaru. V nynější době jsou vyvíjeny aplikace zaměřené na vyhledání ztraceného telefonu pomocí lokace GPS. Podle kritiků chybí v Androidu podpora šifrování či podpora ochrany proti malwaru. Android běží v tzv. izolovaném prostředí, kde uživatel nemá přístup k souborovým systémům. Před instalací samotného softwaru (appky) přes Google Play zobrazí všechna potřebná oprávnění k instalaci. Nejčastější formou zneužívání OS jsou pak textové zprávy, kde jsou SMS odesílány na tzv. prémiová čísla bez souhlasu či oprávnění uživatele.
5. Jak dostat C# na Android
|
Téma |
Jak dostat C# na Android |
|
|
Tematický celek |
Tvorba mobilní Android aplikace v jayzce C# |
|
|
Motivační rámec |
Když už víme, že technologie .NET a OS Android pro sebe nikdy nebyly určeny, chápeme, že implementace jazyka C# v OS Android může být problém, je tedy třeba nastudovat způsoby, pomocí kterých se nám to může podařit. |
|
|
Počet žáků |
15 |
|
|
Věk žáků |
16-18 |
|
|
Pomůcky |
PC a internet |
|
|
Stručný popis aktivity s využitím přístroje |
Studenti s využitím PC a internetu nastudují možnosti implementace C# aplikace na OS Android. |
|
|
Vhodné místo |
Běžná počítačová učebna s přístupem k internetu. |
|
|
Cíle aktivity |
Studenti budou schopni vybrat způsob implementace C# aplikace na OS Android. |
|
|
Rozvíjené kompetence |
Kompetence k učení |
|
|
Předchozí znalosti |
Aktivita navazuje na aktivitu Použité technologie |
|
|
Časový plán |
Fáze činnosti s přístrojem |
Metody a formy, motivace |
|
45 minut |
Studium technologií umožňujících implementaci aplikace psané v jazyce C# na OS Android. |
Samostatná práce nebo práce ve skupině s diskusí |
|
Hodnocení |
Hodnocení proběhne až po praktické části. |
|
|
Návaznosti |
Aktivita Instalace a nastavení vývojářských nástrojů dot42 |
|
Zadání:
1. Nastudujte možnosti implementace C# aplikace na OS Android.
2. Proberte klady a zápory jednotlivých možností a jednu zvolte.
Teorie:
Vs 
Jak už předchozí kapitola napovídá, drtivá většina vývojářů pro OS Android používá pro své aplikace programovací jazyk Java. Nicméně i vývojáři znalí pouze platformy .NET mají šanci vyvíjet plnohodnotné aplikace na Android. Než však učiní první krok, je třeba zvolit metodu, pomocí níž k tomuto problému budou přistupovat. Volby jsou totiž víceméně dvě a každá z nich, jak to bývá, skýtá některá svoje úskalí. V této části nebudeme technologie představovat zvlášť, ale aby si začínající programátor mohl lépe srovnat sám, co si od své budoucí kariéry v této oblasti představuje, postavíme tyto technologie proti sobě v několika klíčových oblastech. Jelikož programátoři se někdy od sebe značně liší a každý má jiné zkušenosti a priority, je docela možné, že volba bude pro každého jiná.
Nástroje Vs Platforma
Jak vidíme na následujících ukázkách kódu, obě dvě "technologie" užívají jazyk C# přímo v aplikacích pro OS Android:
dot42: Xamarin:


Každá z těchto technologií však přistupuje k řešení problému jinak a díky tomu vznikají někdy až diametrální odlišnosti, které mají vliv nejen na programátora a proces programování, tak i na samotnou výslednou aplikaci. Zatímco dot42 je spíše sada vývojářských nástrojů umožňující kompilaci C# kódu do zdrojového kódu OS Andorid (DEX), firma Xamarin dodává celou masivní platformu pro vývoj mobilních aplikací, a to nejen na OS Android, ale společně také na iOS. To má některé dalekosáhlé dopady, které rozebereme dále.
Velikost výsledné aplikace
Díky tomu, co bylo naznačeno výše, se výsledné aplikace liší hlavně z hlediska velikosti. V tomto ohledu má nevýhodu platforma Xamarinu. Aplikace Xamarinu mají v sobě zabudovaný takzvaný "overhead", což je část kódu, která zajišťuje, aby samotná aplikace na zařízení mohla vůbec běžet (aby jí zařízení rozumělo a bylo schopné ji spustit tak, jak je napsaná a zkompilovaná). Podobný overhead mají i flashové aplikace napsané pomocí Adobe AIR, který se tomu však může vyhnout v případě, že si adobe AIR uživatel na zařízení nainstaluje samostatně. U Xamarinu z toho pak vyplývá to, že jeho aplikace jsou v průměru o několik megabajtů větší než aplikace nativní nebo psané v dot42. To se zdá jako vcelku málo, ale tento objem dat roste, čím víc aplikace používá API funkcí. To ve výsledku způsobuje delší stahování aplikací a vetší místo nutné k jejich skladování na zařízení.
Vývojové prostředí
Aplikace pro vývoj samotných mobilních aplikací nebo i obecně aplikací nemobilních se nazývá vývojové prostředí. Ve většině případů je zaměřeno na jeden programovací jazyk, ovšem existují i taková prostředí, které lze pomocí pluginů "zaměřit"na více jazyků. Když prozkoumáme programátorskou komunitu, věnující se jazyku C#, zjistíme, že v tomto ohledu převládají dvě aplikace. Volně šiřitelné prostředí SharpDevelop a komerční Visual Studio přímo od Microsoftu. Prostředí SharpDevelop je ve srovnání s Visual Studiem o dost jednodušší a má mnohem méně funkcí, proto ho často používají školy a programátoři začátečníci, aby se dostali do problematiky programování v .NET. Když však programátor chce pracovat komerčně nebo je součástí nějaké firmy, v drtivé většině případů sáhne sice na relativně drahé, ale velmi kvalitně zpracované Visual Studio. Většina programátorské komunity se pak obecně shodne na tom, že Visual Studio je jedním z nejlepších programátorských nástrojů vůbec.
Pokud se v tomto ohledu podíváme na naše dvě volby, vznikne nám jakási remíza. Obě dvě řešení podporují Visual Studio, i když Xamarin ho podporuje pouze v jedné ze svých cenově dražších variant. Dot42 navíc podporuje i SharpDevelop, což je u něj velké plus z pohledu programátorů, kteří s dot42 chtějí pracovat nezávisle a zadarmo. Xamarin však tuto nevýhodu kontruje dostupností svého vlastního vývojového prostředí Xamarin Studio, které je poskytováno ve všech jeho verzích. Toto prostředí je nejen kvalitní, ale je navíc uzpůsobeno přímo vývoji mobilních aplikací v Xamarinu, a proto poskytuje velmi dobré funkce a ergonomii. Nevýhodou je však fakt, že se programátor musí učit pracovat s vývojovým prostředím, se kterým předtím nebyl seznámen.
Grafické rozhraní aplikací
Uživatelský interface (UI) pro Android je u obou řešení prakticky identický. Porovnávat tedy grafiku u obou řešení na Androidu nemá moc smysl. Je však nutno podotknout, že Xamarin jako platforma je univerzálně použitelný nejen pro Android. Tím, že Xamarin nabízí celou platformu, umožňuje implementaci na většinu mobilních operačních systému. Xamarin tedy mimo Android podporuje také iOS a Windows Mobile. To mu v tomto ohledu dává náskok před dot42, protože je pak možné výslednou aplikaci šířit na více druhů zařízení. Co je však v tomto směru nevýhodou, je fakt, že UI na rozdílných zařízeních využívají jiné funkce a API, a proto je nutné aplikaci "přeprogramovat" z hlediska vzhledu pro každý druh zařízení, i když jádro zůstává stejné.
Cena
Důležitým faktorem při výběru našeho řešení pro implementaci C# aplikací na Android je zcela nepochybně také cena. Každá firma přistupuje k ceně poněkud jinak. Nástroje dot42 mají dvě možnosti platby za jejich používání. První z nich je zdarma a je to takzvaná veřejná (community) licence. To znamená, že je možné používat nástroje zadarmo v plné jejich podobě. Je možné aplikace nahrávat do obchodů (Google Play), aby si je mohli uživatelé stahovat, avšak takto vystavené aplikace musí být dostupné zdarma. Pokud vývojáři chtějí na aplikacích začít vydělávat, musí si koupit jednorázovou profesionální licenci, která vyjde na 300 amerických dolarů.
V případě Xamarinu je také dostupná zdarma takzvaná zkušební verze. Tato verze je však značně osekaná. Dovoluje sice nahrávat aplikace do obchodů, ale postrádá značné množství podpory a funkcionality a navíc je velikost výsledné aplikace značně omezena a nutí tak vývojáře, kteří to v tomto směru myslí vážně, koupit si jednu z placených licencí. Placené verze jsou momentálně tři a každá obsahuje o něco více funkcionality a podpory ze strany Xamarinu. Ceny jsou účtovány měsíčně nebo ročně a pohybují se od 25 dolarů za měsíc až po 158 dolarů za měsíc. Aktuální ceník spolu s dostupnou funkcionalitou je možné prohlédnout zde: https://store.xamarin.com/
Závěrečné srovnání
Pokud tedy chceme tyto naše dvě možnosti srovnávat, musíme si nejprve uvědomit, čeho chceme naším vstupem do oblasti mobilních aplikací dosáhnout. Pokud chceme vyrábět menší, levnější aplikace pouze pro OS Android, pak se zdají jasnou volbou nástroje dot42. Pokud však chceme masivní multifunkční aplikace, které budeme chtít šířit na všechny mobilní platformy a zaměříme na to celý náš podnikatelský záměr a celou naši firmu, pak se zdá platforma Xamarin jako lepší odpověď.
Dále se v tomto kurzu budeme zaměřovat již pouze na nástroje dot42, a to z toho prostého důvodu, že je kurz určen převážně pro školy, které většinou nemají peníze na to, aby platily každý měsíc drahé licence jen proto, aby seznámily svoje žáky s možnostmi programování Android aplikací v C#.
6. Instalace a nastavení vývojářských nástrojů dot42
|
Téma |
Instalace a nastavení vývojářských nástrojů dot42 |
|
|
Tematický celek |
Tvorba mobilní Android aplikace v jayzce C# |
|
|
Motivační rámec |
Dříve než začneme vyvíjet samotné aplikace, je nutné nainstalovat a nastavit vývojářské nástroje, které k tomu účelu budeme používat. |
|
|
Počet žáků |
15 |
|
|
Věk žáků |
16-18 |
|
|
Pomůcky |
PC a vývojářský balíček dot42 |
|
|
Stručný popis aktivity s využitím přístroje |
Studenti na dostupné PC s OS Windows nainstalují a nastaví vývojářské nástroje v balíčku dot42. |
|
|
Vhodné místo |
Běžná počítačová učebna vybavená operačním systémem Windows. |
|
|
Cíle aktivity |
Studenti budou schopni nainstalovat a nastavit vývojářský balíček dot42. |
|
|
Rozvíjené kompetence |
Kompetence k učení, k řešení problémů |
|
|
Předchozí znalosti |
Práce s PC, instalace software |
|
|
Časový plán |
Fáze činnosti s přístrojem |
Metody a formy, motivace |
|
15 minut |
Zdůvodnění volby vývojářského nástroje dot42 |
Skupinová diskuse a dialog |
|
30 minut |
Instalace vývojářského nástroje dot42 |
Samostatná práce nebo skupinová práce; skupinová diskuse a dialog |
|
Hodnocení |
Bez hodnocení. Studenti budou hodnoceni až po tvorbě vlastních aplikací. |
|
|
Návaznosti |
Na tuto aktivitu navazuje tvorba první aplikace v C# pro Android "Ahoj světe" |
|
Zadání:
1. Zaregistrujte se a stáhněte si instalační balíček nástrojů dot48.
2. Nainstalujte si a aktivujte nástroje dot48 pro soukromou potřebu.
3. Vyzkoušejte spustit vývojové prostředí SharpDevelop 4.5 nainstalované s balíčkem dot48.
Postup:
V první fázi je třeba jít na stránku projektu dot48 a zaregistrovat se proto, abychom byly schopni stáhnout jejich instalační balíček. Na adrese https://www.dot42.com/ zvolíme snadno viditelné tlačítko DOWNLOAD, které nás přenese do sekce určené ke stahování balíčku, která vypadá takto:

Zde je potřeba vyplnit vaše jméno a e-mailovou adresu. Dejte si pozor, abyste vyplnili adresu správně a k e-mailovému účtu měli přístup. Na tuto adresu vám totiž bude doručen aktivační klíč celého produktu. Dále je třeba zaškrnout, že nebudete používat dot42 pro komerční účely, ale pouze ke své vlastní potřebě (I will use dot42 for fun only). V případě, že byste zvažovali pomocí tohoto produktu vydělávat, je třeba zaplatit značný finanční poplatek ve výši 299$. Pokud nechceme dostávat informace o nových produktech a aktualizacích dot48, odškrtneme políčko Join Newsletter. Jakmile jsme s vyplňováním hotovi, zmáčkneme Download a uložíme si instalační balíček k sobě do počítače.
Jakmile máme balíček stažen, spustíme ho pro instalaci. Jako první vám pravděpodobně vyskočí tato hláška:

Je to způsobeno tím, že nástroje dot48 pracují s dvěma vývojovými nástroji pro jazyky platformy .NET. První a základní je Microsoft Visual Studio, který je oficální a hlavní, podporovaný společností Microsoft, bohužel je však velice finančně nákladný, i když pro studenty se dá sehnat zdarma. Druhým je volně šiřitelné prostředí SharpDevelop, které je obecně považováno za velmi dobrou alternativu, která je zcela zdarma. Pokud tedy nemáte na počítači nainstalovanou nějakou verzi Visual Studia, objeví se tato hláška a instalace bude pokračovat dál s tím, že vám při instalaci nabídne možnost doinstalovat SharpDevelop, kterou v našem případě využijeme. Jakmile tedy budeme pokračovat v instalaci, objeví se potvrzovací okno, ve kterém necháme zaškrtnutou možnost "instal SharpDevelop 4.3":

Jakmile dáme pokračovat, instalátor zjistí, zda máme potřebnou verzi platformy .NET Framework. V našem případě je to verze 4.5. Pokud ji nemáme, sám ji stáhne a doinstaluje za nás. Průběh takové instalace pak vypadá nějak takto:
Jakmile instalace doběhne, budeme následujícím oknem vyzváni, abychom zadali aktivační klíč:

Tento klíč nám byl zaslán na e-mailovou adresu, kterou jsme zadali na stránkách dot48. Měli byste v ní v podstatě okamžitě nalézt e-mail v následujícím tvaru:

Pokud jste e-mail neobdrželi, chvíli počkejte a v případě, že do 10 minut nepřijde, prohlédněte si složku spam ve svém e-mailovém klientu. Jelikož je tento e-mail automaticky generován, může se stát, že ho bude kontrola považovat za spam. Jakmile pak zadáte seriový klíč, instalace by se měla zdárně dokončit.
Jako poslední krok je tedy potřeba nalézt v počítači aplikaci "Sharp Develop (dot42 C# for Android)", kterou vám instalační balíček sám doinstaloval. Pokud ji najdete, zkuste ji spustit a měli byste být přivítáni úvodní obrazovkou vývojového rpostředí, která bude vypadat takto:
I když vám to nejspíše instalátor doporučí, po instalaci není třeba restartovat počítač.
Jakmile jsme splnili všechny kroky, nic nám už nebrání v tom, začít vytvářet C# aplikace pro Android, což si vyzkoušíme v další aktivitě.
7. Ahoj Světe! - naše první C# aplikace na Androidu
|
Téma |
Ahoj Světe! - naše první C# aplikace na Androidu |
|
|
Tematický celek |
Tvorba mobilní Android aplikace v jazyce C# |
|
|
Motivační rámec |
Poté, co jsme si nainstalovali vývojová prostředí a nástroje, je čas na naši první C# aplikaci pro Android. |
|
|
Počet žáků |
15 |
|
|
Věk žáků |
16-18 |
|
|
Pomůcky |
PC, tablet nebo emulátor OS Android. Vývojové prostředí SharpDevelop z balíčku dot42. |
|
|
Stručný popis aktivity s využitím přístroje |
Studenti spustí vývojové prostředí SharpDevelop. Vytoří si autentifikační certifikát pro Android aplikace a vytvoří pomocí něj první aplikaci Hello world. Tu následně importují do tabletu či Android emulátoru. |
|
|
Vhodné místo |
Běžná počítačová učebna vybavená operačním systémem Windows. |
|
|
Cíle aktivity |
Studenti budou schopni vytvořit Android aplikaci psanou v jazyce C# a importovat ji do přístroje nebo emulátoru. |
|
|
Rozvíjené kompetence |
Kompetence k učení, k řešení problémů |
|
|
Předchozí znalosti |
Aktivita navazuje na Instalace a nastavení vývojářských nástrojů dot42 |
|
|
Časový plán |
Fáze činnosti s přístrojem |
Metody a formy, motivace |
|
15 minut |
Spuštění a vytvoření podepisovacího certifikátu. |
Samostatná práce nebo práce ve skupině |
|
15 minut |
Tvorba aplikace Hello World. |
Samostatná práce nebo práce ve skupině |
|
15 minut |
Import aplikace do tabletu či emulátoru a její testování. |
Samostatná práce nebo práce ve skupině, skupinová diskuse |
|
Hodnocení |
Bez hodnocení. Studenti budou hodnoceni až po tvorbě vlastních aplikací. |
|
|
Návaznosti |
Aktivita C# aplikace pro Android s grafickými prvky |
|
Zadání:
1. Spusťte vývojové prostředí SharpDevelop.
2. Vytvořte nový projekt typu dot42.
3. Vytvořte si autentifikační certifikát pro svoje Android aplikace.
4. Zkompilujte systémem předvytvořenou aplikaci Ahoj světe.
5. Vytvořenou aplikaci nahrajte do tabletu nebo do Android emulátoru a spusťte.
Postup:
Po spuštění prostředí SharpDevelop je nejprve potřeba vytvořit nový projekt (New solution). Jakmile to uděláme, vyskočí nám nabídka všech možných typů projektů. Nás zajímá ten, který je v sekci C#/dot42 a jmenuje se "dot42Application Project". Dále pak zvolíme název a cestu, kam se má projekt uložit.
Jakmile dáme vytvořit, otevře se nám menu s nastavením projektu. Toto menu je velmi důležité, protože v něm vybíráme identifikační certifikát pro naši aplikaci a také verzi OS Android, pro kterou je aplikace určena. V případě, že tvoříte aplikaci tohoto typu úplně poprvé, je nutné vytvořit autentifikační certifikát, kterým se bude aplikace systému prokazovat. Jakmile tuto volbu vybereme, spustí se intuitivní certifikační průvodce, který vám vše vysvětlí. Proces tvorby certifikátu je pak podrobně znázorněn na videu níže.
Volba verze OS Android je velmi důležitá, protože když zvolíte příliš novou verzi, na starších systémech nemusí fungovat. Pokud používáte emulátor BlueStacks, jako je vidět ve videu, zjistěte si na této stránce, jakou verzi OS Android vaše verze emuluje. V případě ukázkového videa to byla verze 4.0.3.
Jakmile jsme s nastavováním hotovi, vytvoří se ukázková aplikace HelloWorld, která obsahuje dvě hlavní složky. MainActivity.cs je zdrojový soubor C# a MainLayout.xml je šablona pro to, jak má aplikace vypadat. Pak už stačí jen projekt "spustit" (Zelená šipka Run compiled exe) a otevře se menu pro výběr zařízení, do kterého se má aplikace importovat. Zařízení musí být přímo připojeno k počítači buď kabelem, nebo přes Wi-fi síť.
V případě, že používáte emulátor tak, jako je to naznačeno na videu, musíte si zkompilovaný soubor apk najít ve složce projektu a do emulátoru ho doinstalovat ručně. Pak už stačí jen emulátor spustit a aplikaci hned uvidíte mezi nainstalovanými, viz video.
Videoukázka postupu:
8. C# aplikace pro Android s grafickými interaktivními prvky
|
Téma |
C# aplikace pro Android s grafickými interaktivními prvky |
|
|
Tematický celek |
Tvorba mobilní Android aplikace v jazyce C# |
|
|
Motivační rámec |
Teď když už umíme vytvořit a spustit jednoduchou aplikaci, je třeba posunout k ovládacím grafickým prvkům. |
|
|
Počet žáků |
15 |
|
|
Věk žáků |
16-18 |
|
|
Pomůcky |
PC, tablet nebo emulátor OS Android. Vývojové prostředí SharpDevelop z balíčku dot42. |
|
|
Stručný popis aktivity s využitím přístroje |
Studenti pomocí vývojového prostředí sharpDevelop vytvoří aplikaci využívající dvě tlačítka, která budou plnit různé akce. |
|
|
Vhodné místo |
Běžná počítačová učebna vybavená operačním systémem Windows. |
|
|
Cíle aktivity |
Studenti budou schopni vytvořit Android aplikaci, která bude obsahovat ovládací grafické interaktivní prvky, jako jsou např. tlačítka. |
|
|
Rozvíjené kompetence |
Kompetence k učení, k řešení problémů |
|
|
Předchozí znalosti |
Aktivita navazuje na aktivitu Ahoj Světe! - naše první C# aplikace na Androidu |
|
|
Časový plán |
Fáze činnosti s přístrojem |
Metody a formy, motivace |
|
10 minut |
Spuštění počítače, založení nového projektu a odstranění přebytečných prvků. |
Samostatná práce nebo práce ve skupině |
|
15 minut |
Tvorba prvního tlačítka se změnou jeho textu při stisku. |
Samostatná práce nebo práce ve skupině |
|
20 minut |
Tvorba druhého tlačítka, které zobrazí libovolnou hlášku v novém dialogu a následné vyzkoušení finální aplikace. |
Samostatná práce nebo práce ve skupině |
|
Hodnocení |
Bez hodnocení. Studenti budou hodnoceni až po tvorbě vlastních aplikací. |
|
|
Návaznosti |
Na tuto aktivitu navazuje C# aplikace pro Android a práce s animacemi. |
|
Zadání:
1. Vytvořte nový projekt typu dot42.
2. Vymažte z projektu všechny přebytečné prvky a pojmenujte výslednou aplikaci.
3. Vložte do návrhu stránky nové tlačítko roztažené přes celou obrazovku a při jeho stisku mu změňte jeho text.
4. Vložte do návrhu stránky nové tlačítko, které bude malé a libovolně napozicované pod tlačítkem předchozím. Při stisku na toto tlačítko se objeví informační okno s libovolným textem.
5. Aplikaci nahrajte do zařízení či emulátoru a vyzkoušejte.
Postup:
Nejprve je třeba založit novou aplikaci typu dot42 pro Android v prostředí SharpDevelop. Postup je obdobný jako v předchozí kapitole s tím rozdílem, že tentokrát smažeme textové pole pro hlášku "Ahoj světe", kterou nám SharpDevelop v základu vytváří. toho docílíme tak, že si otevřeme xml soubor MainLayout, který je součástí projektu. Tento soubor je pro práci s grafikou velice důležitý, jak se dozvíme v další části. Postup je pak na následujícím videu:
Dalším krokem pak bude samotné vytvoření nového tlačítka. Nejprve však svou aplikaci pojmenujeme. V příkladu jsem použil název "Interaktivní prvky", a jak je vidět na následujícím videu, umístil jsem ho do tagu Label nad hlavní aplikaci pomocí syntaxe [Activity(Label = "Interaktivní prvky")]. To způsobí, že naše aplikace bude mít mezi aplikacemi v našem zařízení patřičný název a nadpis. Dalším krokem je pak vložení samotného tlačítka.
Dot42 řeší grafický design Android aplikací úplně stejně jako všechny ostatní jazyky určené pro tento operační systém. Základní rozvržení grafiky se řeší přes konfigurační xml soubory, tzv. Layouty. Tyto xml soubory mají svoji vlastní syntaxi a možnosti, které jsou velmi podobné CSS (Kaskádovým stylům užívaným na webu). Pokud se programátor chce naučit s grafikou na androidu pracovat, je pro něj naprosto nezbytné se s těmito xml layouty seznámit. Manuály jsou pak k nahlédnutí např. zde: http://developer.android.com/guide/topics/ui/declaring-layout.html
V příkladě bylo použito tlačítko s následujícím zápisem:
<Button
android:id="@+id/Tlacitko1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Zmáčkni mě" />
Vysvětlení tohoto zápisu je následující. Vlastnost android:id="@+id/ registruje tlačítko v aplikaci pod určitým názvem, pomocí něhož se bude s tlačítkem pracovat. V našem případě jsme použili jméno Tlacitko1. Další použitá vlastnost byla android:layout_width, jehož hodnotu jsme nastavili na fill_parent. Tato vlastnost udává šířku tlačítka a naše zvolená hodnota pak určuje, že tlačítko bude roztaženo přes celou obrazovku. Podobně je na tom pak vlastnost android:layout_height, která udává výšku. V obou těchto případech jsme mohli nastavit výšku v bodech, ale místo toho jsme použili předdefinované možnosti Android layoutu. V případě výšky to bylo wrap_content, což znamená, že se tlačítko roztahuje podle toho, co je v něm napsáno. Poslední byla vlastnost android:text, která jak jistě každému dojde, určuje, co bude na tlačítku napsáno.
Jakmile jsme měli grafickou část tlačítka, bylo třeba vytvořit funkcionalitu. V hlavním programu jsme proto přidali:
var tlacitko = (Button)FindViewById(R.Ids.Tlacitko1);
tlacitko.Click += (x,s) => tlacitko.Text = "Zmáčknul jsi mě";
Tyto dva řádky jsou pak samy o sobě vcelku pochopitelné. Na prvním využíváme funkci FindViewById, která vrátí odkaz na specifikovaný objekt, který se nachází na layoutu, tedy v grafice aplikace. Funkce ho hledá podle id předtím specifikovaného ve vlastnosti android:id="@+id/. Funkce hledá univerzálně objekty, proto je třeba výsledek přetypovat na Button. Na další řádce pak přidáme mezi listenery buttonu na událost Klik zkrácený zápis event handleru, který bere vždy parametry (object sender, eventArgs parametry), zde definované jako (x, s). Pokud máme událost, která dělá jen jednu akci na jednom řádku, vyplatí se tento zápis psát zkráceně, jak je tomu v příkladu. U dalšího tlačítka použijeme zápis klasicky celý, který je běžným uživatelům jazyka C# už povědomější. Celou tuto část pak ilustruje následující video:
Naším dalším úkolem bylo vytvořit tlačítko, po jehož kliknutí na nás vyskočí námi definovaná hláška. Tentokrát jsme v layoutu použili trochu jiné parametry, a to následující:
<Button
android:id="@+id/Tlacitko2"
android:layout_width="150dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="80dp"
android:layout_height="wrap_content"
android:text="Ukaž mi zprávu"/>
Je tedy třeba probrat několik změn a novinek. Do android:layout_width jsme tentokrát specifikovali šířku v bodech a přidali jsme dvě nové vlastnosti, a to android:layout_marginLeft a android:layout_marginTop. Obě tyto vlastnosti řeší velikost mezer kolem našeho tlačítka. Vlastnost marginLeft z leva a vlastnost marginTop ze shora. U obou jsme nastavili příslušný počet bodů. Výsledek tohoto rozvržení si pak můžeme prohlédnout v ukázce finální aplikace.
Když jsme tedy hotovi i s druhým tlačítkem, je třeba přidat jeho funkcionalitu. Podobně jako u prvního tlačítka mu musíme přidat funkci reagující na událost stisknutí, takzvaný handler. Tentokrát však použijeme klasický zápis a vytvoříme si na to celou novou funkci. Začátek je velmi podobný:
var tlacitko2 = (Button)FindViewById(R.Ids.Tlacitko2);
tlacitko2.Click += ZobrazZpravu;
A teď musíme vytvořit funkci ZobrazZpravu. Její zápis pak vypadá následovně:
private void ZobrazZpravu(object zdroj, EventArgs parametry){
var tvurce = new AlertDialog.Builder(this);
tvurce.SetMessage("Toto je naše ukázková zpáva!");
var okno = tvurce.Create();
okno.Show();
}
Jak jsem již psal předtím, klasická funkce reagující na událost má tyto základní parametry (object zdroj, EventArgs parametry). Když takovou funkci vyrobíme, můžeme jí přiřadit jako handler události. V našem případě má sloužit k zobrazení dialogové hlášky. Proto je třeba nejprve si vyvrořit AlertDialog Builder a uložit si ho do proměnné. Jakmile ho máme, musíme mu přesně specifikovat, jakou zprávu chceme zobrazit. Na to nám poslouží funkce SetMessage. Jakmile máme takto builder nastaven, stačí mu jen přikázat, aby vyrobil instanci okna pomocí funkce Create a následně ho ukázat pomocí funkce Show.
Celý postup je pak vidět na následujícím videu:
A tím pádem je celá aplikace hotová a je třeba ji exportovat do emulátoru nebo do libovolného zařízení s OS Android. Na následujícím videu můžeme vidět, jak vypadá a jak se chová:
9. C# aplikace pro Android a práce s animacemi
|
Téma |
C# aplikace pro Android a práce s animacemi |
|
|
Tematický celek |
Tvorba mobilní Android aplikace v jazyce C# |
|
|
Motivační rámec |
Když už jsme si pohráli s klasickými ovládacími prvky, vyzkoušíme si teď vytvořit jednoduchou animaci. (Aneb je to barevné a hýbá se to!) |
|
|
Počet žáků |
15 |
|
|
Věk žáků |
16-18 |
|
|
Pomůcky |
PC, tablet nebo emulátor OS Android. Vývojové prostředí SharpDevelop z balíčku dot42. |
|
|
Stručný popis aktivity s využitím přístroje |
Studenti pomocí vývojového prostředí sharpDevelop vytvoří aplikaci, generující animaci pohybujícího se kruhu. |
|
|
Vhodné místo |
Běžná počítačová učebna vybavená operačním systémem Windows. |
|
|
Cíle aktivity |
Studenti budou schopni vytvořit Android aplikaci, která bude obsahovat jednoduchou animaci libovolného geometrického tvaru, například kruhu. |
|
|
Rozvíjené kompetence |
Kompetence k učení, k řešení problémů |
|
|
Předchozí znalosti |
C# aplikace pro Android s grafickými interaktivními prvky |
|
|
Časový plán |
Fáze činnosti s přístrojem |
Metody a formy, motivace |
|
10 minut |
Spuštění počítače, založení nového projektu a odstranění přebytečných prvků. |
Samostatná práce nebo práce ve skupině |
|
35 minut |
Tvorba nového panelu, na kterém se bude pohybovat zelený kruh s nápisem uvnitř. Následné spuštění a testování aplikace. |
Samostatná práce nebo práce ve skupině |
|
Hodnocení |
Bez hodnocení. Studenti budou hodnoceni až po tvorbě vlastních aplikací. |
|
|
Návaznosti |
Na tuto aktivitu navazuje aktivita Závěrečné poznámky a zdroje |
|
Zadání:
1. Vytvořte nový projekt typu dot42.
2. Vyčistěte ho od zbytečností, včetně MainLayout.xml, tentokrát nebude potřeba.
3. Nastavte aplikaci na celou obrazovku bez nadpisu.
4. Vytvořte panel s modrým pozadím, na kterém bude probíhat animace pohybujícího se zeleného kruhu s nápisem uvnitř.
5. Aplikaci spusťte a vyzkoušejte.
Postup:
Nejprve je třeba vytvořit nový projekt a vyčistit ho od zbytečností, což už jsme dělali několikrát. Bylo by také dobré nastavit aplikaci jméno, jako jsme si ukázali v předchozí kapitole. Co však tentokrát uděláme jinak je, že odstraníme také MainLayout.xml, který nám normálně umožňuje stavět aplikaci pomocí interaktivních grafických komponent. Na animaci a vykreslování elementární grafiky však nestačí, na to budeme potřebovat nějaký panel, který bude potomkem třídy SurfaceView. To bychom ale předbíhali, nejprve je třeba upravit hlavní vygenerovaný soubor a to je MainActivity.cs. Na následujících obrázcích bude ilustrováno, jak na to. Pro demonstraci byly zvoleny obrázky, hlavně proto, že na nich je dobře graficky zvýrazněn zdrojový kód, což v těle kurzu tak jednoduše nelze.

Jak vidíme na obrázku, zas tolik se nám to nezměnilo. Přibyla nám funkce RequestWindowFeature, která zajišťuje to, aby se aplikace spustila v určitém náhledovém režimu. V našem případě chceme aplikaci na full screen bez nadpisu, jako to můžeme vidět v předchozí aktivitě. Vzhledem k tomu, že chceme mít modrou plochu na celé obrazovce, nadpis s názvem aplikace by nám tam zbytečně překážel a ubíral prostor. Poté použijeme naši již známou funkci SetContentView, abychom nastavili určitou grafiku jako hlavní obsah aplikace. Tentokrát však nepoužijeme layout vytvořený v MainLayout.xml, ale námi vytvořený nový panel, který je potomkem třídy SurfaceView. Na následujících obrázcích si pak ukážeme funkcionalitu, kterou ho naplníme.

Na tomto obrázku je vidět definice samotné třídy Panel. Jak vidíme, je potomkem třídy SurfaceView, která je specificky navržena, aby poskytla aplikaci co nejlepší možnosti v oblasti grafiky a kreslení na "plátno" neboli canvas. Třída Panel pak zároveň implementuje dvě rozhraní. ISurfaceHolder_ICallback je rozhraní, které umožňuje programu přijímat informace o změnách na "povrchu" aplikace. IRunnable je pak klasické rozhraní, které umožňuje třídě běžet v samostatném vlákně.
Dále pak nadefinujeme několik uživatelských proměnných. Proměnné poloha a rozdil se budou týkat polohy a směru pohybu našeho kruhu a proměnná bezi bude rozhodovat o tom, zda se bude ve vlákně přepočítávat poloha, a bude hlídat, zda aplikace už neskončila. Poslední proměnná holder bude v sobě udržovat odkaz na grafický "povrch" aplikace, na kterém se bude vykreslovat naše grafika.
A jako poslední v této fázi je třeba nadefinovat konstruktor Panelu, ve kterém je třeba získat aktuální holder (pomocí funkce GetHolder) a spojit ho s touto instancí třídy Panel funkcí AddCallback. To zaručí, že změny vycházející z této instance panelu se do grafiky skutečně promítnou.
Dále je třeba vytvořit funkce vyžádované díky implementaci našich dvou rozhraní.

Všechny tyto funkce začínající slovem surface jsou vyžadovány rozhraním ISurfaceHolder_ICallback a všechny se týkají samotného povrchu aplikace. SurfaceCreated se zavolá v okamžiku vytvoření grafického povrchu. V tu chvíli už můžeme nastavit proměnnou bezi na true, protože je načase začít vykreslovat animaci. Zároveň pak vytvoříme nové vlákno, ve kterém se bude animace připravovat a vykreslovat a toto vlákno nastartujeme. Mechanika je stejná jako v jakékoliv jiné C# aplikaci. Ve funkci SurfaceDetroyed vykreslování zase naopak vypneme, protože aplikace byla zavřena a povrch smazán. Funkce SurfaceChanged si nevšímáme, protože pro ni v naší aplikaci nemáme využití. Nicméně v programu se musí nacházet, protože její užití je vynuceno rozhraním.
Poslední funkce vynucená rozhraním je pro nás klíčová. Jedná se o funkci Run, kterou využívá rozhraní IRunnable. Tato funkce se spouští, hned jak je nastartováno vlákno, ve kterém běží, a jakmile doběhne, vlákno se ukončí. Ve většině případů se v něm nachází nějaký cyklus, který dokola opakuje určité akce. V našem případě opakujeme cyklus, dokud aplikace běží. Nejprve pomocí funkce LockCanvas zamkneme plátno pro jiné procesy a systému tím dáme najevo, že se chystáme měnit samotné pixely na něm, jinak řečeno, budeme na něj něco kreslit. Poté zavoláme námi vytvořenou funkci DoDraw (probereme ji dále), která se postará o samotné vykreslení grafiky na plátno. Pak už jen stačí pomocí funkce UnlockCanvasAndPost plátno odemknout a zobrazit na něm naše změny. Dál už stačí jen naše vlákno na chvíli uspat pomocí Thread.Sleep, abychom simulovali plynulý pohyb kruhu, a funkcionalita je na světě. Teď už nám stačí jen dopsat funkci DoDraw, která se postará o samotné umístění grafických prvků.

V první části je jednoduchá mechanika, která řeší, zda se kruh bude zrovna pohybovat směrem doleva nebo doprava. Jakmile je poloha rozhodnuta, přichází samotné vykreslování grafiky. Nejprve zabarvíme celé plátno modrou barvou pomocí DrawColor(Color.BLUE). Poté vytvoříme nový štětec typu Paint, kterým budeme jednotlivé prvky kreslit. Pomocí SetTextAlign(Paint.Align.CENTER) nastavíme zarovnávání textu psaného naším štětcem na střed, což použijeme později při vpisování textu do našeho kruhu. Dříve než něco vykreslíme, vždy nastavíme barvu daného objektu pomocí funkce SetColor. V případě kruhu to bude zelená a v případě textu pak červená. Na samotné objekty pak použijeme funkce DrawCircle v případě kruhu a DrawText v případě textu. K umístění pak použijeme souřadnice vygenerované s pomocí naší proměnné poloha. A jako jeden z parametrů funkcí také přidáme námi vygenerovaný štětec. Takto zapsaný kód je vcelku jednoznačný a intuitivní. Jakmile jsme tedy dopsali funkci DoDraw, nic už nám nebrání aplikaci spustit a podívat se na výsledek.
A na následujícím videu je pak už vidět samotná hotová aplikace. Omluvte prosím cukání v pohybu kruhu, je to způsobeno nahráváním videa z obrazovky, které nedokáže snímat tak rychle, aby byl pohyb plynulý. V samotné aplikaci se kruh pohybuje velmi plynule.
10. Závěrečné poznámky a zdroje
Slovo na závěr
Po prostudování tohoto kurzu by měl být student alespoň zběžně vpraven do problematiky vývoje C# aplikací pro OS Android. U této problematiky je v první řadě klíčové uvědomit si, proč by měl programátor k vývoji Android aplikací vůbec používat C#. Na tuto otázku neexistuje jednoznačná odpověď a sám autor kurzu není docela přesvědčen o tom, že je to ideální cesta. Primárním jazykem pro vývoj takových aplikací je Java a ta je jazyku C# velice podobná a nedalo by se říct, že je v nějakém ohledu slabší. Dokonce existuje programátorský proud, který ji nad C# značně vyzdvihuje kvůli její multiplatformovosti. Na druhou stranu existují programátoři, kteří C# preferují zase z jiných důvodů. Autorovi například připadá jako jazyk uživatelsky více přívětivý a snazší k učení, nicméně to je věc individuálního názoru.
Pokud si tedy po průchodu tímto kurzem nejste úplně jisti, jestli se C# na Androidu věnovat naplno, zvažte, jaký jste typ programátora, vaše okolnosti a předchozí zkušenosti. Pokud jste se ve své profesionální kariéře věnovali převážně technologiím .NET a nechcete na tom nic měnit, odpověď jasně směřuje k užívání C# i k tvorbě vašich mobilních aplikací. Pokud však jazyk C# v sobě nemáte tak hluboce zakořeněn a hledáte pro svou budoucí kariéru ideální způsob tvorby mobilních aplikací, bude pro vás lepší přesunout se do hlavního proudu tvorby mobilních aplikací na OS Android a přeučit se na Javu. Jazyky jsou si syntaxí a možnostmi velmi podobné a zkušenému programátorovi tento přechod nebude činit potíže.
Zdroje:
V tomto kurzu byl použit následující multimediální obsah.
Obrázky:
Kapitola 2:
Obrázek Android robota se znakem C# (obálka volně dostupné elektronické knihy Mono for Android - Create amazing Android apps with C# and .NET, zdroj přímo v kapitole)
Kapitola 3:
Ilustrační obrázek PC (pixabay.com, volné dílo)
Ilustrační obrázek tabletu (pixabay.com, volné dílo)
Logo dot42 (wikipedia.org , volné dílo)
Logo Xamarin (wikipedia.org , volné dílo)
Logo BlueStacks (wikipedia.org , volné dílo)
Kapitola 4:
Logo .NET (wikipedia.org , volné dílo)
Logo Android (wikipedia.org , volné dílo)
Kapitola 5:
Logo Xamarin (wikipedia.org , volné dílo)
Logo dot42 (wikipedia.org , volné dílo)
Ukázka zdrojového kódu Xamarin (nasnímáno autorem kurzu)
Ukázka zdrojového kódu dot42 (nasnímáno autorem kurzu)
Kapitola 6:
Několik obrázků s postupem instalace nástrojů dot42 (nasnímáno autorem kurzu)
Kapitola 9:
Několik obrázků se zdrojovým kódem aplikace s animací (nasnímáno autorem kurzu)
Videa:
Kapitoly 7,8 a 9:
Videa demonstrující postup práce v daných kapitolách a ukázky finálních produktů. Všechny byly zaznamenány autorem pomocí volně šiřitelného software a umístěny na server youtube pouze pro účely tohoto kurzu.