Blog
Blog HelionBlog HelionBlog HelionBlog Helion
  • Artykuły
  • Autorzy
  • Recenzje
  • Konkursy

Xamarin.Forms — czy nadaje się do poważnych projektów?

    Blog.helion.pl Artykuły Xamarin.Forms — czy nadaje się do poważnych projektów?
    NastępnyPoprzedni

    Xamarin.Forms — czy nadaje się do poważnych projektów?

    By Jerzy Piechowiak | Artykuły, Programowanie | Brak komentarzy | 12 maja, 2017 | 0

    W pierwszej połowie 2016 roku Microsoft dokonał oficjalnego przejęcia Xamarina. Dzięki temu posunięciu stał się właścicielem firmy, która dostarcza technologię pozwalającą na pisanie aplikacji mobilnych na systemy Google, Apple oraz własne. Pewnym ciekawym aspektem tej sytuacji jest opcja Xamarin.Forms. Przy pewnych założeniach zaoferuje nam ona multiplatformowe rozwiązanie, w którym współdzielona część może stanowić nawet ponad 95% całego kodu na każdej z platform docelowych.

    Na papierze to wszystko brzmi pięknie, a jak w rzeczywistości wygląda praca z tym rozwiązaniem? Czy rzeczywiście jest tak kolorowo? Na te i inne pytania postaram się odpowiedzieć w dzisiejszym tekście.

     

    Mobilny development — realia

    Realia mobilnego developmentu są takie, że do oprogramowania mamy kilka systemów wykorzystujących różne języki programowania. Choć w praktyce dziś głównie liczą się Android (prawie 88% udziału w rynku według ostatnich badań) oraz iOS, to zdarzają się sytuacje, w których pojawiają się klienci zainteresowani systemem ze stajni Microsoftu. Rynek dąży jednak do duopolu, w którym możemy dość jednoznacznie wskazać lidera — niewątpliwie jest nim system od Google.

    W związku z tym, jeśli chcemy wystartować na poważnie z nowym projektem wykorzystującym aplikacje mobilne jako część strategii, to wariantem minimum jest przygotowanie programów w wersji zarówno pod Androida, jak i iOS (opcjonalnie również pod Windows). Przygotowanie projektu pod dwa-trzy różne systemy niesie ze sobą oczywiście konieczność posiadania dwóch (trzech) równorzędnych zespołów deweloperskich, z których każdy zadba o inny system. Nie muszę chyba mówić, jak bardzo może to być kłopotliwe. Oprócz tego, że ponosimy koszty takiego rozwiązania, musimy utrzymywać dwie aplikacje w różnych językach, które powinny mieć w miarę możliwości wspólną logikę biznesową.

    Właśnie w sferę takich problemów wchodzi Xamarin, który dostarcza wspomniane w tytule rozwiązanie Xamarin.Forms, a także alternatywne — Xamarin.Platform, pozwalające na współdzielenie kodu, głównie w sferze backendowej. Zaletą obu rozwiązań jest to, że używamy jednego języka do wszystkich systemów — C#. Każde z nich ma poza tym plusy i minusy, szerzej na ten temat pisałem na swoim blogu. W mojej pracy zdecydowaliśmy się skorzystać z tej pierwszej opcji — poniżej znajdziecie kilka konkluzji, do których doszedłem po prawie pół roku kodowania w Xamarin.Forms.

     

    Na papierze — idealnie

    „Na papierze” (na stronie produktu) Xamarin.Forms wygląda wręcz idealnie. Kilkadziesiąt wspólnych kontrolek, XAML, C# oraz ogólna szybkość i prostota w tworzeniu aplikacji. Twórcy są przed nami szczerzy tak naprawdę tylko w kwestii jednego problemu — bardziej natywne doświadczenie uzyskamy, stosując rozwiązania z Xamarin.Platform.

    W praktyce ta technologia serwuje nam większą liczbę problemów.

    W sytuacji gdy mamy konkretny projekt i nie możemy sobie pozwolić na kompromisy, prawdopodobnie okaże się, że i tak będziemy musieli skorzystać z natywnych elementów oferowanych przez Xamarin.Platform. Oczywiście będziemy mogli skorzystać z C#, ale może się okazać, że odsetek współdzielonego kodu spadnie z zakładanych ponad 90% do poziomu 70 – 80%. Konieczna w tym przypadku może być większa znajomość natywnych rozwiązań.

    Nawet jeśli będziemy chcieli wycisnąć maksymalnie dużo z części wspólnej, to i tak nie obędzie się przynajmniej bez podstawowej znajomości rozwiązań systemowych. Wariantem minimum jest choćby konieczność konfiguracji obrazków per system, manifestu z Androida czy pliku Info.plist z iOS.

    Sporym problemem jest również kontrolka listy. Standardowe XAML-owe ListView jest bardzo powolne i działa tylko wertykalnie. Brakuje mu układu horyzontalnego. Na NuGecie dostępna jest paczka z CarouselView, która potencjalnie mogłaby rozwiązać ten problem, ale na razie jest ona dość niestabilna, zawiera sporą liczbę błędów, a ponadto nie do końca spełnia założenia horyzontalnej listy jako takiej (CarouselView zakłada jeden element na całą szerokość ekranu). Dlatego też w sytuacji, gdybyście chcieli mieć w swojej aplikacji szybkie i wszechstronne listy, to prawdopodobnie będziecie musieli również sięgnąć po elementy natywne.

    Indywidualnego podejścia będą wymagały także różne elementy charakterystyczne dla wspieranych systemów, których twórcom Xamarina nie udało się uwspólnić. Do takiego grona należy zaliczyć np. pływające przyciski na Androidzie.

    Problemem mogą być też błędy po stronie Xamarin.Forms — czasem po prostu trzeba poczekać na kolejną wersję paczki nugetowej.

    Mimo wspomnianych wyżej problemów da się, po pokonaniu kilku przeciwności losu, dość przyjemnie korzystać z tej technologii. Pisanie w XAML-u rzeczywiście jest szybkie. Warto również pomyśleć o MVVM, który pozwala na odpowiednią separację warstw aplikacji.

    Xamarin.Forms po dwóch latach od uruchomienia wciąż ma swoje problemy, ale każda kolejna wersja przynosi coraz więcej nowych możliwości, optymalizację, stabilizację, a także poprawki powstałych wcześniej błędów. Rozwiązanie coraz bardziej nadaje się również do komercyjnych zastosowań, o ile klient nie wymaga bardzo natywnych layoutów.

    Warto pamiętać, że programowanie pod Xamarin.Forms nie spowoduje, że nie będziemy musieli martwić się tym, że tworzymy oprogramowanie pod różne systemy. Wynikowo wciąż będziemy uzyskiwać paczki pod różne platformy, które mają swoją specyfikę.

     

    Jerzy Piechowiak

    Altcontroldelete.pl

     


     

     Szukasz informacji o Xamarin? Kliknij TU lub zerknij poniżej:

           

     

    microsoft, xamarin
    Avatar

    Jerzy Piechowiak

    Więcej postów od Jerzy Piechowiak

    Podobne posty

    • Startujemy!

      By Helion | Brak komentarzy

      Witaj na blogu Wydawnictwa Helion! Po kilkutygodniowej pracy w końcu uruchamiamy naszego bloga. Mamy nadzieję, że będziesz tu częstym gościem. Czekamy na Twoje opinie, komentarze i pomysły! 

    • Mnemonik SOLID — S jak Single Responsibility Principle

      By Helion | Brak komentarzy

      Bardzo lubię powiedzenie „lepiej nie wymyślać koła od nowa”, ponieważ pasuje do wielu obszarów naszego codziennego życia, w tym programowania. Pisząc kod, bardzo często rozwiązujemy problemy, nad którymi ktoś już wcześniej pracował.

    • Jednominutowy kurs asertywności dla programistów

      By Helion | Brak komentarzy

        Gdybym miał wybrać jedną umiejętność, która poprawi Twoją efektywność od teraz, to jest nią asertywność. Żadna z istniejących technik nie zadziała, jeśli będziesz zgadzać się na wykonanie każdego zadania, które ktoś próbuje Ci podsunąć.

    • „Software Craftsman” – recenzja książki

      By Helion | Brak komentarzy

      13 lutego 2001 roku w ośrodku wypoczynkowym Snowbird w USA (stan Utah) wydarzyło się coś, co miało w globalnej skali odmienić postrzeganie procesu wytwarzania oprogramowania. Tego dnia siedemnastu wybitnych specjalistów i praktyków podpisało się podCzytaj więcej…

    • SEO, czyli sztuka optymalizacji witryn dla wyszukiwarek [FRAGMENT]

      By Helion | Brak komentarzy

      Witajcie! Właśnie do sprzedaży trafiła książka SEO, czyli sztuka optymalizacji witryn dla wyszukiwarek, czyli kontynuacja cenionego podręcznika do SEO z 2013 roku. Dlaczego warto po niego sięgnąć?  Poleca sam Brian Tracy:

    • Mnemonik SOLID — O jak Open/Closed Principle

      By Helion | Brak komentarzy

        Tworząc oprogramowanie, bardzo często stoimy przed dylematem: czy pisać kod szybko, czy porządnie. Oczywiście, o ile tylko mamy możliwość, wybierajmy tę drugą opcję, jednak taka decyzja generuje nowy problem, ponieważ na wczesnym etapie procesuCzytaj więcej…

    • Ta książka tak naprawdę nie jest o języku C [FRAGMENT]

      By Helion | Brak komentarzy

      Proszę, nie czuj się oszukany, gdy powiem, że ta książka nie ma na celu nauczenia Cię programowania w języku C. Wprawdzie dowiesz się, jak tworzyć programy w C, ale najważniejsza umiejętność, jaką możesz zdobyć podczasCzytaj więcej…

    • Video marketing nie tylko na youtube, czyli co musisz wiedzieć, żeby w świecie video uniknąć falstartu! [RECENZJA]

      By Helion | Brak komentarzy

      Taka książka musiała prędzej czy później powstać. Tym bardziej cieszy fakt, że od razu zajął się nią ktoś taki jak Magda Daniłoś. Magda video marketing ma we krwi. Współtworzy wyspecjalizowaną w nim OFFON Agency, jestCzytaj więcej…

    NastępnyPoprzedni

    Znajdź post

    Bądźmy w kontakcie

    Książka dnia

    Algorytmy, struktury danych i techniki programowania dla programistów Java

    Autor: Piotr Wróblewski

    Cena: 33.50 zł 67.00 zł
    (Cena e-booka: zł zł)

    O 33,5zł taniej!

    kup teraz

    Ostatnie wpisy

    • Błyskawiczny kurs pisania skryptów powłoki
    • Przykładowa aplikacja webowa zaimplementowana w ASP .NET Core
    • Wprowadzenie do .NET Core: instalacja, konfiguracja, pierwsza aplikacja w systemie Linux
    • Grupa Helion zaprasza na szkolenia stacjonarne!
    • Hello World! Czym jest programowanie?

    Tagi

    .net agile altcontroldelete asp.net c# czysty kod debugowanie design patterns e-biznes emarketing Google Google Analytics hacking Jerzy Piechowiak kod kodowanie Krzysztof Marzec książka Maciej Dutko magazyn programista Magdalena Daniłoś marketing MVVM onepress organizacja czasu praca prograista programista programowanie prokrastynacja rafał kocisz reklama rozwój software craftsman SOLID startup techniki programowania testowanie video marketing visual studio WPF wzorce projektowe youtube zarządzanie czasem zarządzanie projektami

    Archiwum

    • lipiec 2017
    • czerwiec 2017
    • maj 2017
    • kwiecień 2017
    • marzec 2017
    • luty 2017
    • styczeń 2017
    • grudzień 2016
    • listopad 2016
    • październik 2016
    • wrzesień 2016
    • lipiec 2016
    • czerwiec 2016
    Blog wydawnictwa
    Informatyka w najlepszym wydaniu
    Strona wydawcy:
    www.helion.pl
    Księgarnia Helion.pl
    Nowości
    Bestsellery
    Promocje
    Bądźmy w kontakcie:
    Chcesz zostać autorem?
    Masz pytania do redakcji?
    Napisz do nas »
    • Artykuły
    • Autorzy
    • Recenzje
    • Konkursy
    Blog Helion