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”.