Xamarin – intellisense i breakpointy

Już wczoraj szykowałam się do opisania jak bardzo ucieszyło mnie dodanie intellisense do XAML’a w Xamarin dla Visual Studio. Tak – znalazło się w najnowszych aktualizacjach.
Gdybym jednak te aktualizacje robiła regularnie już ponad tydzień temu odkryłabym, że pojawiła się również regresja w postaci problemów z debugowaniem na iOS z VS. Problem ten już kiedyś się pojawił i był rozwiązany. Mianowicie w trybie debug aplikacja nie zatrzymuje się na breakpointach… Tym samym moja radość z nowych aktualizacji nie trwała długo.
Na szczęście jest obejście na ten problem: https://bugzilla.xamarin.com/show_bug.cgi?id=29628#c5

Nie przestaje mnie dziwić, iż Xamarinowanie zdaje się być dużo trudniejsze na platformę iOS niż Android, chociaż to iOS jest popularniejszy. Pytanie czy to ekipa Xamarina nie nadąża za iOSem czy iOS podkłada kłody pod nogi konkurencji…

Xamarin Forms – iOS (Visual Studio + Buildserver na Macu)

No cóż – dalszy ciąg przygód z Xamarin Forms nadal nie napawa mnie optymizmem. Zacznę od dobrych rzeczy – koledzy używający go do robienia Androidowej wersji mają dużo mniej problemów ze środowiskiem Xamarin. Podobnie jak ja korzystają z Visual Studio, tyle że z 2013. Ja używam 2012.

Ze złych rzeczy – Xamarin iOS nieprzerwanie raczy mnie różnymi „funkcjonalnościami”:

– nie działa deployment, tudzież debuging aplikacji na iPadzie. Z tego co czytałam jakiś czas temu, któraś kolejna wersja Xamarina zepsuła możliwość deployowania aplikacji iPadowych bezpośrednio na to urządzenie. O ile mi wiadomo nie zostało to naprawione do tej pory. Dlatego też debugging robię tylko na emulatory a deployment od wielkiego święta bezpośrednio z Maca.

– można sparować z buildserverem na Macu tylko jedną instancję Visual Studio. Gdybym chciała dwie – nie da się. W związku z tym nie jestem w stanie się całkowicie uniezależnić od maszynki Macowej. Tym bardziej, że parowanie potrafi się zepsuć – tak po prostu bez żadnego powodu i trzeba procedurę powtarzać.

– brakuje Intellisense w XAMLu (VS2012 + Xamarin) – w związku z czym jeśli chcę sprawdzić czy mogę użyć jakiejś property czy taga, muszę googlać lub sprawdzać poprzez próbę uruchomienia emulatora.

– taka próba uruchomienia wówczas kończy się komunikatem o błędzie wymieniającym błędnego taga albo też cichym crashem.

– emulator też potrafi się zawiesić podczas stopowania procesu debugowania – pomaga albo cierpliwe poczekanie aż wszystko się porządnie porozłącza (ale po trzecim razie w ciągu dnia cierpliwość się człowiekowi kończy i można po prostu wyłączyć emulator, co również spowoduje przerwanie procesu debugowania.

– czasem też nie działa mi Intellisense w code behind. Aczkolwiek widziałam VS 2013 z Resharperem, w którym działa Intellisense w XAMLu, więc może są jakieś sposoby na to.

Generalnie w tym momencie najbardziej rozczarowuje mnie fakt, iż nie mogę po prostu tego Maca gdzieś postawić daleko i więcej na niego nie patrzeć – byle by tylko budował te aplikacje i deployował na iPada. A brak Intellisense doprowadza mnie po prostu do szału, bo zmniejsza efektywność i szybkość o jakieś 2/3.

Xamarin Forms – początek przygody

Chciałam, to mam – początek przygód z Xamarin Forms.

Takimi oto wyjątkiem zaatakowało mnie ostatnio Visual Studio. Jak widać na screenshocie wyjątek pojawia się na zakomentowanym kodzie. Zakomentowałam go, by sprawdzić co jest nie tak z tą funkcją, bo wyjątek pojawiał się już wcześniej, mimo, że błąd, który go powodował naprawiłam chwilę temu.

Null Reference Exception

Następnym krokiem było usunięcie tego kodu, przestawienie kolejności funkcji itp. Niestety wyglądało na to, że wyjątek uczepił się jak rzep 46ej linijki i nijak nie chciał zniknąć.

Powód: otóż Xamarin Forms w Visual Studio zdarza się usunięcie jakiegoś projektu w danej solucji z listy budowanych. Listę projektów w naszej solucji wraz z informacją czy mają być budowanie czy nie mamy dostępną pod prawym kliknięciem na solucji -> Properties -> Configuration Properties. Jest tam m.in. checkbox „Build”. Jak się okazuje w Xamarin Forms, ten checkbox bywa czasem samoczynnie (nie udało mi się do tej pory ustalić czy jest jakiś konkretny tego powód) odznaczany.

Tak właśnie się stało, gdy budowałam projekt z którego pochodzi powyższy screen. Wyskoczył mi wyjątek, poprawiłam go, następnie checkbox „Build” się odznaczył i solucja ciągle miała w pamięci stary kod a więc czego bym nie robiła nic się nie zmieniało.

Zatem zasada numer 1 Xamarin Forms: Sprawdzać czy wszystkie projektu w solucji mają zaznaczony checkbox „Build”.

Xamarin Studio – nie tylko ja uważam, iż nie wart jest swojej ceny

Znaleziona dziś na forum Xamarina opinia:

I wonder if Xamarin actually employ any testers on their VS team as every release breaks something. I really think they should change their pricing to give VS away for free, the extra cost is a joke for a product that is in such a bad state.

Niestety w pełni się z tą opinią zgadzam.
Źródło tutaj.

Xamarin Studio – Split View iOS

Któregoś dnia chciałam użyć Split View w aplikacji iOS. Niestety okazało się, że tutorial na temat jak używać tej kontrolki znajdujący się na stronie Xamarina nie za bardzo sprawdza się w rzeczywistości. Składa się z dwóch części – w pierwszej jest jakiś kawałek kodu do ściągnięcia, w drugiej opis „zrób to sam”. Niestety po złożeniu wszystkiego kod nie dość, że nie działa, to nawet się nie kompiluje.

Może kiedyś, gdy to naprawią, ten wpis się zdezaktualizuje, ale na dzień dzisiejszy opisy ze strony Xamarina nie działają.

Musiałam jednak skleić to wszystko ze sobą, tak by działało a efekt umieściłam na githubie. Może komuś zaoszczędzi trochę czasu na naprawianiu tutorialowego skryptu. Swoją droga można by się spodziewać czegoś więcej po tak drogim środowisku pracy;)