1. diel - Úvod do .NET MAUI Nové
Vitajte pri prvej lekcii kurzu, v ktorom sa v jazyku C#.NET naučíme vytvárať multiplatformné mobilné a desktopové aplikácie pre systémy Android, iOS, macOS a Windows. Budeme pracovať nielen s tlačidlami, textovými poľami a zoznamami, ale aj s obrázkami, dialógmi a ďalšími ovládacími prvkami, ktoré máme v týchto aplikáciách k dispozícii. Naša aplikácia budeme tvoriť pomocou technológie .NET MAUI.
Požiadavky na znalosti
Tento kurz predpokladá znalosti v rozsahu kurzov:
- Základná konštrukcia jazyka C# .NET
- Objektovo orientované programovanie v C# .NET
- Kolekcie a LINQ v C# .NET
- Súbory v C# .NET.
Mobilné a desktopové aplikácie
Mobilné aplikácie sú dnes, rovnako ako aplikácie webové, veľmi populárne, ako medzi užívateľmi, tak aj medzi firmami. Zamyslime sa, prečo to tak je. Je to veľmi jednoduché.
Pokiaľ si užívateľ nainštaluje našu aplikáciu, tak ju má vždy hneď po ruke a jej spustenie mu dá minimálnu námahu, stačí akurát kliknúť na ikonu niekde na ploche. Ďalej pre neho môže byť mnohokrát výhodou aj to, že väčšinu obsahu aplikácie môže prechádzať offline, napríklad pri ceste metrom.
Pre nás, pre vývojárov, potom majú mobilné aplikácie výhodu v tom, že užívateľov môžeme jednoducho informovať o novinkách, výhodách atď. prostredníctvom notifikácií priamo na jeho telefón a zvýšiť tým šancu niečo predať. Ako bonus ešte dostaneme informácie o jeho zariadení, ako je napríklad poloha, čím môžeme cieliť naše ponuky.
Znie to dobre, že? Vývoj mobilných aplikácií má však aj svoje úskalia. V súčasnej dobe existujú dve dominantné mobilné platformy - Android a iOS. Pre každú z nich sa používa iný programovací jazyk. Ak navyše chceme podporovať aj desktopové platformy (Windows a macOS), tak razom namiesto dvoch jazykov musíme ovládať minimálne tri:
- Android - Java (kurz Android - Mobilné aplikácie v Jave) alebo Kotlin (kurz Android - Tvorba mobilných aplikácií v Kotlin
- iOS – Swift (kurz iOS - Vyvíjame mobilné aplikácie vo Swift
- macOS – Swift (kurz macOS - Desktopové aplikácie vo Swift
- Windows – C# (napríklad kurz WinUI 3 - Okenné aplikácie v C# .NET) alebo C++.
Multiplatformné aplikácie
Riešením vyššie spomínaného problému sú multiplatformné alebo tiež cross-platform aplikácie. Multiplatformnú aplikáciu stačí napísať iba raz, ale pritom je možné ju rozbehnúť na niekoľkých platformách (operačných systémoch). Zdieľame tak jeden zdrojový kód pre viac platforiem, čím značne obmedzujeme náklady a predovšetkým potrebný čas na vývoj a následnú údržbu.
Multiplatformné aplikácie sú na vzostupe, preto dnes máme na výber z množstva frameworkov, pomocou ktorých ich môžeme tvoriť. Medzi najznámejšie patrí Flutter, React Native (kurz React Native) a práve .NET MAUI. V tomto kurze sa zameriame na posledný spomínaný.
.NET MAUI
.NET Multi-platform App UI, skrátene len .NET MAUI, je framework pre vývoj natívnych multiplatformných aplikácií spravovaný firmou Microsoft. Vychádza zo staršieho frameworku Xamarin.Forms (kurz Xamarin - Mobilná aplikácia v C# .NET), ktorý bol jedným z prvých v tomto odvetví. .NET MAUI si zo Xamarin.Forms berie to najlepšie a pridáva k tomu moderné technológie a princípy, ako je napríklad vstavaná dependency injection (kurz Dependency injection a softvérovej architektúry). .NET MAUI máme k dispozícii od verzie .NET 6.
.NET MAUI podporuje nasledujúce operačné systémy:
- Android,
- iOS,
- macOS (pomocou technológie Mac Catalyst
- Windows,
- Tizen (komunitou podporovaný).
Hlavným cieľom .NET MAUI je poskytnúť jednotné aplikačné rozhranie alebo API pre prístup k funkcionalitám jednotlivých operačných systémov.
V tomto kontexte budeme API (A pplication P rogramming Interface) chápať ako triedy a ich metódy, ktoré máme v .NET k dispozícii a pomocou ktorých môžeme nejakú funkcionalitu používať.
Medzi tieto funkcionality patria napríklad:
- nástroje na tvorbu užívateľského rozhrania,
- príjem a spracovanie užívateľských vstupov (dotyk, myš, klávesnica…),
- správa životného cyklu aplikácie,
- prístup k senzorom zariadenia a mnohé ďalšie.
Komponentová architektúra
Užívateľským rozhraním chápeme časť aplikácie, ktorú vidí používateľ as ktorou priamo interaguje. V prípade mobilných a desktopových aplikácií sa tak jedná predovšetkým o samotné okno aplikácie a tlačidlá, textové polia, popisky a ďalšie prvky v ňom.
.NET MAUI nám ponúka množstvo hotových komponentov, z ktorých užívateľské rozhranie jednoducho poskladáme. Ide o spomínané tlačidlá, textové polia, posuvníky, popisky a ďalšie komponenty, ktoré Microsoft označuje ako controls (slovensky ovládacie prvky alebo niekedy tiež „kontrolky“). Framework nám samozrejme nebráni v tvorbe vlastných ovládacích prvkov, čo však nie je príliš často nutné. Všetky ovládacie prvky sa v predvolenom nastavení držia dizajnu zodpovedajúceho operačného systému, aby zapadali do jeho celkového vizuálu. Počas kurzu si rad ovládacích prvkov popíšeme a naučíme sa s nimi pracovať.
Prečo zvoliť .NET MAUI
V čom .NET MAUI vyniká oproti ostatným? Pravdepodobne najväčšou výhodou je samotný .NET, vďaka ktorému máme prístup k veľkému množstvu odladených knižníc a nástrojov so zaručenou dlhodobou podporou.
Multiplatformné aplikácie nie je vždy možné písať iba pomocou zdieľaného kódu, ktorý je nezávislý na konkrétnej platforme. Niekedy sa jednoducho nevyhneme potrebe pristupovať k funkcionalitám a knižniciam špecifickým pre určitú platformu. Výhodou .NET MAUI je, že aj takýto kód je možné písať v C#. Iné multiplatformné technológie túto možnosť neponúkajú a vyžadujú v takýchto prípadoch písanie kódu v jazyku danej platformy.
S .NET MAUI tak dokážeme celú našu aplikáciu napísať v jazyku C# a nemusíme sa učiť žiadny iný.
Vykresľovanie ovládacích prvkov
V neposlednom rade môže byť výhodou aj to, ako .NET MAUI pristupuje k vykresľovaniu ovládacích prvkov používateľského rozhrania. Každý operačný systém poskytuje vlastnú sadu ovládacích prvkov, z ktorých je možné tvoriť užívateľské rozhranie. Také ovládacie prvky označujeme ako natívne alebo špecifické pre platformu (anglicky platform-specific). Ovládacie prvky v .NET MAUI sú iba jednotnou abstrakciou nad týmito natívnymi ovládacími prvkami.
Predstavme si, že v .NET MAUI vložíme do aplikácie napríklad tlačidlo. Pri následnom zostavení tejto aplikácie pre Android sa použije tlačidlo poskytované knižnicami Androidu, pri zostavení aplikácie pre iOS sa potom použije tlačidlo z iOS a tak ďalej:
Každá platforma sa teda sama postará o to, ako sa má tlačidlo vykresliť a ako treba vizuálne reagovať na kliknutie. Toto samozrejme platí nielen pre tlačidlá, ale pre všetky ovládacie prvky. Výsledkom je, že naše aplikácie budú vždy zodpovedať zvyklostiam danej platformy a poskytovať tak príjemný užívateľský zážitok.
Alternatívny prístup k vykresľovaniu ovládacích prvkov ponúka napríklad Flutter alebo Avalonia. Tieto frameworky nespoliehajú na natívne ovládacie prvky, ale všetko si vykresľujú samy.
Vývojové prostredie
.NET MAUI aplikácie možno vyvíjať na operačnom systéme Windows alebo macOS. Pre vývoj iOS a macOS aplikácií je však potrebné mať k dispozícii operačný systém macOS. iOS ani macOS totiž nemožno oficiálnou cestou emulovať na Windows. Podobne to platí aj pre Windows aplikácie, pre ktoré potrebujeme mať k dispozícii systém Windows (ten však možno emulovať na macOS napríklad pomocou Parallels Desktop).
Čo sa týka vývojového prostredia, tak na Windows môžeme použiť buď:
- Visual Studio 2022 a novšie,
- Visual Studio Code s rozšírením pre .NET MAUI
- alebo Rider od JetBrains.
Pre začiatok je najvhodnejšie Visual Studio na Windows. Značnú časť konfigurácie vývojových nástrojov a knižníc totiž vyriešia automaticky za nás, čo sa určite hodí. Komponent, ktoré sa musí vhodne poskladať, aby bolo možné aplikáciu zostaviť na všetkých podporovaných systémoch, nie je práve málo. Práve preto aj my budeme v tomto kurze pracovať s Visual Studio na Windows.
Postup prípravy Visual Studio Code pre vývoj .NET MAUI aplikácií nájdeme v oficiálnej dokumentácii.
Príprava Visual Studio
Vo Visual Studio je nutné mať nainštalovanú sadu funkcií Vývoj .NET Multi-Platform App UI (.NET Multi-platform App UI development). To overíme nahliadnutím do Visual Studio Installer, prostredníctvom ktorého sme si Visual Studio nainštalovali. Spustíme teda Visual Studio Installer, nájdeme nami používanú inštaláciu Visual Studio a klikneme na Zmeniť (Modify):
Otvorí sa nám okno so všetkými dostupnými sadami funkcií a komponentmi. K rovnakému oknu sa prípadne môžeme dostať kliknutím na položku Tools v aplikačnom menu Visual Studio a voľbou položky Get Tools and Features…. Uistíme sa, že máme zaškrtnutú sadu Vývoj .NET Multi-Platform App UI (.NET Multi-platform App UI development), prípadne ju zaškrtneme a potvrdíme jej inštaláciu:
Ak je to možné, Visual Studio si ešte aktualizujeme, aby sme mali aktuálnu verziu .NET a všetkých nástrojov.
.NET MAUI ešte stále obsahuje množstvo chýb, ktoré vývojári postupne opravujú a pravidelne vydávajú servisné aktualizácie. Preto je vhodné vždy pracovať s tou najnovšou verziou Visual Studio a teda aj najnovšou verziou .NET a .NET MAUI.
V budúcej lekcii, Prvý .NET MAUI aplikácie , si vytvoríme svoju prvú multiplatformnú aplikáciu v .NET MAUI. Okrem iného si ukážeme, ako túto aplikáciu spustiť, a zoznámime sa so štruktúrou .NET MAUI projektu.