Wyślij zapytanie Dołącz do Sii

Na początku roku 2021 roku Microsoft przedstawił światu najnowszą i zarazem ostatnią wersję frameworka Xamarin.Forms, oznaczoną numerem 5.0. Tym samym „Formsy”, jak je czasami pieszczotliwie określam, powoli kończą swój cykl życia i jeszcze tylko do listopada 2022 roku, będą otrzymywały nowe funkcjonalności oraz poprawki.

Coś się kończy, coś się zaczyna…

I moglibyśmy w zasadzie przejść nad tym do porządku dziennego, gdyby nie jeden mały szkopuł. Mamy luty 2022, a o finalnej wersji MAUI (następcy Xamarin.Forms) ani widu, ani słychu. Gdzieś tam, w czeluściach Internetu, można natrafić na informację, że wszystko zmieni się w już II kwartale bieżącego roku, czyli całkiem niedługo. Jednak obecnie, od ponad 12 miesięcy, jesteśmy zmuszeni do wykorzystywania czegoś, co wkrótce przestanie być rozwijane.

Nowe projekty – co z nimi?

Startując z nowym mobilnym projektem w środowisku .NET, albo skorzystamy z wersji beta MAUI, albo, już na starcie, skażemy się na technologię, która w bliskiej przyszłości nie będzie wspierana. Oczywiście, stare aplikacje napisane w Formsach, według zapowiedzi Microsoftu, będzie można automatycznie migrować do MAUI poprzez dedykowane narzędzie .NET Upgrade Assistant.

Czy to się sprawdzi zgodnie z zapowiedziami twórców? Mam co do tego spore wątpliwości… i cichą nadzieję, że nie skończy się na aplikacjach typu „Hello World”.

Nowe projekty w Xamarin.Forms cały czas powstają i jeszcze jakiś czas będą powstawać. Oficjalna premiera Visual Studio 2022 i MAUI raczej niewiele tutaj zmieni. Aczkolwiek, z mojego developerskiego punktu widzenia, to mimo ryzyka bugów i niedociągnięć, jednak chciałbym jak najszybciej mieć tę przesiadkę za sobą.

Nowość goni nowość – prezentacja narzędzi

W temacie budowy aplikacji mobilnych Apple zaprezentował Swift UI, Google wycofał się z Javy na rzecz Kotlina, do gry wszedł Flutter i React Native, a Microsoft pracuje nad MAUI. W ostatnim czasie naprawdę sporo się dzieje. Nie można również zapomnieć o premierze nowej wersji .NET-a, który jest „fundamentem” Xamarina i Maui.

.NET 5

.NET 5 to kolejny krok do ulepszenia .NET Core i stworzenia multiplatformowej technologii. Wprowadza on kilka kluczowych zmian, poprawki wydajności, aktualizację F# oraz, co najważniejsze, nową wersję C# (oznaczoną numerem 9.0).

Kluczowe zmiany

Kilka nowości jakie rzuciły mi się w oczy to między innymi:

  • – słówko kluczowe init umożliwiające sprawne tworzenie właściwości możliwych tylko do inicjalizacji:
public string MyName { get; init; }
  • nowa definicja rekordów (obiektów, które składają się w całości z niemutowalnych właściwości), przy wykorzystaniu słowa kluczowego data:
public data class Invoice { public string Number { get; init; } }
  • wyrażenie with wykorzystywane do kopiowania obiektów rekordów:
var secondInvoice = invoice with { Number = ”1/1/2022” }

A na koniec taka ciekawostka:

  • nowy sposób deklaracji funkcji main, bez zagnieżdżenia się i z mniejszą ilością kodu:
using System; Console.WriteLine(”Hello World”);

Zmian jest całkiem dużo – jeśli ten temat interesuje Cię nieco bardziej, to odsyłam do dokumentacji.

MAUI – czego możemy oczekiwać?

Podobnie jak Xamarin.Forms, .NET MAUI jest wieloplatformową platformą typu open source do tworzenia aplikacji mobilnych i stacjonarnych.

Będzie wspierała:

  • Android,
  • iOS,
  • macOS (poprzez Mac Catalyst);
  • Windows.

MAUI obiecuje również głębszą integrację z innymi narzędziami i usługami firmy Microsoft. I ostatecznie – lepszą wydajność.

Ewolucja Xamarin.Forms

.NET Multiplatform App UI (.NET MAUI) to nic innego jak ewolucja „znienawidzonych” przez wielu programistów Xamarin.Forms. Każdy, kto kiedyś pisał aplikacje w Xamarin, na pewno natknął się na wiele problemów związanych, między innymi, z dostarczonymi kontrolkami. Problemy te podobno mają zostać wyeliminowane już wkrótce. Z jakim skutkiem? To się jeszcze okaże.

Zalety .NET MAUI

Dzisiaj można powiedzieć, że niewątpliwie główną zaletą MAUI jest rozszerzenie jego funkcjonalności na wszystkie systemy operacyjne (Android, iOS, macOS, Windows). Cała struktura kodu została uproszczona do pojedynczego projektu dedykowanego dla każdego wspieranego środowiska. Grafiki, czcionki, pliki tłumaczeń, można stworzyć raz, a .NET MAUI automatycznie skonfiguruje wszystko tak, aby działało identycznie, niezależnie od posiadanego systemu operacyjnego.

Oczywiście, z punktu widzenia programisty, dostęp do natywnych interfejsów API został w całości zachowany (.NET for Android i .NET for iOS). Nie zapominajmy również o zapowiadanej poprawie wydajności, co niewątpliwie powinno pozytywnie wpłynąć na odbiór aplikacji przez użytkowników.

Hot Reolad

Nie tak dawno temu, podczas pracy nad aplikacjami mobilnymi w Xamarin, w przypadku modyfikacji interfejsu użytkownika, chcąc poznać efekt zmian, musieliśmy ponownie kompilować cały projekt.
Łatwo sobie wyobrazić, jak bardzo wydłużało to pracę i frustrowało developerów. Drobna modyfikacja layoutu i kilka lub kilkanaście minut oczekiwania, aby dowiedzieć się, że… asset jednak mógłby zostać przesunięty kawałek w prawo. Uff…

Te czasy, na szczęście, mamy już dawno za sobą, a obecnie modyfikacja kodu XAML nie wymaga ponownej budowy całej aplikacji. Microsoft zdecydowanie ułatwił nam życie, ale nie zrobił tego wszędzie, gdzie powinien.

Drobne modyfikacje części odpowiadającej za logikę biznesową w dalszym ciągu wymagają od nas ponownej kompilacji projektu. Tutaj z zazdrością możemy popatrzeć na Fluttera czy React Native, które oferują pełne wsparcie dla Hot Reolad.

Na szczęście wszystko ma się zmienić w .NET MAUI, który, według zapowiedzi, ma w pełni wspierać tę funkcjonalność. Witamy Xamarina w XXI wieku!

MVVM

Obecnie, powszechnie wykorzystywanym wzorcem architektonicznym do budowy aplikacji mobilnych w Xamarin jest MVVM (ang. Model-View-ViewModel). W MAUI będzie on nadal wspierany i rozwijany. Nie to jest jednak w tym wszystkim najciekawsze…

MVU

To, co najbardziej nas interesuje, to natywne wsparcie dla wzorca Model-View-Update (MVU), wykorzystywanego do budowy interfejsów użytkownika za pomocą kodu. Moim zdaniem to właśnie jest największa rewolucja, jaką ma zaoferować nam następca Formsów. Warto również dodać, że takie podejście do budowy aplikacji mobilnych nie jest nowe. Microsoft stara się tutaj nieco dogonić Apple, który to już w 2019 roku zaprezentował światu Swift UI, wysyłając UI Kit na zasłużoną emeryturę.

Kilka słów podsumowania

Jak to będzie wyglądało w praktyce? Zamiast tworzyć interfejsy użytkownika przy wykorzystaniu dobrze znanych tagów XAML, wszystko będziemy mogli wykonać z poziomu kodu C#. Rozwiązanie zdecydowanie bardziej intuicyjne i dające nieco większe możliwości.

Taki sposób budowy aplikacji mobilnych przemawia do mnie zdecydowanie bardziej, niż budowa UI przy wykorzystaniu „zmodyfikowanych” tagów HTML-a.

A jakie jest Twoje zdanie?

4.5/5 ( głosy: 8)
Ocena:
4.5/5 ( głosy: 8)
Autor
Avatar
Łukasz Dudziński

W wielkim skrócie: programista, miłośnik nowych technologii i podróżowania. W wolnych chwilach prowadzi również bloga programistycznego, a zawodowo zajmuje się tworzeniem aplikacji mobilnych w Xamarin.

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Pokaż więcej artykułów

Bądź na bieżąco

Zasubskrybuj naszego bloga i otrzymuj informacje o najnowszych wpisach.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Natalia Competency Center Director

Get an offer

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

Aplikuj Aplikuj

Paweł Process Owner

Join Sii

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?