Właśnie oglądam transmisję z konferencji Xamarin Evolve16. Dobra zmiana?
Xamarin. Co to jest?
Deliver native iOS, Android, and Windows apps using existing skills, teams, and code.
Z technologią zetknęłam się ponad rok temu. Dla mnie oznaczało to wtedy jedno: możliwość tworzenia mobilnych aplikacji na wszystkie platformy w języku C# z poziomu Visual Studio. Zbyt piękne, żeby mogło być prawdziwe? ;)
Projekt polegał na porcie istniejącej aplikacji napisanej pod Windows Phone (a więc C# + xaml). Zdecydowałam się na użycie Xamarin Forms, co miało w założeniu skutkować współdzieleniem kodu pomiędzy 3 projekty na poziomie 95%. Idealnie. Formatki budowane w xamlu, generowane do kontrolek specyficznych dla danej platformy i do tego kod w .necie. Aplikacja pobierała dane z serwisu WCF, pozwalała na ich edycję i zapis. Dochodziła do tego funkcjonalność skanowania kodów, wyświetlania i zapisywania zdjęć. Żadnej magii.
Nad projektem spędziłam ponad 260 długich godzin. Po początkowej fascynacji przyszedł czas na irytację i ciskanie przekleństwami. Dużo czasu spędzonego na forum developerów xamarina. Szukanie obejść, stosowanie tricków, hacków i sztuczek do rozwiązania przeróżnych niedogodności. Xamarin oferował bardzo podstawową funkcjonalność, liczba dostępnych kontrolek była ograniczona do minimum. Dało się na tym fundamencie coś zbudować, ale trzeba było jednak sporo cegieł ;)
Niestety największą moją bolączką był performance. Widok składający się z kilku etykiet, pól tekstowych i przycisków renderował się niewyobrażalnie długo. Na tyle długo, że aplikacja przestawała być responsywna i cały user experience siadał. Wtedy też doszukałam się informacji, że team xamarina nie zaleca stosowania xamarin.forms do tzw. business apps, co odczytałam sobie jako: „chcesz mieć szybko, nie idź tą drogą”. Mhm. Super. Dziesięć wkurwów i dwa hacki później jako tako zaczęło działać ;)
1 kwietnia dostałam na maila informację, że xamarin zostaje zaanektowany przez Microsoft. Zastanawiałam się przez chwilę, czy to aby nie jest prima aprilisowy żart. Ale po dzisiejszej konferencji wiem już, że nie :)
Krótkie streszczenie tego, co można było usłyszeć w pierwszej godzinie konferencji.
Xamarin + Microsoft
Zaczyna się od ogłoszenia unii z Microsoftem. Xamarin będzie dostępny dla każdego, jako open source, a także z Visual Studio. Brawa z widowni. Wszyscy jesteśmy tacy podekscytowani :) Mowa o tym, jak bardzo mobilne aplikacje obecne są w naszym życiu, jak kluczową rolę zaczęły odgrywać. Przenosimy się na chwilę na plantację soi w Brazylii, gdzie zastosowano nowatorskie rozwiązania do monitorowania wzrostu roślin, zarządzania siewem i zbiorami. Widzimy ludzi pomykających z tabletami po polu. Aplikacja napisana z użyciem xamarina, a jakże ;) Pada fraza appification of business.
Prowadzący bardzo często podkreśla słowo native: native user interface, native performance, native APIs, native look and feel. Oczywiście, że native jest lepszy od jakiegoś javascripta;) Dodatkowo podkreślana jest łatwość tworzenia w platformie z uwagi na wszystkim-znany-c#.
Building with xamarin is like slipping into warm bath
Open source
Prawdziwa bomba. Teraz każdy może się dołożyć ze swoim racjonalizatorskim pomysłem. Miguel de Icaza pozwala sobie na mały żarcik: mam maile wszystkich osób, które mówiły, że mogą zrobić to lepiej, teraz możecie się wykazać. Pamiętam z mojej walki z projektem dużo wątków na forum, w którym jeden czy drugi guru wykazywał swoją wyższość nad chłopakami-developerami tworzącymi platformę :) Wierzę w open source, wierzę w społeczność, to musi przynieść dobre efekty. Otwarcie kodu ma jeszcze dodatkową korzyść: jest szansa, że projekt zbyt szybko nie zginie, dopóki był w łapach jednej firmy – nie było to takie pewne. Dobra zmiana.
Podkręcone Xamarin Studio
Nie korzystałam z obecnej wersji. Odpaliłam to tylko na Macu, żeby umożliwić sobie debug wersji iOS. Chłopaki chwalą się, że wprowadzili ciemny motyw (hurra :)), przedefiniowali wygląd, narysowali nowe ikonki, wprowadzili zaawansowany refactoring, code actions. Tak. Wierzę im, że teraz będzie tak super jak w Visual Studio ;)
iOS Simulator for Visual Studio
To jest coś na co czekałam. Maszyna z maćkiem jest w dalszym ciągu potrzebna, ale symulator odpali nam się na windzie. Oh yeah! Zadziała również z iPhonem podłączonym do Windowsa dzięki Visual Studio USB Remoting. A teraz najfajniejszy motyw z tej prezentacji: gość prezentuje obsługę gestów na symulatorze Ipada na Surface Pro, na którym odpalony jest Visual Studio. Bo guess what? mac nie obsługuje dotyku :)
Xamarin.Forms Previewer
Kolejny kamień milowy. Jest wreszcie podgląd formatek! Gromkie brawa z widowni :) Do tej pory było tak, że xamla pisało się z głowy (powiem nieskromnie, że dla mnie nie był to duży problem ;)) Ale jednak zawsze trzeba było odpalić tę apkę na trzech platformach żeby sprawdzić jak toto się prezentuje na żywo. Mamy wreszcie podgląd andorid / iOS (gdzie u licha jest WP?). Co więcej – uwzględnia on data binding, obsługuje gesty i umożliwia zmianę orientacji. Dobra zmiana.
Xamarin Workbooks
To mnie niezwykle zaintrygowało. Interaktywne testowanie i eksperymentowanie z platformą. Po lewej stronie ekranu mamy coś co wygląda jak edytor tekstu, po prawej symulator urządzenia mobilnego. W edytorze możemy wpisywać komentarze i fragmenty kodu, które zostaną przesłane i uruchomione na symulatorze. Jest podgląd danych na żywo. Pliki workbooków będą dostępne do ściągnięcia. Można się tym pobawić, bez konieczności odpalania Visual Studio, tworzenia projektów, przeklejania fragmentów kodu. Bardzo, bardzo fajne.
Data Pages
Pomysł na apps that look great out of the box. Nowa funkcjonalność, która pokrywa częste zapotrzebowanie na wyświetlenie tabelarycznych danych w widoku master-detail. Pokazane na przykładzie apki, która pobiera dane z azure’a, wyświetla listę eventów i kontaktów. Chłopaki ekscytują się kilkoma linijkami xaml kodu, które są wymagane do osiągnięcia efektu. Szablony można dopasować do swoich potrzeb. Jestem ciekawa, bo jak zawsze diabeł pewnie tkwi w szczegółach :) Dostajemy jeszcze opcję łatwego przełączania pomiędzy dark i light theme.
Test recorder for Visual Studio
Pozwala na nagranie testu UI. Na prezentacji widzimy nagrywanie poszczególnych kroków: wybranie jednej opcji, przescrollowanie widoku, wybranie kontaktu, kliknięcie na adres email, itp. Taki nagrany test można wysłać do chmury: test cloud.
Integracja z Team Services i Test Cloud
Prezentuje Donovan Brown w koszulce Microsoftu :) Mamy dużo zachwytów nad możliwościami testowania, śledzenia i namierzania problemów. Przede wszystkim możliwe jest skonfigurowanie TFSa do wykonywania automatycznych testów po każdym checkinie. W test cloud mamy wszystkie możliwe informacje o urządzeniach, na których test został wykonany oraz screeny z poszczególnych kroków. Ale najfajniejsze jest to, że można też obejrzeć video przeprowadzanego testu (aplauz widowni :))
Prawdziwym pain-in-the-ass w developmencie na urządzenia mobilne jest zapewnienie poprawnego działania aplikacji na wszystkich urządzeniach. Tak, bardzo lubię androida :) Co tutaj chłopaki mają do zaoferowania? Test cloud live. W założeniach działa to tak: dostajemy info, że aplikacja wysypuje się na określonym urządzeniu. Wyszukujemy dany model telefonu w chmurce i debugujemy zdalnie. Kod jest wysyłany i instalowany, my się podpinamy z breakpointem w Visual Studio i voila! So simple as that.
Więcej
na http://blog.xamarin.com. Zwykle tak jest, że po dłuższym czasie mamy tendencję do zapominania tego, co było złe. Dzisiejszy wstęp do konferencji znowu mnie bardzo pozytywnie nastawił, może jednak co z tego będzie. Przydałoby się trochę odkurzyć moje zardzewiałe projekty :)
PS. Jeśli nie chcesz przegapić moich następnych wpisów, zasubskrybuj bloga, o tutaj. Każdy mój nowy artykuł trafi także do Twojej skrzynki. Nie spamuję :)