Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

2. diel - Štruktúra Xamarin projektu a životný cyklus aplikácie

V minulej lekcii, Úvod do Xamarin , sme si vysvetlili, čo to Xamarin vlastne je, čo nám umožňuje, a nainštalovali a nastavili sme si Visual Studio s prvým projektom. V dnešnom tutoriálu sa pozrieme na štruktúru Xamarin projektu a životný cyklus mobilné aplikácie.

Štruktúra Xamarin projektu

Keď sa pozrieme do Solution Exploreru, vidíme vygenerovanú štruktúru rozdelenú do 4 hlavných častí (názvy sa budú líšiť podľa názvu projektu, ja si ho pomenoval FirstApp).

Roztok Explorer Xamarin projektu vo Visual Studio - Tvorba mobilných aplikácií v Xamarin a C # .NET

C # FirstApp

Tejto časti sa budeme venovať najviac. Tu budeme písať kód spoločný pre všetky platformy. Najviac nás teraz budú zaujímať súbory MainPage.xaml a MainPage.xaml.cs. Iste už tušíte, že súbor MainPage.xaml bude slúžiť na rozloženie ovládacích prvkov v layoutu a MainPage.xaml.cs bude slúžiť na "oživenie" (obsluhovanie) týchto prvkov pomocou jazyka C# .NET.

FirstApp.Android

V Androidu nás budú najviac zaujímať nasledujúce súbory a priečinky:

  • Connected Services - Tu sa budú nachádzať pripojenej služby ako napr. Databázy a podobne. K tomu sa dostaneme ďalej v kurze.
  • Properties - Tu sa nachádza veľmi dôležitý súbor AndroidManifest.xml. V tomto súbore nastavujeme minimálnu a cieľovú verziu API, ikonu a mnoho ďalších parametrov našej aplikácie.
  • Resources/ - Tu sa budú nachádzať obrázky pre našu aplikáciu. Všimnite si zložiek Drawable/ a ich ďalších variantov. Je to preto, že aj mobilné zariadenia majú, podobne ako počítače, rôzne rozlíšenia a veľkosti a preto budeme potrebovať prispôsobiť rozloženie komponentov a rozlíšenie obrázkov veľkosti displeja každého zariadenia. Napríklad pre tablet s full HD použijeme najväčšie rozlíšenie obrázkov, kdežto pre nejaký malý telefón zas to najmenšie, aby aplikácia zbytočne nezaberala príliš veľa pamäte a nebola pomalá.
  • MainActivity.cs - Súbor obsahujúci základné aktivitu pri spustení aplikácie. Viac o aktivitách si povieme nižšie.

FirstApp.iOS

Tu budú konkrétne aktivity, obrázky a skripty špeciálne pre operačný systém iOS. Princíp je rovnaký ako u Androidu, takže zatiaľ netreba popisovať.

FirstApp.UWP

Túto možnosť uvidíte, iba ak ste pri inštalácii zvolili aj UWP (Universal Windows Platform). Ak budete chcieť tento nástroj doinštalovať neskôr, môžete tak urobiť v inštalátora Visual Studia. Keďže kód pre Windows Phone je v C# a nevyžaduje v začiatkoch žiadne ďalšie úpravy, nebudeme sa mu v prvých lekciách venovať.

Projektovú štruktúru si podrobne vysvetlíme počas praktických lekcií ďalej v kurze. Vysvetľovať všetko teraz by nemalo veľký význam, pretože ešte nemáme potrebné znalosti a skôr by nás to miatlo.

Aktivity

Aktivita (Activity) referuje na konkrétne obrazovku našej aplikácie a definuje celý svoj život od otvorenia / zaktivnění až do zatvorenia / zrušenie, čomu hovoríme životný cyklus aktivity. Ten obsahuje niekoľko možných fáz a metód, ktoré sa volajú ako sa medzi fázami životného cyklu prechádza. Dôležité je si zapamätať, že každá jednotlivá obrazovka (stránka) aplikácia musí mať svoju vlastnú aktivitu. napríklad:

  • Keď spustíme aplikáciu, tak ako prvý uvidíme nejakú animáciu s logom, to bude prvý aktivita.
  • Potom základné menu (2. aktivita).
  • Klikneme na odkaz v menu a otvorí sa nám nová obrazovka (3. aktivita) a tak stále ďalej.

Každá aktivita musí mať metódu OnCreate() a už nepovinne môže mať ďalšie metódy.

Životný cyklus aktivity

Teraz už vieme, že existujú aktivity, ktoré musí mať metódu OnCreate() a môžu mať aj ďalšie metódy. Kedy a prečo sa ale ktoré metódy volajú? Iste poznáte, že keď hráte hru na telefóne a niekto vám volá, hra automaticky prejde do pauzy a zobrazí sa vám prichádzajúci hovor. Po ukončení hovoru sa môžete opäť vrátiť do hry, ktorá bude v stave pauzy. Iste každý chápe význam rôznych stavov životného cyklu, reprezentovaných danými metódami. Pozrime sa na jeho grafické znázornenie:

Životný cyklus mobilné aplikácie - Tvorba mobilných aplikácií v Xamarin a C # .NET

Stav aktivity

Každá aktivita sa nachádza súčasne len v jednom z nasledujúcich stavov:

  • Beží - Aktivita sa úspešne spustila a beží na popredí, je teda pre užívateľov viditeľná.
  • Pauza - Aktivita ide vidieť, je ale napríklad prekrytá inou aktivitou. (Upozornenie na prichádzajúci SMS, hovor, alebo napríklad dialóg o plnom nabití batérie pri nabíjaní). Užívateľ sa k takejto aktivite nijako nedostane a nemôže s ňou pracovať.
  • Zastavená - Aktivita nie je vidieť, používateľ k nej nemá prístup, ale jej objekt ešte nebol úplne zničený. Užívateľ sa k nej bude môcť vrátiť, ak nebude zničená, napríklad nedostatkom pamäte.
  • Ukončená - Aktivita je úplne mŕtva.

Pri prechodoch medzi týmito stavmi sa volajú nasledujúce metódy.

Metóda OnCreate ()

Je základná metódou, ktorá sa spustí ako prvé a začne nám životný cyklus aktivity. Napríklad keď používateľ spustí aplikáciu, tak táto metóda nám určuje, aké sa majú načítať obrázky, aké tu budú komponenty, či ak má aplikácia bežať vo fullscreen a podobne. Skrátka nám spracuje celý dizajn a funkcie tak, ako sme ich navrhli. Je to jediná metóda, ktorou je povinné použiť!

Metóda OnStart ()

Volá sa, ak aktivita bola prvýkrát spustená (po OnCreate()) alebo bola aktivovaná po svojom skrytie (prichádzajúce SMS, systémový dialóg napríklad o nabitia batérie alebo iný dialóg). Táto metóda nemôže dostať užívateľský vstup.

Metóda OnResume ()

Volá sa tesne pred tým, než je aktivita posunutá do popredia (reštart, prvé spustenie alebo odpauzování), môže dostať užívateľský vstup.

Metóda OnPause ()

Volá sa pred prechodom aktivity na pozadí. Systém dostáva právomoc násilného ukončenia aktivity.

Metóda OnStop ()

Volá sa, keď sa má aktivita zastaviť, nie je viditeľná pre používateľov.

Metóda OnDestroy ()

Volá sa pred zrušením aktivity.

Metóda OnRestart ()

Ako vyplýva z predchádzajúceho diagramu, ak bola zavolaná OnStop() a aktivita sa reštartuje, volá sa OnRestart(), ktorý sa vykoná pred OnStart().

V budúcej lekcii, Prvý multiplatformový aplikácie v Xamarin a C # .NET , už konečne opustíme teóriu a naprogramujeme si jednoduchú aplikáciu, ktorá bude reagovať na vstup od užívateľa a zobrazí nám dialógové okno s pozdravom. Máte sa teda na čo tešiť!


 

Predchádzajúci článok
Úvod do Xamarin
Všetky články v sekcii
Tvorba mobilných aplikácií v Xamarin a C # .NET
Preskočiť článok
(neodporúčame)
Prvý multiplatformový aplikácie v Xamarin a C # .NET
Článok pre vás napísal Jaroslav Smrž
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje primárně vývoji webových aplikací v .NET Core. Zajímá se také o vývoj her v Unreal Engine 4 a mobilních aplikací v Xamarin.
Aktivity