IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

3. diel - Prvý multiplatformový aplikácie v Xamarin a C # .NET

Vitajte u ďalšieho pokračovania kurzu o vývoji multiplatformových aplikácií v Xamarin. V minulej lekcii, Štruktúra Xamarin projektu a životný cyklus aplikácie , sme si ukázali a opísali jednotlivé časti súborov a zložiek a vysvetlili, čo sa v aplikácii deje od jej spustenia, cez pauzu, až po ukončenie. Dnes konečne opustíme teoretické kruhy a napíšeme si našu prvú multiplatformový aplikáciu v Xamarin, ktorá bude reagovať na vstup od užívateľa.

Úvodom

Ako už býva zvykom, prvá aplikácia je väčšinou typu "Hello World!". Ani v tomto prípade tomu nebude inak, iba s tým rozdielom, že nebudeme písať oslovenie priamo do kódu. Napíšeme ho do textového poľa priamo v aplikácii, ktorá ho uloží do premennej, ktorú vypíšeme v dialógovom okne.

Založenie nového Xamarin projektu

Ak už máte založený projekt z minulých lekcií, môžete ho použiť. Ak nie, tak spustíme Visual Studio a vyberieme New Project -> Mobile App (Xamarin.Forms). Projekt pomenujeme DialogApp.

Konfigurácia Android emulátora

Ešte než sa pustíme do programovania, nastavíme si Android emulátor. Vo Visual Studiu vyberieme Tools -> Android -> Android device manager. V novo otvorenom okne klikneme na "Nový" a nastavíme si parametre aké chceme. Na začiatok nám postačí Prednastavený základ zariadení Nexus 5 X. Profil emulátora si pomenujeme podľa ľubovôle a vyberieme API. Ja si zvolil Android 9.0 API 28. Klikneme na vytvoriť, odsúhlasíme licenčné podmienky a počkáme, kým sa nám stiahnu a nainštalujú nové súčiastky. Emulátor si môžete skúšobni spustiť.

Ak narazíte na chybovú či výstražnou hlášku ohľadom Hyper-V či hypervisor, je nutné ho aktivovať vo funkciách Windows nasledujúcim spôsobom. Vo vyhľadávania Windows zadajte: "Funkcia systému Windows" a otvorte. Zaškrtnite "Platforma hypervisora Windows" a aplikujte. Počítač bude vyžadovať reštartovanie.

Inštalácia súčasti Platforma hypervisor Windows - Tvorba mobilných aplikácií v Xamarin a C # .NET

Podrobný návod na rôzne situácie pri problémoch s hypervisor nájdete v oficiálnej dokumentácii na adrese https://docs.microsoft.com/...-for-android...

C # DialogApp

Presuňme sa do roztoku Explorer, kde si v sekcii C# DialogApp otvoríme súbory MainPage.xaml a MainPage.xaml.cs.

Súbory zdieľaného kódu multiplatformový Xamarin aplikácie - Tvorba mobilných aplikácií v Xamarin a C # .NET

MainPage.xaml

Ako prvý sa pozrieme do súboru MainPage.xaml. Z predchádzajúcich lekcií už vieme, že slúži na rozloženie komponentov v našej aplikácii a zapisujeme do neho pomocou jazyka XML s rozšírenou syntaxou. Visual Studio nám pri založení projektu vygenerovalo nasledujúci kód:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="DialogApp.MainPage">

    <StackLayout>
        <!-- Place new controls here -->
        <Label Text="Welcome to Xamarin.Forms!"
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" />
    </StackLayout>

</ContentPage>

Už pri prvom pohľade je jasné, akým spôsobom budeme zapisovať kód a tiež kam. Ak si myslíte, že do bloku <StackLayout></StackLayout>, máte pravdu. Defaultný kód Visual Studia nerobí nič iné, než že zobrazí uprostred obrazovky uvítací nápis: "Welcome to Xamarin.Forms!". Iste už chápete, že tvoriť klasické Hello World! by nám nedalo moc práce :-) Stačilo by prepísať text a aplikáciu spustiť.

Pre začiatočníkov kód vysvetlím, skúsenejší môžu túto časť pokojne preskočiť. Ako vidíte, každá komponenta sa zapisuje do tagov zo špicatých zátvoriek < .... />, podobne ako napr. V jazyku HTML. Medzi nimi sa nachádza okrem iného pozicovanie. Ako príklad nám poslúži tento <Label>. V podstate sa jedná len o značku pre textový popis, ktoré nastavíme požadované parametre a im zas hodnoty. Syntax je veľmi jednoduchá: parametr="hodnota". Jednotlivé parametre pre prehľadnosť píšeme na samostatný riadok. Je však možné ich písať aj do jedného riadku. Konkrétne pre <Label> zadávame parametre:

  • Text - Hodnotou je textový reťazec, ktorý sa má zobraziť
  • HorizontalOptions - Horizontálna pozícia elementu
  • VerticalOptions - Vertikálna pozícia elementu

Tieto parametre ani hodnoty sa nemusíte učiť naspamäť, pretože Visual Studio nám ponúka ToolBox a okno Properties, kde si všetko môžeme jednoducho naklikať. Pre skúsenejších je však rýchlejšia písať rovno kód. ToolBox nájdeme v ľavej vertikálnej lište Visual Studia, skúste si ho otvoriť a pozrieť sa na jednotlivé komponenty. Ďalej si skúsme v kóde kliknúť na <Label>, pod Sulution Explorerom sa nám otvorilo okno Properties pre označený element. Opäť odporúčam si okno prejsť riadok po riadku, nech máte predstavu, čo všetko sa dá s ovládacími prvkami robiť.

Teraz už ale späť k našej aplikácii. Defaultný <Label> vymastíme a napíšeme si svoj vlastný. Pridáme ovládací prvok <Entry> a tlačidlo <Button>. Kód bude vyzerať nasledovne.

<StackLayout>
        <Label Text="Vítejte, zadejte své oslovení" />
        <Entry x:Name="osloveni" />
        <Button x:Name="button" Text="Pozdravit!" />
</StackLayout>

Novo sa tu stretávame s ovládacími prvkami <Entry> a <Button>. <Entry> slúži k užívateľskému vstupu (niečo ako formulárové pole na webe, do ktorého môžeme písať) a <Button> je tlačidlo. x: nám značí model frameworku, podľa ktorého sa potom konštruuje. Je to akýsi ekvivalent premenné. Bližšie sa k tejto téme dostaneme v ďalších lekciách, kde budeme hlbšie preberať pozadia fungovanie aplikácie a objekty. Týmto máme v XAML súbore hotovo a formulár aplikácie je pripravený.

MainPage.xaml.cs

Presunuli sme sa do tzv. Code Behind súboru MainPage.xaml.cs. Tu sa už stretneme len s jazykom C# .NET, pomocou ktorého budeme navrhnutý formulár obsluhovať. Opäť si ukážme vygenerovanú štruktúru, ktorá obsahuje potrebné using, namespace našej aplikácie a triedu s metódou MainPage():

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace DialogApp
{
    // Learn more about making custom code visible in the Xamarin.Forms previewer
    // by visiting https://aka.ms/xamarinforms-previewer
    [DesignTimeVisible(false)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        //sem budeme psát náš kód
        }
    }
}

Ako prvý si projekt uložíme, aby sa zmeny vykonané v XAML súboru prejavili v celom projekte. Presunieme sa do metódy MainPage() a pod InitializeComponent(); inicializujeme naše tlačidlo:

button.Clicked += Button_Clicked;

Po napísaní += nám Visual Studio ponúkne, že nám po stlačení Tab vygeneruje novú metódu pre naše tlačidlo. Toho samozrejme využijeme. Jej kód by mal vyzerať nejako takto:

private void Button_Clicked(object sender, EventArgs e)
{
    throw new NotImplementedException();
}

Keďže budeme chcieť, aby sa dialógové okno otvorilo až po spracovanie, budeme potrebovať použiť kľúčové slovo await. Aby sme ho mohli použiť, metódu si prepíšeme na asynchrónne. Asynchrónne postupy sa používajú, keď chceme v aplikácii vykonať nejakú akciu a chceme, aby aplikácia naďalej reagovala, než sa táto akcia dokončí.

Teraz musíme povedať, čo sa má stať po stlačení tlačidla. Keďže chceme, aby na nás vyskočilo dialógové okno s pozdravom a oslovením, ktoré zapíšeme do <Entry>, tak musíme začať práve u <Entry>. Riadok s NotImplementedException() môžeme pokojne vymazať a nahradíme ho našim kódom:

private async void Button_Clicked(object sender, EventArgs e)
{
    string VypisOsloveni = osloveni.Text;
    await DisplayAlert($"Ahoj {VypisOsloveni}!", "Vítej v první multiplatformní aplikaci.", "OK");
}

Prvý riadok nám hovorí, že obsah <Entry>, ktoré sme pomenovali ako osloveni, sa uloží ako string (textový reťazec) do premennej VypisOsloveni. Na druhom riadku zavoláme DisplayAlert() (dialógové okno), do ktorého vypíšeme našu premennú, uvítanie a OK pre zatvorenie. Všimnite si, že metóda DisplayAlert() má fixne nastavené 3 hodnoty v úvodzovkách, oddelené čiarkou - "Titulok", "Obsah", "Päta". Pri nabehnutí myšou na DisplayAlert() nám Visual Studio opäť napovedá, ako máme dáta zapisovať. Ďalej si všimnite znaku $. Ak by sme ho nenapísali, nemohli by sme premennú VypisOsloveni do reťazca takto jednoducho vložiť. $ Sa zapisuje ešte pred úvodzovky ovplyvneného reťazca.

Spustení aplikácie

Máme hotovo, nezostáva než naši aplikáciu otestovať v emulátora. V Solution Exploreri klikneme pravým tlačidlom myši na názov projektu a vyberieme Build. Po dokončení zhruba uprostred hornej lišty vo Visual Studio klikneme na zelené tlačidlo pripomínajúce Play. Výsledok by mal vyzerať nejako takto.

Oslovenie Android aplikácie v C# .NET a Xamarin - Tvorba mobilných aplikácií v Xamarin a C # .NET

A po kliknutí na tlačidlo "pozdraviť!":

Dialógové okno v Android aplikácie v C# .NET a Xamarin - Tvorba mobilných aplikácií v Xamarin a C # .NET

Ten, kto má spárované iOS zariadenia, môže aplikáciu otestovať aj na ňom. Samozrejme aplikácii môžeme spustiť aj v Universal Windows Platform.

Dúfam, že sa vám prvá aplikácia páči a všetkému rozumiete. V budúcej lekcii, Kvíz - Životný cyklus aplikácie, XAML v C# .NET Xamarin , sa zameriame na štýlovanie a ďalšie komponenty .NET.

V nasledujúcom kvíze, Kvíz - Životný cyklus aplikácie, XAML v C# .NET Xamarin, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 804x (445.11 kB)

 

Predchádzajúci článok
Štruktúra Xamarin projektu a životný cyklus aplikácie
Všetky články v sekcii
Tvorba mobilných aplikácií v Xamarin a C # .NET
Preskočiť článok
(neodporúčame)
Kvíz - Životný cyklus aplikácie, XAML v C# .NET Xamarin
Článok pre vás napísal Jaroslav Smrž
Avatar
Užívateľské hodnotenie:
1 hlasov
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