A czy ktoś z obecnych na forum programuje komercyjnie w Xamarinie?
Chce zacząć klepać coś na Androida i właśnie zastanawiam się nad językiem.
Na co dzień piszę coś w C# więc zainteresował mnie Xamarin, ale znalazłem w sieci trochę nie przychylnych informacji i stwierdzeń że jak Android to tylko Android Studio + Java/Kotlin.
Jak to w końcu jest ;)?
Jest tak, że to całkowicie bez sensu. Jeśli piszesz na Androida (tylko), to w ogóle nie ma rozmowy. Nie ma sensu zastępować lepszego IDE Android Studio gorszym Visual Studio. O ile ogólnie Visual Studio jest bardzo dobre do tworzenia aplikacji WPF, czy ASP.NET to integracja z Androidem leży i kwiczy pod każdym jednym względem, od projektowania layoutów zaczynając, na refaktoryzacji kończąc. Poza tym, wbrew temu co tu powyżej napisano, nie ze wszystkiego, co jest dostępne na Androida w Javie i Android Studio, skorzystasz pisząc "natywnie" (czyli bez Xamarin Forms) w Xamarinie. Jesteś ograniczony tym, co twórcy Xamarina już przeportowali na C#, a co jeszcze nie. Nie skorzystasz np z Data Binding.
Dodatkowo, aplikacje pisane w Xamarinie (native też) to wielkie kobyły i bardzo mało wydajne. Xamarin korzysta z Mono, które jest dodatkową warstwą translacji pomiędzy tym, co piszesz w C#, a natywnym kodem rozumianym przez Androida. Ta dodatkowa warstwa to przede wszystkim narzut w rozmiarze aplikacji (średnio +15 MB) i wydajności oraz responsywności.
Jeśli myślisz, że wygodniej i lepie ci będzie pisać aplkację w Xamarin Native, niż w Android Studio, to jesteś w błędzie. O ile sam język C# jest bardziej zaawansowany od Javy, to cała reszta skutecznie utrudnia życie - to tylko namiastka tego, co daje ci Google. No chyba, że tak ukochałeś język C#, że chcesz za wszelką cenę pisać w C# - twój wybór.
Ja. Powiem Ci tyle, że ostatni projekt z Xamarinem u nas zabito, z czego jestem niezmiernie szczęśliwy. Większość czasu poświęciliśmy na szukanie różnych sposobów obejścia rozwiązań proponowanych przez MvvmCross, zwłaszcza w dziedzinie nawigacji. Sam C# działał akurat całkiem nieźle, ale brak możliwości np. prostego utworzenia "TabBarControllera" dla mnie dyskwalifikuje ten projekt. Performance powstałego tworu był tragiczny (pracowałem nad iOS, w Androidzie nie wiem).
O to to, u mnie dokładnie tak samo. Jakbym czytał o sobie.