Xamarin – jak się do tego zabrać w 2017?

Należy pamiętać, że Xamarin jest rozwiązaniem, które nie sprawdzi się w każdej sytuacji. Warto wiedzieć w jakim typie aplikacji opłaca się po niego sięgnąć, żeby wydobyć cały potencjał jaki drzemie w tej technologii. Równie ważne jest środowisko w jakim pracujemy i posiadane przez nas doświadczenie.

Spis treści

Wstęp

W styczniu tego roku wróciłem do programowania zawodowo w Xamarinie – konkretnie w Xamarin.Forms. W przeszłości miałem już okazje pisać przez pół roku w tzw. Xamarin.Native – technologia bardzo mi się podoba i aby uporządkować posiadaną wiedzę, postanowiłem podzielić się w ramach tego posta swoim doświadczeniem z pracy przy użyciu Xamarina.

Co to jest Xamarin?

Xamarin pozwala na tworzenie natywnych aplikacji Android/iOS z wykorzystaniem języka C# i platformy .NET. Same aplikacje tworzymy w Visual Studio lub Xamarin Studio, a możemy do tego podejść na dwa sposoby: Xamarin.Native lub Xamarin.Forms (więcej o tych dwóch podejściach będzie w dalszej części posta). Xamarin od zeszłego roku jest dostępny dla wszystkich zainteresowanych, dzięki jego przejęciu przez Microsoft. Natomiast, sam kod źródłowy Xamarina został udostępniony na GitHub.

Kiedy użyć Xamarina?

Należy pamiętać, że Xamarin jest rozwiązaniem, które nie sprawdzi się w każdej sytuacji. Warto wiedzieć w jakim typie aplikacji opłaca się po niego sięgnąć, żeby wydobyć cały potencjał jaki drzemie w tej technologii. Równie ważne jest środowisko w jakim pracujemy i posiadane przez nas doświadczenie.

Poniżej przedstawiam kilka sytuacji, w których wg mnie użycie Xamarina może być dla nas najbardziej korzystne:

1. Aplikacje biznesowe (enterprise)

Aplikacje biznesowe (np. aplikacje dla biznesu, rządu, szkolnictwa, itp) posiadają dużą ilość logiki, którą należy zaimplementować w aplikacji. Można tutaj wymienić stworzenie warstwy sieciowej (dostęp do zewnętrznych zasobów), warstwy dostępu do danych (dostęp do lokalnej bazy danych) czy warstwy prezentacji (graficzny interfejs). Implementowanie tych wszystkich rzeczy na każdą z mobilnych platform z osobna może okazać się sporym kosztem dla budżetu projektu.

Dzięki Xamarinowi możemy współdzielić kod z logiką biznesową pomiędzy mobilnymi platformami (iOS, Android, WP). Zaoszczędzamy w ten sposób sporo pracy, jak i również późniejsze utrzymanie napisanego kodu będzie mniej kosztowne.

O czym warto wspomnieć to to, iż kod z warstwą prezentacji można współdzielić dzięki Xamarin.Forms – o czym będzie w dalszej części posta.

2. Utrzymanie aplikacji

Jeśli nasza aplikacja będzie istnieć na rynku przez dłuższy okres czasu (np. kilka lat) to Xamarin sprawdzi się świetnie przy jej utrzymaniu , z powodu posiadania wspólnej bazy kodu. Oprócz samego kodu aplikacji, należy wziąć również pod uwagę testy jednostkowe, które również trzeba utrzymywać.

Jeśli w aplikacji znajdziemy jakiś błąd to poprawiamy go w jednym miejscu zamiast na kilku platformach z osobna.  Jeśli zmieniamy logikę biznesową aplikacji, to znowu robimy to tylko w jednym miejscu.

Co więcej, mamy pewność, że zaimplementowana logika biznesowa będzie taka sama na wszystkich platformach. Doświadczenie pokazuje, że w przypadku aplikacji tworzonych z osobna na każdą platformę, występują zawsze jakieś rozbieżności w zaimplementowanej logice – dzięki Xamarinowi możemy uniknąć takich sytuacji.

3. Czas dostarczenia

Jeśli chcemy w krótkim czasie wypuścić gotową aplikację przeznaczoną na parę platform mobilnych, to Xamarin przyjdzie nam tutaj z pomocą. Dzięki wspomnianemu współdzieleniu kodu logiki biznesowej jak i interfejsu graficznego (przy podejściu Xamarin.Forms) będziemy w stanie przygotować aplikację szybciej niż w tradycyjnym podejściu tworzenia oddzielnych aplikacji natywnych.

4. Posiadany zespół

Podczas decydowania czy Xamarinem jest sposobem w jakim chcemy tworzyć aplikację, należy mieć na uwadze to jakie kompetencje posiada nasz zespół. Jeśli większość naszego zespołu stanowią programiści .NET, to łatwiej będzie im przejść na Xamarina niż uczyć się programowania natywnego aplikacji mobilnych na iOS lub Android. Co najważniejsze programiści .NET będą mogli wykorzystać posiadane przez siebie już doświadczenie.

Na szczególną uwagę zasługują tutaj programiści Windows Phone, którzy tworzą graficzny interfejs przy pomocy języka XAML. Język ten jest z kolei wykorzystywany w Xamarin.Forms – różnice implementacji XAML na WP i Xamarin.Forms są nieznaczne. Osobiście jako były programista WP, poświęciłem jeden wieczór na przerobienie tutoriali Xamarin.Forms i byłem już w stanie zacząć tworzyć aplikacje w tej technologii.

Warto również zwrócić uwagę na ilość dostępnych specjalistów iOS/Android na rynku. Boom na aplikacje mobilne spowodował, że takie osoby są coraz bardziej poszukiwane przez co musimy konkurować z innymi pracodawcami jeśli chcielibyśmy tworzyć natywne aplikacje mobilne. Może okazać się, że takie osoby będą zbyt drogie albo nie będą posiadali odpowiednich umiejętności albo nie będzie ich wcale na lokalnym rynku.

Przy zatrudnianiu natywnych programistów mobilnych należy wziąć również pod uwagę rozwój ich kompetencji. Jeśli nie mamy w firmie żadnych programistów natywnych to musielibyśmy stworzyć dla nich warunki do rozwoju. To wszystko oczywiście zajmuje czas i generuje koszty. Łatwiejsze, więc może okazać się dalsze rozwijanie posiadanych kompetencji .NET o naukę Xamarina.

W sytuacji gdy większość naszego zespołu stanowią programiści natywni, powinniśmy rozważyć użycie Xamarina, który implementuje SDK danej platformy w stosunku 1:1 – czyli wszystko to co jest dostępne w Javie i Objective-C możemy napisać w C#. Developerzy będą musieli więc nauczyć się tylko składni nowego języka, a posiadaną wiedzę odnośnie SDK będą mogli wykorzystać ponownie.

5. Prototypowanie

Jeśli nie mamy pewności czy tworzony przez nas produkt przyjmuje się na rynku to Xamarin ponownie przyjdzie nam z pomocą. Dzięki wspomnianym wcześniej m.in. wspódzieleniu kodu, jesteśmy w stanie stworzyć produkt szybciej i z mniejszym budżetem. Oczywiście każdy produkt tworzony jest po to, żeby odniósł sukces, jednak czasami po prostu to nie wychodzi. Dzięki Xamarinowi możemy zminimalizować potencjalne straty oraz stworzyć produkt szybciej a następnie poddać go weryfikacji przez rynek.

Możemy również przygotować działające na urządzeniu prototypu aplikacji i przedstawić je potencjalnemu klientowi. Na pewno lepiej będzie wyglądała działająca aplikacja na telefonie, z którą można wejść w interakcje niż tylko nasze zapewnienia o potencjalnym projekcie. Również szybciej będziemy mogli uzyskać feedback od klienta jeśli będzie on mógł sprawdzić aplikację na swoim telefonie.

Przykładowe projekty

Jak na razie miałem, przyjemność brać udział w dwóch projektach komercyjnych tworzonych w Xamarinie. Poniżej przedstawiam ich krótki opis jako przykład aplikacji dla których wybór Xamarina się sprawdza:

  • Pierwszą projektem była aplikacja mobilna dla pracowników opieki społecznej. Xamarin sprawdził się w tym projekcie świetnie z tego powodu, iż API, z którego korzystała aplikacja, zwracało bardzo surowe dane. Dopiero po stronie aplikacji mobilnej następowało wyliczenie szeregu rzeczy potrzebnych do działania aplikacji. Pisanie tak dużej ilości logiki biznesowej dla każdej platformy z osobna, zwiększyłoby znacznie budżet projektu.
  • Drugim projektem jest aplikacja mobilna ułatwiająca prowadzenie księgowości dla przedsiębiorców. Użytkownik aplikacji z poziomu telefonu otrzymuje możliwość wysyłania dokumentów bezpośrednio do księgowej. Xamarin ponownie okazał się tutaj dobrym wyborem, ponieważ trzeba było zaimplementować dużą ilość logiki biznesowej. Również czasu na dostarczenie pierwszej wersji projektu nie było zbyt wiele – dzięki współdzielniu kodu mogliśmy zredukować czas i koszty potrzebne do stworzenia działającej wersji.

Warto również zajrzeć na stronę Xamarina gdzie prezentowane są aplikacje używające ich technologii.

Xamarin.Native vs Xamarin.Forms

Jak już wspomniałem na początku tego posta, w przypadku Xamarina można wyróżnić dwa podejścia: Native oraz Forms. Wybór jednego podejścia albo drugiego jest kluczowy dla powodzenia całego projektu.

Na początku przyjrzyjmy się co sam Xamarin mówi o tych dwóch podejściach:

Xamarin.Forms:

  • Apps that require little platform-specific functionality
  • Apps where code sharing is more important than custom UI
  • Developers comfortable with XAML

Xamarin.Native:

  • Apps that use many platform-specific APIs
  • Apps where custom UI is more important than code sharing
  • Apps with interactions that require native behavior

Bazując na swoim osobistym doświadczeniu, moje wnioski dotyczące obu podejść są następujące:

Xamarin Forms:

  • Jeśli nie mamy doświadczenia w pisaniu natywnych aplikacji na Android/iOS/WindowsPhone, to podejście Xamarin.Forms może być dla nas. Zamiast nauki specyfiki paru platform mobilnych, uczymy się tylko jednej technologii – zmniejsza to bardzo drastycznie czas jaki potrzebujemy na naukę pisania aplikacji mobilnych
  • Jeśli zależy nam na pokazaniu działającej wizji naszej aplikacji to możemy traktować Xamarin.Forms jako narzędzie do prototypowania. Możemy szybko stworzyć działający prototyp aplikacji i zacząc zbierać feedback, który pozwoli nam na stworzenie aplikacji zgodnej z oczekiwaniami użytkowników
  • Xamarin.Forms jest dobrym wyborem jeśli posiadamy doświadczenie w pisaniu aplikacji Windows Phone lub WPF. Chodzi tutaj o znajomość języka XAML, który jest wykorzystywany właśnie w Xamarin.Forms. Osobiście poświeciłem jeden wieczór na przyswojenie podstawowej wiedzy z Xamarin.Forms i byłem już w stanie zacząć pisać aplikację z tej technologii, ponieważ mam doświadczenie jako programista Windows Phone
  • Aplikacje biznesowe są dobrym przykładem projektów, które zyskają najwięcej na podejściu Xamarin.Forms. W aplikacjach biznesowych najczęściej wyświetla się listy, detale elementów czy formularze do wprowadzania danych. Zazwyczaj nie mamy w takich aplikacjach żadnych wodotrysków w postaci bogatego UI. Xamarin.Forms sprawdza się w takich aplikacjach świetnie, udostępniając wiele gotowych komponentów.
  • Warto mieć na uwadzę, że Xamarin.Forms to ciągle relatywnie młoda technologia, która powstała w 2014 roku. Moim zdaniem, obecnie Xamarin.Forms wchodzi w etap stabilizacji. W Internecie można znaleźć wiele nagatywnych opinii odnośnie Formsów (np. https://news.ycombinator.com/item?id=9320929). Wiele z tych opinii zostało napisanych w początkowym okresie istnienia Formsów, które posiadały wtedy problemy wieku dziecięcego. Obecnie sytuacja się zmieniła i technologia poszła do przodu, poprawiając problemy jakie miała w przeszłości.
  • Xamarin.Forms wyrasta powoli na technologię, która może być w przyszłości wiodącym sposobem programowania w Xamarinie. Na keynote zeszłorocznej konferencji Evolve, większość czasu została poświecona na przedstawienie nowości w Formsach. Sytuacja w tym roku na pewno się powtórzy

Xamarin Native:

  • Xamarin mapuje API Androida oraz iOS w stosunku 1:1. Czyli wszystko to co udostępnia Google oraz Apple, możemy napisać w C#. Jest to bardzo ważne, bo dzięki temu mamy ułatwione zdobywanie nowej wiedzy. Jeśli nie wiemy jak coś zaimplementować to możemy odwołać się bezpośrednio do oficjalnej dokumentacji i przełożyć przykłady w Javie lub Objective-C na C#.
  • Jeśli znamy osoby piszące natywnie na daną platformę mobilna to możemy się się zwrócić do nich bezpośrednio o pomoc i przełożyć zaproponowane rozwiązanie na C#. Czyli tak samo jak w przypadku wyżej, mamy ułatwione zdobywanie wiedzy
  • W przypadku aplikacji wymagających stworzenia bogatego UI, który jest pixel-perfect to podejście Xamarin.Native sprawdzi się tutaj lepiej. W tym podejściu będziemy mieć całkowitą kontrolę nad renderowaniem UI na danej platformie

Przygotowanie środowiska pracy

Do pracy nad aplikacjami Xamarin będziemy potrzebować Visual Studio lub Xamarin Studio (wersje Community wystarczą do pracy). Oba środowiska są dostępne dla Windowsa jak i Mac OS.

Zaletą Xamarin Studio jest zdecydowanie jego szybkie działanie – chodzi  szybciej niż Visual Studio z ReSharperem. Minuesem Xamarin Studio jest właśnie brak ReSharpera. Jeśli jednak ktoś nie używa ReSharpera (są tacy?) to warto zainteresować się Xamarin Studio jako ciekawą alternatywą i sprawdzić czy będzie odpowiadać naszym potrzebą.

Warto mieć jednak na uwadze, że Xamarin Studio może w przyszłości zostać porzucone. W końcu po co Microsoftowi dwa oddzielne środowiska służące do tego samego? Można już zauważyć, że ta sytuacja powoli ma miejsce. Microsoft wydał niedawno Visual Studio na Mac OS, który jest tak naprawdę Xamarin Studio ze zmienionym logo.

W kontekście tworzenia aplikacji na Androida warto wspomnieć o emulatorach jakie są dostępne na rynku:

Warto zaznaczyć bardzo ważną rzecz, która jest brak możliwości kompilacji aplikacji iOS na Windows. Będziemy potrzebować Maca, żeby skompilować aplikację na platformę Apple – innej możliwości nie ma. Z tego powodu, możemy podejść do tego na dwa sposoby:

Opcja tańsza:

  • PC oraz Mac Mini – pracujemy na komputerze z Windowsem i kod iOS jest kompilowany na Macu przez tzw. Xamarin Mac Agent, który łączy się z poziomu Windowsa do Maca. Dzięki temu możemy też debugować kod bezpośrednio na emulatorach iOS znajdujących się na Macu.
  • Dzięki iOS Simulator możemy wyświetlić emulatorem iOS bezpośrednio na komputerze z Windowsem. Niestety ta opcja jest dostępna dopiero od Visual Studio w wersji Enterprise. Jeśli nie stać nas na zakup takiej licencji to pozostaje nam testowanie aplikacji iOS bezpośrednio na Macu. Możemy fizycznie przejść do Maca i testować naszą aplikację (takie przełączanie się między komputerami może być trochę meczące) lub możemy skorzystać np. z VNC Viewer z poziomu Windowsa, żeby połączyć się zdalnie do Maca
  • macincloud – jest to usługa, która pozwala nam na wykupienie zdalnego Maca na godziny. Warto jednak mieć na uwadze, czy wydane pieniądze na takiego Maca nie zwróciłyby się w postaci własnego Maca Mini

Opcja droższa:

  • Macbook Pro – jeden komputer do pracy. Plusem jest brak potrzeby przełączania się miedzy komputerami kiedy chcemy przetestować aplikację iOS. Minusem jest naprawdę duża cena, którą będziemy musieli zapłacić. Jeśli będziemy chcieli (a będziemy!) skorzystać z Visual Studio to trzeba użyć maszyny wirtualnej z Windowsem
  • Do obsługi wirtualizacji na Macu możemy wykorzystać np.:
    • VMware Fusion
    • Parallels Desktop
  • [aktualizacja 25.06.17] od niedawna jest dostępny Visual Studio na Maca jak i Rider od JetBrains. Szczególnie Rider zasługuje na uwagę, bo jest to środowisko, w którym został zintegrowany Resharper znany z Visual Studio. Ostatnio testuje Ridera bezpośrednio na Macu i wygląda bardzo obiecująco – polecam się przekonać samemu.

Osobiście, miałem okazje pracować z wykorzystaniem obu powyższych możliwości i najbardziej odpowiada mi pierwsza z kilku powodów:

  • używam Visual Studio z ReSharperem – jest to możliwe tylko na Windows
  • Pracując na maszynie wirtualnej z Windowsem (która była uruchomiona na Macu) miałem cały czas wrażenie, że pracuje właśnie na maszynie wirtualnej. Cały system działał zdecydowanie wolniej – szczególnie animacje systemowe, które w końcu wyłączyłem. Mimo testowania różnych konfiguracji maszyny wirtualnej, nie udało mi się znaleźć takiej konfiguracji, żeby praca na maszynie wirtualnej nie różniła się od pracy na fizycznym sprzęcie. Zdecydowanie wole mieć wysoki komfort pracy
  • Posiadałem już laptopa z Windowsem i potrzebowałem Maca tylko do kompilacji kodu iOS. Zakup Maca Mini nie nadwyrężył mojego budżetu. Jego koszt wyniósł około 2200 zł netto na fakturę, która została wrzucona w koszty prowadzenia działalności. Kupiłem najsłabszą konfigurację Maca Mini, w której zwiększyłem ilość dostępnego RAMu – z domyślnej wartości 4GB na 8GB. Taka konfiguracja w zupełności wystarcza mi do kompilacji kodu, a nawet do codziennego korzystania z Maca Mini jako komputera, na którym wykonuje np. przeglądanie Internetu, odbieranie poczty, pisanie tekstów, itp. Ważną dla mnie zaletą Maca Mini jest jego bezgłośna praca – jest w ogóle niesłyszalny. Z tego powodu wolę pracować (w zależności od tego co mam do zrobienia) na moim Macu Mini niż na laptopie z Windowsem, który jest zdecydowanie głośniejszy.
  • Zakup laptopa z Windowsem i Maca Mini jest tańszy niż zakup jednego Mackbooka Pro dla każdego programisty w zespole. W moim obecnym zespole posiadamy Maca Mini na dwóch programistów i jest to całkowicie wystarczające.

MVVM – Model-View-ViewModel

Aplikacje w Xamarinie tworzy się najczęściej z wykorzystaniem wzorca architektonicznego MVVM. Najważniejszym plusem korzystania z tego wzorca jest wspódzielnie logiki aplikacji między poszczególnymi platformami. View modele znajdować się będą w projekcie typu PCL (Portable Class Library), dzięki czemu będą mogły zostać wykorzystane w wersji aplikacji na platformę iOS/Android/WP. Do pozostałych korzyści wynikajacych z używania wzorca MVVM można zaliczyć m. in. niezależność logiki od sposobu wyświetlania danych; łatwość wykonywania testów; łatwość wykorzystania view modeli w innych widokach.

Poniżej został przedstawiony schemat wzorca MVVM:

Możemy tutaj wyróżnić 3 elementy:

  • View:
    • wyświetlanie danych
    • pełni funkcje wyłącznie prezentacyjną
    • nie powinien posiadać logiki biznesowej
  • View Model:
    • eksponuje model dla widoku
    • informuje widok o zmianach poprzez interfejs INotifyPropertyChanged
    • reaguje na akcje użytkownika poprzez tzw. komendy (interfejs ICommand), które są powiazane np. z przyciskami
    • wykonuje logikę biznesową zawartą w modelu i zwraca jej wynik do widoku
  • Model:
    • zawiera logikę biznesową

Przedstawione podstawy wzorca MVVM nie wyczerpują tematu, który jest rozległy i można by napisać osobny post na jego temat, dlatego poza prezentacją podstaw nie będę wchodzić w dalsze szczegóły.

W celu ułatwienia pracy ze wzorcem MVVM stworzono wiele bibliotek,  do których można zaliczyć najbardziej popularne przedstawione poniżej:

  • Mvvmcross:
    • Chyba najbardziej rozpowszechniona biblioteka wsród programistów Xamarina
    • Bardzo rozbudowana posiadająca wiele różnych funkcjonalności
    • Największym plusem tej biblioteki jest system pluginów, które są tworzone przez społeczność. Pluginy są praktycznie na wszystko czego będziemy potrzebować. Np. jeśli potrzebujemy dostępu do dysku to ściągamy plugin, który nam na to pozwoli. Pluginy posiadają interfejsy, które możemy użyć w części wspólnej kodu, a konkretne implementacje są rejestrowane na danej platformie
    • Moim zdaniem nadaje się lepiej do projektów większych
  • MVVM Light
    • Bardzo prosta biblioteka, która posiada małą ilość funkcjonalności
    • Moim zdaniem nadaje się lepiej do małych projektów
  • Caliburn.Micro
    • framework używany często przeze mnie przy projektach Windows Phone. Najbardziej podobają mi się w nim konwencje jakie biblioteka wprowadza w kontekście bindowania w XAML
  • Prism
  • ReactiveUI

Oprócz tych najbardziej znanych frameworków do MVVM można wyróżnić jeszcze kilka mniej mniej popularnych:

Na co jeszcze zwrócić uwagę?

Przedstawione informacje nie wyczerpują tematu Xamarina, który jest bardzo rozległy. Poniżej zamieszczam krótkie opisy zagadnień, na które moim zdaniem warto zwrócić uwagę:

  • Developer Center
    • oficjalna dokumentacja Xamarina, w której warto przejrzeć poradniki tworzenia aplikacji na iOS, Android czy Xamarin.Forms. Programista jest prowadzony krok po kroku po podstawach z każdego zagadnienia – obowiązkowe miejsce dla wszystkich zaczynających z Xamarinem
  • Automatyczne testy UI
    • Xamarin pozwala na tworzenie automatycznych testów UI przy pomocy Calabash’a
    • Testy UI można wykonywać na Androidzie i iOS
  • Xamarin Test Recorder
    • Narzędzie pozwalające wyklikać scenariusz testowy na emulatorze, a następnie stworzyć kod, który można przekopiować do naszych testów. Znacząco przyśpiesza tworzenie nowych testów UI
  • Xamarin Test Cloud
    • Usługa, która pozwala nam na uruchomienie automatycznych testów UI na ponad 2000 tysięcy prawdziwych urządzeń, dzięki czemu nie musimy sami ich wszystkich kupować, żeby przetestować naszą aplikację. Co więcej możemy wybrać na jakiej wersji systemu maja być uruchomione testy
  • Xamarin Profiler
    • Profiler pozwalający nam na sprawdzenie szeregu rzeczy związanych z wykonywaniem naszej aplikacji takich jak np. użycie pamięci RAM czy wykorzystanie CPU
    • Alternatywnie możemy użyć profilerów przeznaczonych do natywnych aplikacji iOS i Android. Np. do aplikacji Android można użyć profilera z Android Studio a do aplikacji iOS można użyc profilera z Xcode
  • Xamarin University
    • Usługa w ramach, której mamy możliwość odbycia lekcji, na których uczymy się różnych zagadnień związanych z Xamarinem.
    • W ramach Xamarin Univeristy możemy też zdobyć certyfikać, który będzie potwierdzać nabytą przez nas wiedzę
  • Xamarin Workbooks
    • Interaktywna dokumentacja, gdzie możemy wykonywać kod bezpośrednio z tzw. Workbook’a i wykonywać go nawet na emulatorze. Ciekawa forma nauki i możliwość szybkiego eksperymentowania
  • Xamarin Components
    • taki trochę NuGet w wydaniu Xamarina
  • HockeyApp
    • Platforma do dystrybucji naszej aplikacji w formie beta, ułatwiająca instalacje na urządzeniach zainteresowanych osób
  • Creating Mobile Apps with Xamarin.Forms
    • darmowy eBook o podstawach tworzenia aplikacji w Xamarin.Forms autorstwa Charles’a Petzold’a
  • Enterprise Application Patterns using Xamarin.Forms
    • darmowy eBook o tworzeniu architektury aplikacji pisanych w Xamarin.Forms
  • Społeczność
    • wybierając Xamarina nie będziemy pozostawieni sami sobie – wokół technologii zebrała się duża grupa osób chcących pomagać i dzielić się wiedzą. Szukać pomocy możemy na oficjalnym forum czy StackOverflow, warto również zajrzeć na GitHuba

Podsumowanie

Xamarin nabiera coraz większego rozpędu od momentu przejęcia przez Microsoft. Pojawia się coraz więcej ofert pracy co jest wynikiem większego zainteresowania klientów biznesowych technologią Xamarina. Moim zdaniem warto przynajmniej wiedzieć dlaczego i po co wykorzystywać Xamarina. Mam nadzieje, że ten post przybliżył Wam zagadnienia związane z Xamarinem.

  1. Xamarin – jak się do tego zabrać w 2017?

    Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl

    Odpowiedz

  2. Dobry wstęp dla każdego, kto nie wie co to Xamarin, a za tydzień ma być ekspertem. Sam popełniłem podobny, ale Twój znacząco go rozszerza, dobra robota! Tylko następnym razem pomyśl, czy nie warto podzielić go na kilka mniejszych, przeczytanie całego zajmuje trochę czasu, a niektórzy mogą szukać tylko kilku informacji, więc oznaczenie ich w tytule w oddzielnym wpisie może w tym pomóc. Mam nadzieje, że nie jest to Twój ostatni wpis o Xamarinie i liczę na jakieś smaczki z wykorzystania Xamarina w pracy, którymi warto się podzielić.

    Odpowiedz

    1. Hej Krystian,

      Dzięki za dobre słowo :) Zastanawiałem się nad podzieleniem wpisu na kilka mniejszych części, jednak ostatecznie zdecydowałem umieścić wszystko w jednym, żeby stworzyć kompleksowy poradnik dla osób zaczynających z Xamarinem. Dzisiaj dodałem spis treści na początku posta, żeby ułatwić nawigację po nim ;)

      Planuję kolejne wpisy o Xamarinie, więc stay tuned!

      Odpowiedz

  3. Świetny wpis! Zawiera dużo więcej informacji niż mój, tym bardziej – dobra robota! :)
    Ogólnie rzecz biorąc, w polskim internecie jest strasznie mało informacji o Xamarinie (a szkoda), więc wpisów o nim nigdy za wiele.

    Pozdrawiam!

    Odpowiedz

  4. Listy w Xamarin.Forms to patologia. Wolne z wyciekami pamięci. I tak trzeba pisać renderer’y na każdą platformę.

    Odpowiedz

    1. Hej Blazej,

      Formsowy ListView jak i cały Xamarin to rozwiązanie nie na każdy przypadek, wiec może po prostu się to u Ciebie nie sprawdziło ;)

      Odpowiedz

  5. Co to przechodzenie miedzy systemami to polecam Synergy (https://symless.com/synergy)

    Odpowiedz

    1. Hej Karter,

      Dzięki za polecenie Synergy. Korzystałem kiedyś przez jakiś czas i narzędzie jak najbardziej godne uwagi.

      Odpowiedz

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d blogerów lubi to: