Tvorba mobilní Android aplikace v jazyce C#
Tvorba mobilní aplikace v jazyce C#
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#.