Sleva na školení Naučit se HTML & CSS, JS a Bootstrap
Získej 500 Kč na naše školení. Více zde
Probíhá výprodej HTML & CSS, JavaScript a Bootstrap

Lekce 2 - Struktura Xamarin projektu a životní cyklus aplikace

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V minulé lekci, Úvod do Xamarin, jsme si vysvětlili, co to Xamarin vlastně je, co nám umožňuje, a nainstalovali a nastavili jsme si Visual Studio s prvním projektem. V dnešním tutoriálu se podíváme na strukturu Xamarin projektu a životní cyklus mobilní aplikace.

Struktura Xamarin projektu

Když se podíváme do Solution Exploreru, vidíme vygenerovanou strukturu rozdělenou do 4 hlavních částí (názvy se budou lišit podle názvu projektu, já si ho pojmenoval FirstApp).

Solution Explorer Xamarin projektu ve Visual Studio

C# FirstApp

Této části se budeme věnovat nejvíce. Zde budeme psát kód společný pro všechny platformy. Nejvíce nás teď budou zajímat soubory MainPage.xaml a MainPage.xaml.cs. Jistě již tušíte, že soubor MainPage.xaml bude sloužit k rozložení ovládacích prvků v layoutu a MainPage.xaml.cs bude sloužit k "oživení" (obsluhování) těchto prvků pomocí jazyka C# .NET.

FirstApp.Android

V Androidu nás budou nejvíce zajímat následující soubory a složky:

  • Connected Services - Zde se budou nacházet připojené služby jako např. databáze a podobně. K tomu se dostaneme dále v kurzu.
  • Properties - Zde se nachází velice důležitý soubor AndroidManifest.xml. V tomto souboru nastavujeme minimální a cílovou verzi API, ikonu a mnoho dalších parametrů naší aplikace.
  • Resources/ - Zde se budou nacházet obrázky pro naši aplikaci. Všimněte si složek Drawable/ a jejich dalších variant. Je to proto, že i mobilní zařízení mají, podobně jako počítače, různá rozlišení a velikosti a proto budeme potřebovat přizpůsobit rozložení komponent a rozlišení obrázků velikosti displeje každého zařízení. Například pro tablet s full HD použijeme největší rozlišení obrázků, kdežto pro nějaký malý telefon zas to nejmenší, aby aplikace zbytečně nezabírala příliš mnoho paměti a nebyla pomalá.
  • MainActivity.cs - Soubor obsahující základní aktivitu při spuštění aplikace. Více o aktivitách si povíme níže.

FirstApp.iOS

Zde budou konkrétní aktivity, obrázky a skripty speciálně pro operační systém iOS. Princip je stejný jako u Androidu, takže prozatím netřeba popisovat.

FirstApp.UWP

Tuto možnost uvidíte, pouze pokud jste při instalaci zvolili i UWP (Universal Windows Platform). Pokud budete chtít tento nástroj doinstalovat později, můžete tak učinit v instalátoru Visual Studia. Jelikož kód pro Windows Phone je v C# a nevyžaduje v začátcích žádné další úpravy, nebudeme se mu v prvních lekcích věnovat.

Projektovou strukturu si podrobně vysvětlíme během praktických lekcí dále v kurzu. Vysvětlovat vše nyní by nemělo valný význam, neboť ještě nemáme potřebné znalosti a spíše by nás to mátlo.

Aktivity

Aktivita (Activity) referuje na konkrétní obrazovku naší aplikace a definuje celý svůj život od otevření / zaktivnění až do zavření / zrušení, čemuž říkáme životní cyklus aktivity. Ten obsahuje několik možných fází a metod, které se volají jak se mezi fázemi životního cyklu přechází. Důležité je si zapamatovat, že každá jednotlivá obrazovka (stránka) aplikace musí mít svou vlastní aktivitu. Například:

  • Když spustíme aplikaci, tak jako první uvidíme nějakou animaci s logem, to bude první aktivita.
  • Pak základní menu (2. aktivita).
  • Klikneme na odkaz v menu a otevře se nám nová obrazovka (3. aktivita) a tak pořád dále.

Každá aktivita musí mít metodu OnCreate() a již nepovinně může mít další metody.

Životní cyklus aktivity

Teď již víme, že existují aktivity, které musí mít metodu OnCreate() a mohou mít i další metody. Kdy a proč se ale které metody volají? Jistě znáte, že když hrajete hru na telefonu a někdo vám volá, hra automaticky přejde do pauzy a zobrazí se vám příchozí hovor. Po ukončení hovoru se můžete opět vrátit do hry, která bude ve stavu pauzy. Jistě každý chápe význam různých stavů životního cyklu, reprezentovaných danými metodami. Podívejme se na jeho grafické znázornění:

Životní cyklus mobilní aplikace

Stav aktivity

Každá aktivita se nachází současně jen v jednom z následujících stavů:

  • Běží - Aktivita se úspěšně spustila a běží na popředí, je tedy pro uživatele viditelná.
  • Pauza - Aktivita jde vidět, je ale například překrytá jinou aktivitou. (Upozornění na příchozí SMS, hovor, nebo například dialog o plném nabití baterie při nabíjení). Uživatel se k takové aktivitě nijak nedostane a nemůže s ní pracovat.
  • Zastavená - Aktivita není vidět, uživatel k ní nemá přístup, ale její objekt ještě nebyl úplně zničen. Uživatel se k ní bude moci vrátit, pokud nebude zničena, například nedostatkem paměti.
  • Ukončená - Aktivita je úplně mrtvá.

Při přechodech mezi těmito stavy se volají následující metody.

Metoda OnCreate()

Je základní metodou, která se spustí jako první a zahájí nám životní cyklus aktivity. Například když uživatel spustí aplikaci, tak tato metoda nám určuje, jaké se mají načíst obrázky, jaké zde budou komponenty, zda-li má aplikace běžet ve fullscreenu a podobně. Zkrátka nám zpracuje celý design a funkce tak, jak jsme je navrhli. Je to jediná metoda, kterou je povinné použít!

Metoda OnStart()

Volá se, pokud aktivita byla poprvé spuštěna (po OnCreate()) nebo byla aktivována po svém skrytí (příchozí SMS, systémový dialog například o nabití baterie nebo jiný dialog). Tato metoda nemůže dostat uživatelský vstup.

Metoda OnResume()

Volá se těsně před tím, než je aktivita posunuta do popředí (restart, první spuštění nebo odpauzování), může dostat uživatelský vstup.

Metoda OnPause()

Volá se před přechodem aktivity na pozadí. Systém dostává pravomoc násilného ukončení aktivity.

Metoda OnStop()

Volá se, když se má aktivita zastavit, není viditelná pro uživatele.

Metoda OnDestroy()

Volá se před zrušením aktivity.

Metoda OnRestart()

Jak vyplývá z předchozího diagramu, pokud byla zavolána OnStop() a aktivita se restartuje, volá se OnRestart(), jenž se provede před OnStart().

V příští lekci, První multiplatformní aplikace v Xamarin a C# .NET, již konečně opustíme teorii a naprogramujeme si jednoduchou aplikaci, která bude reagovat na vstup od uživatele a zobrazí nám dialogové okno s pozdravem. Máte se tedy na co těšit!


 

 

Článek pro vás napsal Jaroslav Smrž
Avatar
Jak se ti líbí článek?
1 hlasů
Autor se věnuje primárně vývoji webových aplikací v ASP.NET a PHP. Když je čas, tak tvoří i webové stránky a mobilní aplikace.
Předchozí článek
Úvod do Xamarin
Všechny články v sekci
Tvorba mobilních aplikací v Xamarin a C# .NET
Miniatura
Následující článek
První multiplatformní aplikace v Xamarin a C# .NET
Aktivity (2)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!